Install the management server
The management server runs the VirtConsole panel, its database and the APIs. Install it once, on a clean server you own.
Before you begin
Section titled “Before you begin”- A server that meets the management server requirements.
- Root access over SSH.
- A DNS A record pointing at the server (needed for TLS).
Install
Section titled “Install”Run the command as root. Debian images log you in as root and do not ship sudo. On a host where you are not root and sudo is available, pipe to sudo bash instead of bash.
curl -fsSL https://packages.virtconsole.com/master/install.sh | bashThe installer detects your OS automatically. It supports:
- Debian 11, 12, 13
- Ubuntu 22.04, 24.04, 26.04 LTS
- RHEL-family 9 and 10 (CentOS Stream, Rocky Linux, AlmaLinux)
On anything else it exits with an “Unsupported distro” message.
The installer installs nginx, PHP-FPM, MariaDB, Redis, supervisor and cron, downloads and verifies the signed release archive, then serves the panel on port 443 with a self-signed certificate.
The old per-OS scripts (install.debian.sh, install.ubuntu.sh, install.rhel.sh) still exist and run install.sh under the hood, so earlier bookmarks and scripts keep working.
Create the first admin user
Section titled “Create the first admin user”vcli admin:create-userThe command asks for a name, email and password, then prints the credentials. Use them to log in to the panel.
Set up TLS
Section titled “Set up TLS”The installer serves the panel on port 443 with a self-signed certificate. Replace it with a trusted one using acme.sh:
wget https://raw.githubusercontent.com/acmesh-official/acme.sh/refs/heads/master/acme.sh -O /opt/virtconsole/storage/acme.shchmod +x /opt/virtconsole/storage/acme.shcd /opt/virtconsole/storage./acme.sh --register-account -m "you@example.com" --home /etc/nginx/ssl./acme.sh --issue -d panel.example.com -w /opt/virtconsole/public --home /etc/nginx/ssl./acme.sh --installcert -d panel.example.com --home /etc/nginx/ssl \ --keypath /opt/virtconsole/storage/ssl/hypervisor.key \ --fullchainpath /opt/virtconsole/storage/ssl/hypervisor.crt \ --reloadcmd "systemctl restart nginx"Add a daily renewal cron:
echo "root 0 0 * * * /opt/virtconsole/storage/acme.sh --cron --home /etc/nginx/ssl\n\n" > /etc/cron.d/acme.cronVerify
Section titled “Verify”- Open
https://panel.example.comin a browser. The VirtConsole login page loads without certificate warnings. - On the server, run
systemctl status nginx. The service isactive (running). - Log in with the admin account you created. The dashboard opens.
What happens next
Section titled “What happens next”Activate your license and connect your first hypervisor: follow the quick setup.
Common problems
Section titled “Common problems”- The installer stops on a package error. Make sure the server is clean. Existing PHP, nginx or Redis installs conflict with the installer.
- The login page loads but login fails. Confirm you created the admin user on the right server and that the queue worker is running (
systemctl statusshows the VirtConsole services).

