Command-line (SSH)
The novapanel CLI: inspect and manage the panel over SSH.
NovaPanel installs a novapanel command on the server (symlinked into
/usr/local/bin), so you can inspect and manage the panel over SSH without
opening the web UI. It reads the panel's database credentials automatically from
/opt/novapanel/config/.env, so there's nothing to configure — just run it
as root (or with sudo).
Important: always givenovapanela subcommand. Running barenovapanelwith no arguments starts a panel server process, which will conflict with the service already running under systemd. Usesystemctlto control the service itself (see the bottom of this page).
Inspection
| Command | What it does |
|---|---|
novapanel status | Six lines: the panel version and build commit, then counts of users, sites, domains, and databases. The Status: Running line is a fixed label, not a health check — use novapanel report or systemctl status novapanel for that. |
novapanel report | Full system report — versions, license, service health, resource usage, counts, and whether an update is available. Made to paste into a support request. |
novapanel version | Prints the installed panel version and build commit. |
novapanel help | Shows the full command list. -h / --help work too. |
Operations
| Command | What it does |
|---|---|
novapanel update | Update the panel to the latest version (download, verify, swap, restart). Add --check to only report whether an update is available. |
novapanel service <restart|start|stop|status> <name> | Control a service — caddy, postgresql, mariadb, pdns, postfix, dovecot, novapanel, and more. |
novapanel repair | Run the panel's self-heals on demand (PowerDNS's port 53 conflict, Caddyfile ownership, duplicate site blocks, Cloudflare service ports). Works even if the panel or database is down — the break-glass command. It also checks the firewall engine, but does not repair it: if the WAF module is missing it says so and points you at Admin → Settings → Firewall engine to rebuild. |
User management
These manage customer accounts (role user) — the same accounts
you'd create under Users in the admin panel. Handy for scripted
provisioning or resetting a locked-out customer's password without logging in.
| Command | What it does |
|---|---|
novapanel user list | Lists all users: email, username, role, status, created date. |
novapanel user create <email> <username> <password> | Creates a new customer user. |
novapanel user password <email> <new-password> | Resets that user's password. |
novapanel user suspend <email> | Blocks panel login only — it flips the account's active flag and nothing else. This is not a full hosting suspension: sites stay online, pm2 processes and cron keep running, and mail and FTP logins keep working. Use the panel's own Suspend action (or restart novapanel, which re-applies suspension at boot) to take the hosting offline. |
novapanel user unsuspend <email> | Reactivates a suspended account. |
novapanel user delete <email> | Permanently removes the user. |
novapanel admin create <email> <username> <password> | Creates a staff admin account (handy for recovering admin access from the console). |
Note:user createmakes a customer account;admin createmakes a staff admin.
Resource listings
| Command | What it does |
|---|---|
novapanel site list | All sites: name, runtime, status, owner. |
novapanel site count | Total number of sites. |
novapanel domain list | All domains: domain, type, status, and the site it belongs to. |
novapanel domain count | Total number of domains. |
novapanel db list | All customer databases: name, engine, DB user, size, owner. |
novapanel db count | Total number of databases. |
Backups
| Command | What it does |
|---|---|
novapanel backup create [username] | Back up one user, or every user if omitted — the same engine the panel and scheduler use (local snapshot, databases included). |
novapanel backup list [username] | List backups for a user, or for everyone if omitted. |
novapanel backup restore <username> <file> | Restore a user's files from a named backup file. Even though backup create puts the database dumps in the archive, restore deliberately skips them — it only puts the site files back, and never overwrites a live database. To roll a database back, extract the archive by hand and import the .sql file yourself, or use the Import button on the customer's Databases page. |
A quick tour
Everything read-only, safe to run any time:
novapanel version
novapanel status
novapanel user list
novapanel site list
novapanel domain list
novapanel db list Provision and then remove a test customer:
novapanel user create test@example.com clitest 'TestPass123'
novapanel user list
novapanel user password test@example.com 'NewPass456'
novapanel user suspend test@example.com
novapanel user unsuspend test@example.com
novapanel user delete test@example.com Controlling the service itself
The novapanel CLI talks to the panel's database — it doesn't start or stop the
running panel. For that, use systemd:
systemctl status novapanel # is the panel running?
systemctl restart novapanel # restart it
journalctl -u novapanel -f # follow the live logs
The same pattern applies to the supporting services the panel relies on —
caddy, postgresql, mariadb, pdns, dovecot, postfix.
Your SSH login banner (MOTD) shows a colour-coded status dot for six of them on every
login: Panel, Caddy, DB (postgresql), MySQL (mariadb), DNS
(pdns) and Mail (dovecot). postfix is not on the banner,
so check it with novapanel service status postfix or novapanel report.