Documentation

Getting auraPanel running, and the command reference for everything you can do from a shell once it is.

Quick start

Run the installer on a fresh Debian or Ubuntu server. It provisions nginx, the panel service and the components you select, then prints your panel address.

curl -fsSL https://aurapanel.net/installer.sh | bash

30 days free · no credit card required

Requirements, what the installer changes and the first sign-in are on Install auraPanel; the install command above is the whole procedure.

First run

  1. Open the panel address the installer printed and set the admin password.
  2. Register a passkey, or enable TOTP two-factor authentication.
  3. Point a domain's DNS at the server so HTTPS can be issued.
  4. Create your first site, choosing its type and runtime.
  5. Add a database if the application needs one, and open it in auraDB.

auraPanel runs for 30 days with no licence file. apcli license status shows how much of that window is left.

CLI reference

apcli is installed with the panel and runs as root. It manages the daemon directly and talks to the panel's API over a loopback token, so it works on a box with no browser access.

This reference is generated from the CLI itself — it is the same table apcli prints for --help, so it cannot fall behind the binary you have installed.

27 of 27 commands

Daemon

apcli status
show daemon + version
apcli restart
restart the aurapaneld service
apcli logs [-f]
tail the daemon journal (-f to follow)
apcli update
upgrade auraPanel in place
apcli paths
show where auraPanel keeps its files
apcli doctor [-v] [--json]
audit sites for vhost↔pool drift
apcli version
print the CLI version

Sites

apcli site list
list all sites
apcli site create <domain> --type <php|wordpress|nodejs|python|static|reverseproxy> [--user U] [--php 8.4] [--upstream URL]
create a site; the system user is derived from the domain when --user is omitted --upstream is REQUIRED for --type reverseproxy, e.g. --upstream http://127.0.0.1:3001
apcli site upstream <domain> [<url>]
show, or repoint, a reverse-proxy site
apcli site delete <domain>
delete a site (and its resources)

Databases

The domain is optional when run inside a site's directory.

apcli db list [<domain>]
list a site's databases
apcli db create <domain> --engine <mariadb|postgres> --name N [--user U]
create a database and bind it to the site
apcli db import [<domain>] <file> [--name DB] [--engine E]
load a SQL dump (.sql / .sql.gz / .sql.bz2)
apcli db export [<domain>] [--name DB] [--engine E] [--out F] [--plain]
dump a database (gzip by default; --plain for uncompressed SQL)
apcli db password [<domain>] [--name DB] [--engine E]
reveal a database's password

Backups

apcli backup list <domain>
list backups for a site
apcli backup create <domain>
create a backup
apcli backup restore <domain> <id>
restore a backup into the site

License

apcli license fingerprint
print the machine fingerprint (paste into the portal to bind)
apcli license status
show state, plan, expiry, and grace or trial days remaining
apcli license activate <file>
activate a .key token file (or - to read from stdin)

TLS, users and services

apcli ssl renew <domain>
renew the site's certificate
apcli user list
list panel users
apcli user passwd <email> [--generate]
reset a panel user's password (prompts; --generate picks one and prints it once)
apcli server status
managed service status
apcli server restart <service>
restart a managed service (nginx, mariadb, …)

Automation and API

apcli is the supported automation surface today. It is scriptable, and apcli doctor --json emits machine-readable output for monitoring.

The panel has an internal HTTP API that the CLI and its own interface use, authenticated by a root-only loopback token. It is not yet a documented, stable public API, so it is not presented as one — register interest and you will hear when customer-facing access opens.

Guides

Task-by-task documentation, each page checked against the panel it describes.

Getting started

  • Install auraPanelInstall auraPanel with one command on a fresh Debian or Ubuntu server: requirements, what the installer changes, first sign-in, panel domain and HTTPS, licence.

Sites and applications

  • Create and manage sitesCreate a site in auraPanel: site types, the system user and directory layout, DNS, HTTPS, redirects, cron, SFTP and deletion — common to every site type.
  • PHP and WordPress sitesRun PHP applications and WordPress in auraPanel: PHP versions per site, PHP-FPM pools, one-click WordPress install, caching and common PHP errors.
  • Node.js sitesRun a Node.js application in auraPanel: how the start command is resolved, the port and environment the panel provides, the systemd unit, logs and restarts.
  • Python sitesRun a Python WSGI application in auraPanel with gunicorn: the app module, the port the panel provides, installing dependencies, the unit, logs and restarts.
  • Docker Compose sitesRun a Docker Compose stack as an auraPanel site: reverse proxy with HTTPS, ports, environment, images, what the panel refuses, logs and restarts.

