Pre-alpha · free and open source0.1.0-alpha.48

Every server you run, on one page. Nothing else installed on them.

One small agent on each server dials out to your panel. See load and alerts for all of them, and open a terminal, files or Docker on any one. Free for every server.

curl -fsSL https://unpanel.codenav.dev/install.sh | sudo bash

Linux with systemd · x86_64 and arm64 · Node.js 24What the installer does

Overview5 of 6 online3 need attention
CPU
75%
Memory
88%
Swap
31%
Storage
77%
Simulated servers. Your panel draws this from your own.

One page for each job

Screens from a real panel managing a small shop: a web server, an API, Postgres and Redis in Docker.

  1. Know what a server is doing

    CPU, memory, swap and storage with average and peak, throughput, connections, Docker and alerts on one screen. Move, resize or remove any card.

    The node dashboard with CPU, memory, swap and storage tiles, network throughput and a Docker card
  2. Run the containers you already have

    Containers, images, networks, volumes and Compose stacks. Logs, a shell and live stats for each container, and an alert when one crashes.

    The Docker page listing the shop stack's containers
  3. A shell on any server, in the browser

    Sessions as tabs, links that open on click and a key bar on phones. Each session is recorded in Audit with the account, address and duration.

    A web terminal showing docker compose ps on the server
  4. Edit files where they live

    Browse, upload up to 2 GiB, drag to move, compress and extract. If a file changed on the server while you edited it, you see both versions before saving.

    The file manager showing the shop folder with its compose file open
  5. Hear about it before your users do

    Disks filling up, containers crashing, certificates expiring, servers going offline. A warning first, then critical, by Telegram or email.

    The Alerts page with an active container incident

Nothing else installed

What a default install leaves on a fresh Ubuntu 22.04, measured with the same script for every panel.

Unpanel9 MB + 203 MB Node.js
1Panel205 MB
aaPanel1.7 GB
BaoTa1.2 GB

One square per 10 MB. The dim squares are Node.js 24, the runtime Unpanel runs on.

to install; aaPanel and BaoTa take 13 to 15 min
27 s
processes run as root
1 of 2
ports opened on managed servers
0
Compare everything side by side

Servers dial out to the panel

Add node gives you one command. The agent it installs opens a connection to your panel and keeps it open, so a server needs no open port, and one behind NAT or a home router works too.

No inbound port
Nothing listens on a managed server. The agent connects out over WebSocket with TLS and checks the panel's key.
Follows the panel
Move the panel to a new address and every online agent checks it, saves it and keeps the old one as a fallback.
Same page for every server
The panel's own machine is the first node. Every server you add gets the same dashboard, terminal, files and Docker.
Behind NATfra-db-2sgp-edge-1ci-runnerhome-nasYour paneltokyo-web-1 · also a node

Root stays behind a door

The web process runs as its own unprivileged user. Privileged work goes to the agent as named, checked requests, and there is no endpoint that runs an arbitrary command.

  • Passkeys and two-factor sign-in from the first run, with recovery codes
  • Team roles scoped to the servers each person may touch
  • Turn the terminal off on any server with UNPANEL_TERMINAL=off
  • Files always refuses /etc/shadow and Unpanel's own keys

Updates in under two seconds, undone if they fail

An update downloads 1.5 MB, checks its SHA-256 and switches over. If the new version does not answer its health check, the previous one is started again and your database is kept.

Time from starting an update to the new version answering
Unpanel1.4 s1.5 MB download
1Panel4.5 s61 MB download

49 releases since October 2

Every release lists what changed. Hover or focus a mark to read it.

Read the changelog

Next to the panels you know

Footprint measured with one script on one host, vendor facts from their own pages and code. Rows where Unpanel loses stay in.

