NEWauraDB now included with every licence

The Swiss Army Knife for server admins.

Deploy applications, manage databases, automate HTTPS, schedule backups and operate the server underneath — from one lightweight control panel for Debian and Ubuntu.

One command to install. Unlimited sites. One licence per server.

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

30 days free · no credit card required

Partners

  • ISKCON London
  • Govinda's London
  • Studio 108 London
  • Sri Mayapur Community Hospital
  • Bhaktivedanta Gita Academy
Why auraPanel

Everything you need to operate your server. Nothing in the way.

auraPanel is a modern Linux server control panel for managing websites, applications, databases, HTTPS, backups and the server underneath — on Debian or Ubuntu infrastructure you own.

aurapaneld● running
Single binaryUI built innginx

Lightweight by design

auraPanel runs as a single Go service with the interface built in. A smaller control plane means more of your server stays available for the workloads it was meant to run.

select * from orders
where total > 100;
● 24 rows · 3.1 ms

Database management, built in

Manage PostgreSQL and MariaDB directly with auraDB. Browse schemas, run SQL, inspect query plans and work with your data without another administration tool.

Passkeys
Origin lock (mTLS)

Security first

Every site runs under its own Linux user with isolated files and credentials, helping keep workloads separated at the operating-system level.

How it works

Bare VPS to production in about a minute.

The installer sets up the panel, nginx and the runtimes you choose — PHP, Node, Python, PostgreSQL, MariaDB — tuned to the memory on your machine, then prints your panel address.

Read the install guide →
  1. 1

    Paste one command

    On a fresh Debian or Ubuntu server, as root. Run it again on the same host to update.

  2. 2

    Open your panel

    Register a passkey and you’re in. The 30-day trial runs from the start — no credit card required.

  3. 3

    Add a site

    Domain in, type picked, HTTPS issued, isolated Linux user created. Live in seconds.

Applications

Deploy the stack you already use.

  • WordPress
  • WooCommerce
  • Laravel
  • Next.js
  • Node.js
  • Python
  • PostgreSQL
  • MariaDB
  • Docker
  • Moodle
  • Nextcloud
  • Gitea
See all supported applications →
Feature requests

Help shape what comes next.

Missing a runtime, integration or workflow?

Tell us what would make auraPanel better for the way you run your infrastructure. Your feedback helps shape what we build next.

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 ↗