Installation
One command, ten minutes, fresh Ubuntu.
The one-line install
On a fresh Ubuntu 22.04 or 24.04 VPS, run:
$ curl -fsSL https://license.novapanel.dev/install.sh | sudo bash
That's it. The installer handles everything: package installs, database setup, Caddy reverse proxy, license activation, and the panel binary itself. Total time: roughly 10 minutes on a 2-CPU / 4 GB RAM VPS.
What you need before running
- A fresh Ubuntu 22.04 or 24.04 server (not a shared host — you need root).
- At least 2 GB RAM, 2 CPU cores, 30 GB disk. More is better, especially for mail.
- A domain pointed at the server's public IP (you'll be asked for it during install).
- Ports 80, 443, 25, 110, 143, 465, 587, 993, 995, 21, 53, 2083, 2087 reachable from the internet (the installer offers to open them via UFW).
Tip: the panel runs at port2087(admin) and2083(customer), with automatic Let's Encrypt for the hostname you provide. Don't expose the panel via 443 alongside customer sites — Caddy handles that automatically.
What gets installed
- PostgreSQL 16 — panel's own database
- MariaDB — for customer-owned databases
- Caddy — reverse proxy with auto-TLS
- PHP-FPM 8.3 — for hosted sites
- Postfix + Dovecot + OpenDKIM — mail stack
- vsftpd — FTP
- PowerDNS — authoritative DNS
- ClamAV — virus scanning (Pro)
- NovaPanel binary itself, fetched from the license-gated CDN
What it asks you
The installer is interactive — it'll prompt you for:
- Hostname for the panel (e.g.
panel.example.com) - Admin email address
- Admin password
- License key, if you have a Pro/Developer one — leave blank for free Community
If you're piping curl ... | sudo bash the installer detects that, re-downloads itself to /tmp, and reattaches to your terminal automatically so prompts work properly.
Non-interactive install (for automation)
Set environment variables before running and the installer skips prompts:
NOVA_HOSTNAME=panel.example.com \
NOVA_ADMIN_EMAIL=admin@example.com \
NOVA_ADMIN_PASSWORD=changeme123 \
NOVA_LICENSE_KEY=NOVA-XXXX-XXXX-XXXX \
curl -fsSL https://license.novapanel.dev/install.sh | sudo -E bash After install
Visit:
https://<your-hostname>:2087— admin panelhttps://<your-hostname>:2083— customer panel
Log in with the admin email and password you set. From there: create packages, add customers, point domains.
Re-running the installer
The installer is idempotent — re-running on a server that already has NovaPanel just upgrades the binary and re-applies any missing service config. It won't wipe your data.