MeasurementUnpanel1PanelaaPanelBaoTa
Cost and licence
Managing several servers FreePro licence per nodeFreeFree
Licence AGPL-3.0GPL-3.0Own licence, changes may not be publishedProprietary, no changes allowed
Adding servers
What each managed server runs An agentAn agentThe whole panelThe whole panel
Ports a managed server must accept NoneSSH and port 9999Its panel port, or SSHIts panel port, or SSH
Joins from behind NAT Without port forwardingYesNoNoNo
What the install leaves
Install Depends on the network27 s78 s15 min13 min
System packages added 00304270
New files under /etc 74421397
Disk used Unpanel also needs Node.js 24, another 203 MB9 MB205 MB1.7 GB1.2 GB
Privileges
Processes running as root 1 / 22 / 24 / 54 / 4
Updates
Update to the next release Measured 14 October on 0.1.0-alpha.411.4 s4.5 s——
Update download 1.5 MB61 MB——
Panel offline during an update 0.7 sNone seen——
At idle
Memory (PSS) 132 MB144 MB96 MB72 MB

Default install from each project's own instructions, one disposable systemd container per panel on the same arm64 host, measured on 18 October 2026: Unpanel 0.1.0-alpha.48, 1Panel v2.3.2 without Docker, aaPanel 8.0.7, BaoTa 13.1.0. Memory was read after five idle minutes. Updates ran on a 4-core arm64 cloud server, probing the panel every 0.2 s; aaPanel and BaoTa only install their latest release, so theirs was not measured. A dash means not measured or not applicable.

What it does today, and what comes next

In 0.1.0-alpha.48

  • Live and historical CPU, memory, disk and network for every server
  • Docker containers, images, networks, volumes and Compose stacks
  • A web terminal and a file manager
  • Alerts by Telegram and email, including disk forecasts and crashed containers
  • Let's Encrypt certificates, also behind an existing web server
  • Passkeys, two-factor sign-in, team roles and an audit log
  • One-click updates for the panel and every agent

Next

  • systemd services and their logs
  • Nginx sites with test and rollback
  • PM2 processes
  • Scheduled jobs
  • Firewall changes that undo themselves unless confirmed
  • Backups to S3 or WebDAV
  • Node.js bundled with the release
$0for every server and everyone on your team

Free. Every server, every feature.

1Panel sells multi-node management as a Pro licence for each node. Unpanel has one edition, and it stays whole.

  • No Pro or Enterprise tier

    There will never be a paid edition with features this one lacks.

  • No server limit

    Add every server you run and everyone on your team. None of it is an upgrade.

  • Nothing taken back

    No feature moves behind payment. Every release is AGPL, so what you have stays yours.

Read the decision

Questions

It says pre-alpha. Can I use it?

On servers where you can tolerate rough edges, yes. Releases come every few days, each with a changelog, and a failed update restores the previous version with your data. Some modules are still missing; the list above says which.

What does it change on my server?

It installs into /opt/unpanel, keeps data in /var/lib/unpanel and settings in /etc/unpanel, and adds two systemd services and an unpanel user. It installs no system packages and does not touch your Nginx, Docker or cron configuration.

Why does it need Node.js 24?

The panel and the agent run on Node.js. Install Node.js 24 first, from your distribution's NodeSource packages or the official tarball. Bundling it with each release is planned, so this step will go away.

How do I remove it?

Stop and disable unpanel and unpanel-agent, then delete /opt/unpanel, /etc/unpanel, /var/lib/unpanel and the two unit files. An unpanel uninstall command is planned.

Does it send data anywhere?

There is no analytics or telemetry. The panel asks unpanel.codenav.dev and GitHub for new releases, and talks to Telegram or your email provider only after you set them up. Everything else stays on your panel's machine.

If it's free, how will it last?

Unpanel is built by CodeNav Ltd, and the one-edition promise is a recorded decision in the repository. The code is AGPL-3.0, so every released version stays yours to run, change and share.

Which systems are supported?

Linux with systemd on x86_64 or arm64: Debian 11 to 13 and Ubuntu 22.04 and 24.04. AlmaLinux and Rocky Linux 9 are best effort.

Install it in about half a minute

Run this as root on the server that should host the panel.

curl -fsSL https://unpanel.codenav.dev/install.sh | sudo bash
  1. 1Downloads the release for your CPU and checks its SHA-256.
  2. 2Starts the panel and its local agent as two systemd services.
  3. 3Prints the panel's address and certificate fingerprint. Open it, create your account and turn on two-factor sign-in.

Then add each further server from Add node, with one command.