Install

From fresh server to control panel in one command.

One command on a fresh Debian or Ubuntu host. The installer sets up the panel and prints your address.

Run this on a fresh Debian or Ubuntu server

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

30 days free · no credit card required

Supported systems

Debian 13trixie
Debian 12bookworm
Ubuntu 26.04 LTSsupported release
Ubuntu 24.04 LTSsupported release
Ubuntu 22.04 LTSsupported release
Architecturesx86-64 · ARM64

Requirements

Operating systemDebian 12/13 or a supported Ubuntu LTS, freshly installed
CPU1 core minimum
Memory1 GB minimum; 2 GB or more is comfortable with a database engine
Storage10 GB, plus whatever your applications and backups need
Permissionsroot, or a user with full sudo
Ports80 and 443 reachable for HTTPS issuance; the panel listens on 8443

What the installer changes

auraPanel runs on your server, so it is worth knowing exactly what the installer does before you run it.

Installsnginx, the auraPanel service, and the components you select
Addsan apt source for the components it installs, and a system user per site you create
Configuresnginx vhosts, PHP-FPM pools and systemd units for the sites you create
OptionalMariaDB, PostgreSQL, Redis, Typesense, Docker, UFW and fail2ban — none installed unless chosen
Does not touchyour SSH configuration, existing web server data, or anything outside the paths it creates
Updateson demand only — no scheduled polling; each build is Ed25519-signed and checksum-verified before it installs
Uninstallsudo aurapanel-uninstall returns the host to baseline, leaving no orphaned apt sources or service users

Components

Chosen during install, and addable afterwards from the panel. PHP defaults to a single version to stay lean.

  • MariaDB
  • PostgreSQL
  • Node.js 24 LTS
  • PHP-FPM (8.3 / 8.4 / 8.5)
  • Python
  • Redis
  • Typesense
  • Docker Engine + Compose
  • UFW + fail2ban

Non-interactive install

Forward flags to the installer to skip the prompts.

curl -fsSL https://aurapanel.net/installer.sh | bash -s -- --yes --db=both --node=yes --php=yes --panel-domain=panel.example.com

After install

Open your panel, set the admin password, enable two-factor authentication and add your first site. auraPanel runs for 30 days with no licence file — upgrade from the shell with sudo aurapanel-update, or from the panel.

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 ↗