Skip to content

Repository files navigation

🚀 VI-Register

The Ultimate, Database-Free Virtualmin Registration Portal

Developed by Andy Goldau | © 2026 PanelLayer (Subdomain LTD) & GoMaKe UG

📦 Product Page: VI-Register  |  🧪 Live Demo: Demo  |  🌐 Project: PanelLayer


VI-Register is an incredibly robust, secure, and fully-featured self-service registration portal built specifically for Virtualmin. Designed from the ground up for maximum security, beautiful UI/UX, and GDPR compliance, it requires zero database setup (100% flat-file logic) and handles virtual server creation flawlessly through the native Virtualmin Remote API.

DISCLAIMER: This software is provided "as is" without any warranty of any kind. VI-Register is an independent software solution and is not affiliated with, endorsed by, or sponsored by Virtualmin, Inc. or its affiliates.


✨ Enterprise-Grade Features

🛡️ Unrivaled Security & Privacy

  • k-Anonymity Password Checks: Integrates the Have I Been Pwned API directly in the client's browser using the Web Crypto API. Only the first 5 characters of a SHA-1 hash are transmitted—your plaintext password never leaves your browser.
  • Advanced Rate-Limiting (Token Bucket): Fully protects the Virtualmin API against brute-force and DDoS spam attacks using a highly efficient, session-independent Token Bucket algorithm based on cryptographically hashed IPs.
  • No Database Required: Works strictly with local flat files (JSON/PHP). All sensitive log files (audit.log.php, used_codes.php) are completely locked down and unreadable from the web, regardless of whether your webserver is Apache, LiteSpeed, or NGINX.
  • Strict Content Security Policy (CSP): Ships with hardened HTTP response headers (CSP, HSTS, X-Frame-Options) out of the box, mitigating XSS and iframe-injection attacks.

🌐 Internationalization & UX

  • 23 Supported Languages: Comes fully translated into 23 languages (English, German, French, Spanish, Russian, Chinese, Thai, and more).
  • Responsive Dark/Light Mode: Automatically adjusts its premium UI to the system preferences of your users.
  • Live Password Checklist: A real-time, side-by-side interactive UI element that instantly visually validates password complexity requirements.
  • Fail-open DNS MX Checks: Automatically verifies the existence of mail servers (MX records) for the email domains entered during registration to prevent bot signups, featuring built-in caching.

🤖 Ultimate Anti-Bot Protection

Forget spam. We support natively integrated setups for:

  • hCaptcha
  • reCAPTCHA (Google)
  • Cloudflare Turnstile
  • Altcha (Proof-of-Work, 100% GDPR compliant)
  • MTCaptcha

🎟️ Exclusive Access Modes

  • Invite-Only Mode: Optionally lock your registration portal so only users with pre-generated, single-use, or multi-use invitation codes can join your platform.

🚀 Installation & Setup

  1. Upload & Extract: Upload the contents to any PHP 8.x web directory on your Virtualmin server.
  2. Configure: Open config.php and enter your:
    • Virtualmin Host (e.g. https://yourserver.example.com), Port (default: 10000), and Admin Credentials
    • Account Plan name (as configured in Virtualmin → Account Plans)
    • Features to enable for new virtual servers (VM_FEATURES)
    • Desired Captcha Provider Keys
    • Security toggles (HIBP, Invite-Mode, Audit Logging)
  3. Generate Secrets:
    • Replace the default LOG_IP_SALT in config.php with a random 32-character string to ensure IP pseudonymization in your audit logs (openssl rand -hex 16).
    • If using Altcha, replace ALTCHA_HMAC_KEY with a secure random string (openssl rand -hex 32).
  4. Done: The system automatically creates and protects the necessary data/ and logs/ folders upon the first registration.

🗑️ Demo Mode (Auto-Cleanup Cronjob)

To automatically delete expired demo virtual servers, add this cron job on your server:

*/30 * * * * php /path/to/cron_cleanup.php >> /dev/null 2>&1

The cleanup script uses the Virtualmin delete-domain API to remove expired virtual servers tracked in data/demo_accounts.json.

🔐 Virtualmin API Notes

  • Endpoint: https://yourserver:10000/virtual-server/remote.cgi
  • Authentication: HTTP Basic Auth with a Webmin admin user (root or a dedicated restricted Webmin user)
  • Response format: JSON ({"status":"success"} or {"status":"error","error":"..."})
  • It is recommended to create a dedicated Webmin user with only Virtualmin module permissions instead of using root directly.

📄 License & Attribution

This project is licensed under the MIT License.

Developer: Andy Goldau
Copyright: © 2026 VI-Register by PanelLayer, a brand of Subdomain LTD and managed on behalf of GoMaKe UG. All rights reserved.
Product Page: https://vi-register.panellayer.com/
Live Demo: https://demo.vi-register.panellayer.com/
Project: https://panellayer.com/

The above copyright notice, the developer attribution, and the permission notice must be included in all copies or substantial portions of the Software.

About

Modern, database-free Virtualmin registration portal built for PHP 8. Native API account creation, Token Bucket protection, k-Anonymity password check, 23 languages, multi-captcha support, invite-only mode, and full GDPR compliance out of the box.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages