Fleet management
Every host in one place
Add a secondary with a single command. Then run the whole fleet from the Primary: update roles and servers in bulk, set a preference once and have it replicate everywhere, watch live health, and read any host’s logs.
Onboarding & roles
Add a host, assign its roles, done
Register a new host with one command on the box. From the Primary UI, enable or disable backend roles, web engines, DB engines, mail, DNS, and the secondary fetches the bundle, installs it, and reports back.
- Single-command secondary registration
- Per-host role management from the Primary
- Installs run in the background, so the panel stays responsive while a role builds
- New role versions are flagged for you, ready to update in one click
One command
A fresh box joins the fleet in one line
Point the installer at the register URL your Primary gives you. The box installs itself, registers, and shows up in the panel ready to take roles. There is no key to copy onto it and no config file to hand-edit.
$ wget -qO- https://unicornpanel.com/install | sh -s register <register-url> ██╗ ██╗███╗ ██╗██╗ ██████╗ ██████╗ ██████╗ ███╗ ██╗ ██████╗██████╗ ██║ ██║████╗ ██║██║██╔════╝██╔═══██╗██╔══██╗████╗ ██║ ██╔════╝██╔══██╗ ██║ ██║██╔██╗ ██║██║██║ ██║ ██║██████╔╝██╔██╗ ██║ ██║ ██████╔╝ ██║ ██║██║╚██╗██║██║██║ ██║ ██║██╔══██╗██║╚██╗██║ ██║ ██╔═══╝ ╚██████╔╝██║ ╚████║██║╚██████╗╚██████╔╝██║ ██║██║ ╚████║ ╚██████╗██║ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚═╝ v0.18.68 · Logging to: /root/upcp-installer.log ✅ Enable Alpine 'Community' Repository ✅ Install Host Packages ✅ Enable Disk Quotas ✅ Download & Install Unicorn Core ✅ Install & Configure Firewall (nftables) ✅ Install & Configure Podman ✅ Install Unicorn Shield ◐ Build & Configure Control Panel ○ Build & Configure Reverse Proxy ○ Install Web Terminal ○ Install SSH/SFTP ○ Install Unicorn Daemon ○ Finalise Installation ↳ Generating SSL certificate
- Runs on a bare Alpine Linux box, amd64 or arm64
- The secondary holds its own key. The Primary’s secret is never copied around the fleet
Bulk control
Change it once, not once per box
Update roles in bulk
When a role has a new version, update it across every host that runs it in one action rather than walking the fleet host by host.
Update servers in bulk
Bring the panel itself up to date across the whole fleet from one screen. Ten boxes take the same effort as one.
Global settings replicate
Set a preference once on the Primary and it is pushed out to the secondaries. Your fleet stays consistent because it is configured in one place, not copied by hand.
Operate the whole fleet
Health, logs, and remote tools, without a VPN dance
Live server health
CPU, memory, disk, network, container status, role versions, OS and kernel, for every host at once. A host that stops answering is flagged rather than quietly ignored.
Per-host logs
Read the logs for any host without opening a terminal: web, database, mail, DNS, panel, proxy, firewall, SSH. You only see tabs for what that host actually runs.
Cross-server proxy
Open a secondary’s database admin, webmail, or terminal from the Primary’s own URL. The secondary never needs a public address of its own.
One-click updates
See which hosts are behind and bring them up to date from the panel, instead of logging into each box in turn.
Reboot-safe tenants
A host coming back from a reboot brings its tenants up patiently, retrying the slow starters instead of giving up on them and leaving sites down.
Storage host roles
Decide which hosts keep backup files locally and which push them to remote storage. See Backups for the detail.
Run ten boxes like they’re one.
Single-command onboarding, live health, per-host roles, cross-server admin tools.