Install SixPanel
What this page is for. Run one command on a fresh server, and save the three things it prints at the end.
You need
- A fresh server running Ubuntu 26.04 LTS, Ubuntu 24.04 LTS or Debian 13 (trixie). Ubuntu 26.04 LTS is the recommended choice for a new server.
- The
rootlogin for that server, and an SSH program to reach it (Terminal on Mac or Linux, PowerShell or PuTTY on Windows). - The server must be able to reach the internet while it installs.
You do not need a licence code, a customer number or a password to run the installer. The command below is the same for everybody and contains no secrets.
1. Check the server is allowed
The installer stops with a clear message if any of this is wrong, so you cannot break anything by trying. But checking first saves time.
| Item | What is allowed |
|---|---|
| Operating system | Ubuntu 26.04 LTS, Ubuntu 24.04 LTS, or Debian 13 (trixie) — and nothing else |
| Processor type | x86_64, or arm64 (also called aarch64) |
| Memory (RAM) | at least about 1.2 GB, and 2 GB or more is recommended |
| Other panels | none — aaPanel, CloudPanel, cPanel and Plesk are refused |
| Ports 80 and 443 | nothing else may be listening on them |
The list is a hard requirement, not a preference. The server's web server, database, PHP and certificate tool all come from that release's own package archive, at the versions it ships and supports. On any other system those package names either do not exist or mean something different, so the installer refuses before it downloads anything. If your provider gave you 22.04, or Debian 12, rebuild the server with one of the three above. There is no flag that gets around this.
Debian 12 is refused by name. Its own security support ended in July 2026, and the only PHP its archive carries is 8.2, whose upstream security support ends in December 2026 — a server built on it today would be running an unsupported PHP within months. Use Debian 13 (trixie) instead: same family, and its archive serves PHP 8.4 with security updates arriving on their own.
Why a fresh server? SixPanel manages this machine's nginx, PHP-FPM, MariaDB and Redis configuration, and takes ports 80 and 443 for your project. On a server that already runs another control panel the two fight over the same ports and the same files.
2. Do this first: point your domain at the server
Do this first — at your domain provider (GoDaddy, Namecheap, Cloudflare and so on), create a DNS A record for your project's name and set it to your server's IP address.
You do not need it for the install itself. You need it for the free HTTPS certificate a few steps later, and DNS changes take time to spread. Starting the clock now means the certificate works on the first try.
Using Cloudflare? You can skip this by hand entirely. Connect your Cloudflare token in the first-run wizard and the panel creates the records for you, already proxied. See Cloudflare.
3. Log in to the server and become root
Open your SSH program and connect to the server. Then run:
sudo su rootSome providers (AWS, Oracle Cloud, Google Cloud) log you in as ubuntu or
opc instead of root. The line above turns you into root. The installer
refuses to run as anyone else.
Every sixpanel command in this manual is written with sudo in front of it,
because on those providers it does not run without it. If you are already
root you can drop the sudo. Leaving it in does no harm.
Then bring the system up to date and add the small tools the installer uses:
apt update && apt -y upgrade && apt -y install curl ca-certificates4. Run the install command
One line. There is nothing to fill in and no code to paste:
curl -fsSL https://installer.allsweb.net/sixpanel-native/install.sh | sudo bashhttps://installer.allsweb.net/native/install.sh is the same file under a
shorter name, if you prefer to type less.
What protects a command that runs as root. Not the address it came from —
addresses can be faked. The installer carries our release signing key inside
itself, and every file it goes on to download is checked against a signature
made with the matching private key, which never leaves an offline password
manager. If any byte does not match, the installer stops and nothing is
installed. That check is automatic and you cannot accidentally skip it.
If you would rather read the script before running it, download it first and look:
curl -fsSL https://installer.allsweb.net/sixpanel-native/install.sh -o install.sh
less install.sh # read it
sudo bash install.sh # then run it5. Watch it work
The installer prints its progress. In order, it:
- Checks the operating system, the processor, the memory and that the server is fresh.
- Verifies our signature on the release, checks that the release was built for this processor type, then downloads and checks the SixPanel files.
- Unpacks them into
/opt/sixpanel. - Installs the serving stack from your release's own archive: nginx, MariaDB, PHP with the extensions 6ammart needs, Redis, certbot, and the backup tools. Node.js comes from the Node project's own archive, at the exact version this release was built against.
- Adds a small swap file if the machine has little memory, and switches on the system's unattended security updates.
- Creates random passwords and picks a random high port number for the panel.
- Sizes the database, the cache and the PHP workers for your server's memory and processor count.
- Writes the web server, PHP and database configuration, starts everything, and boots the panel.
There is no image to build, so this is mostly download and configure time — a few minutes on an ordinary server. Leave the window open.
6. Save what it prints
At the end you get a box like this:
[sixpanel] ──────────────────────────────────────────────────────────
[sixpanel] SixPanel is running
[sixpanel] Panel URL : https://203.0.113.10:41397/8ec0896a1f...
[sixpanel] User : admin7f3q
[sixpanel] Password : (printed here once)
[sixpanel] Open TCP 41397 in your provider firewall (22/80/443 + this port).
[sixpanel] The browser shows a certificate warning until a panel domain + SSL is set.
[sixpanel] ──────────────────────────────────────────────────────────Save this — copy the whole Panel URL, the User and the Password into your password manager or a note, right now, before you close the window. All three are needed to log in.
Two things make that address hard to find. The port number is random, so it is different on every server. And the address ends in a secret entry code. Without that exact code the panel answers with a blank "not found" page — on purpose. That is what keeps the login page away from people scanning the internet.
The User is not simply admin. It is generated at install, so a robot that
finds your login page has no name to aim at. You can change it later on the
Security page.
The password is generated once and shown once. It is stored only as a hash, which means it cannot be read back afterwards.
Have your phone ready for the first login. The panel offers to set up two-factor login straight away, and it is worth doing while you are already sitting there. If you have no phone to hand at that moment, the same screen offers Not now — continue without two-factor login, and you can turn it on later from the Security page. See First login.
Closed the window too soon? Nothing is lost. Log back in to the server and run:
sudo sixpanel info # prints the full panel URL and the user name
sudo sixpanel username # just the user name
sudo sixpanel password reset # sets and prints a new admin passwordsudo sixpanel password reset asks you to confirm first. It cannot show you
the old password — that one is gone for good.
7. Open the three ports at your provider — before you try to log in
SixPanel needs exactly three ports reachable from the internet: your panel port, 80, and 443. Nothing else, ever.
You do this in your hosting provider's dashboard (it is called a cloud firewall, or a security group), not on the server itself. A closed panel port is the single most common reason the panel will not open.
Do this now, before First login. The install can finish perfectly and the panel address still not open, and this is why.
Full steps: The three ports.
How to check it worked
- The installer ended with the box above and no red
ERROR:line. - On the server,
sudo sixpanel infoprints your panel URL, the admin user, and a list of services with their state. sudo sixpanel service listshows nginx, PHP, MariaDB, Redis and the panel running.- Open the panel URL in a browser. You get a certificate warning (expected — see First login) and then a page asking for a username and a password.
If it went wrong
"unsupported OS" / "Debian 12 is no longer supported" The server is not one of the three supported releases. Rebuild it with an Ubuntu 26.04 LTS, Ubuntu 24.04 LTS or Debian 13 image. There is no way around this one — see step 1 for why.
"unsupported architecture" / "only NNNMB RAM" The server does not meet the requirements in step 1. Rebuild it, or move to a bigger server.
"this release was built for amd64, and this server is arm64" The panel ships as compiled bytecode that only runs on the processor type it was built for. Ask support for the build that matches your server, quoting that line. Nothing was installed.
"this does not look like a fresh server"
The message lists what it found — another control panel, or something already
listening on port 80 or 443. Use a clean server. The --force option exists
but it lets two systems fight over the same ports, so do not reach for it.
"openssl is required to verify the release signature"
Run apt -y install openssl and run the install command again.
"the download did not match its expected checksum" Almost always an interrupted download. Run the install command again. If it fails a second time, stop and contact support — do not retry a third time.
"the release manifest is NOT signed by SixPanel's release key" Stop. Nothing was installed. Do not retry. Contact support.
"this release record is out of date" The published release information is older than the period it is valid for. Ask support for a fresh download link rather than working around it.
The installer stopped part-way through The verified files are already on disk, so this is resumable. Run the same command again — a re-run over an existing install is the supported repair path and also the update path.
The panel URL shows <see …panel.json> instead of a code
The panel had not finished its first boot when the banner printed. Wait a
minute, then run sudo sixpanel info for the real address.
Everything installed but the panel will not open Nine times out of ten it is the ports in step 7. Check them first, then read When something is broken.