Data and certificates

  • Databases and auraDBCreate PostgreSQL or MariaDB databases in auraPanel, find credentials, import and export dumps with apcli, and administer data in auraDB from the browser.
  • HTTPS certificatesHow auraPanel issues and renews Let's Encrypt certificates: DNS prerequisites, wildcard certificates over Cloudflare DNS-01, forcing HTTPS, and failed issuance.
  • Backups, restore and snapshotsBack up auraPanel sites on a schedule or on demand, copy them off-site, restore into the same or a new site, and take provider snapshots of the whole server.

Operations

  • Users, roles and accessAdd panel users in auraPanel, understand admin and per-site roles, sign in with passkeys or TOTP, and reset a password from the command line.
  • Logs and monitoringWhere auraPanel keeps site access and error logs, how to follow a Node.js or Python service log, the daemon journal, and the resource history it records.
  • Security and hardeningauraPanel's security controls: per-site isolation, the Cloudflare edge shield, encrypted secrets, audit log, signed updates, and what stays with the operator.
  • TroubleshootingDiagnose common auraPanel problems: panel not loading, a site showing 502 or Cloudflare 525, certificate issuance failing, a service not starting, apcli doctor.

Try the panel on the live demo →

Try the live demo

A real auraPanel on a real server, shared with everyone. Sign in with the demo account and click around.

Email
demo@goaura.one
Password
demo1234
Open the demo panel ↗

Shared public demo, so please don’t put anything personal in it. More about the demo →

Talk to us

Tell us what you need and how to reach you. A person reads this, not a queue.

We use these details only to reply to you. Privacy

Recent updates

What shipped in the last releases. With automatic updates on, each lands on your server the moment it is published.

  1. v1.21.3
    Framework sites were undetectable, and a restore could silently point the copy at the original's live database.

    DetectApp looked for each application's signature relative to the docroot — but every PHP framework in the registry serves from a subdirectory (DocrootSub: public, webroot, web, pub, docroot) and keeps the file that identifies it one level *above* that. So the Laravel signature searched <project>/public/artisan,…

  2. v1.21.2
    Restarting nginx now blocks the panel and reconnects, instead of showing a notice.

    v1.21.1 stopped the false "HTTP 520" but only put up a toast — and a toast is the wrong affordance when the panel itself is about to go away: the page sat there looking broken while every request failed underneath it.

  3. v1.21.1
    Restarting nginx from Services no longer reports a false failure.

    It showed "Restart failed — HTTP 520". The panel is reverse-proxied *by* nginx, so the request deadlocked against itself: the handler blocked waiting for the restart to finish, while nginx's graceful stop waited for that very request to drain. Neither could proceed until nginx's stop-retry timeout force-killed it,…

  4. v1.21.0
    Per-site X-Frame-Options, fixing page builders that couldn't load their preview.

    Elementor's editor failed with *"Multiple 'X-Frame-Options' headers with conflicting values ('DENY, SAMEORIGIN')"*. The cause is that nginx's add_header appends rather than replaces: when the application also sets the header — a WordPress security plugin, or a CDN transform — the browser received two values,…

  5. v1.20.6
    The multi-database restore refusal now says what is in the backup and what still works.

    It read only "Restoring a multi-database site isn't supported yet", which is a dead end: it named neither the databases involved, nor why one of them is the limit, nor any route forward.

  6. v1.20.5
    Services: cards in a row now match heights.

    Like the settings grid before it, the Services grid pinned each card to its own content height, so a row often showed one card noticeably shorter than the card beside it. Each row now takes the taller card's height and both fill it, and it re-balances as content changes — a runtime installed, a longer service list.

  7. v1.20.4
    Settings: paired cards now match heights.

    Organisation / Panel Domain and auraPanel Updates / Session timeout each sat at their own content height, so a row showed one card visibly shorter than its neighbour. Each row now takes the taller card's height and both fill it — driven by content, not a fixed value, so it still adapts as a card grows (a validation…

  8. v1.20.3
    Settings: Organisation and Panel Domain now share a row too.

    They were full-width blocks stacked above the rest of the page; they now sit side by side in the same two-column grid as the Updates / Session timeout pair, so the top of Settings reads as two tidy rows instead of four stacked bands. Both cards shrink cleanly — the logo drop zone is a fixed 44×44 and the name field…

All releases on GitHub ↗