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.
- 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.
- 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.
Forget spam. We support natively integrated setups for:
- hCaptcha
- reCAPTCHA (Google)
- Cloudflare Turnstile
- Altcha (Proof-of-Work, 100% GDPR compliant)
- MTCaptcha
- 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.
- Upload & Extract: Upload the contents to any PHP 8.x web directory on your Virtualmin server.
- Configure: Open
config.phpand 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)
- Virtualmin Host (e.g.
- Generate Secrets:
- Replace the default
LOG_IP_SALTinconfig.phpwith a random 32-character string to ensure IP pseudonymization in your audit logs (openssl rand -hex 16). - If using Altcha, replace
ALTCHA_HMAC_KEYwith a secure random string (openssl rand -hex 32).
- Replace the default
- Done: The system automatically creates and protects the necessary
data/andlogs/folders upon the first registration.
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.
- 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.
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.