NovaPanel
Docs

Installation

One command, ten minutes, fresh Ubuntu.

The one-line install

On a fresh Ubuntu 22.04 or 24.04 VPS, run:

root@vps
$ 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 port 2087 (admin) and 2083 (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:

  1. Hostname for the panel (e.g. panel.example.com)
  2. Admin email address
  3. Admin password
  4. 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 panel
  • https://<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.