NovaPanel
Docs

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 give novapanel a subcommand. Running bare novapanel with no arguments starts a panel server process, which will conflict with the service already running under systemd. Use systemctl to control the service itself (see the bottom of this page).

Inspection

CommandWhat it does
novapanel statusSix 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 reportFull system report — versions, license, service health, resource usage, counts, and whether an update is available. Made to paste into a support request.
novapanel versionPrints the installed panel version and build commit.
novapanel helpShows the full command list. -h / --help work too.

Operations

CommandWhat it does
novapanel updateUpdate 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 repairRun 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.

CommandWhat it does
novapanel user listLists 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 create makes a customer account; admin create makes a staff admin.

Resource listings

CommandWhat it does
novapanel site listAll sites: name, runtime, status, owner.
novapanel site countTotal number of sites.
novapanel domain listAll domains: domain, type, status, and the site it belongs to.
novapanel domain countTotal number of domains.
novapanel db listAll customer databases: name, engine, DB user, size, owner.
novapanel db countTotal number of databases.

Backups

CommandWhat 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.