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.