Install or convert a server
A server joins PlusPanel in one of three ways:
| Way | What runs on the server | Status |
|---|---|---|
| Native image (ISO, qcow2, cloud) | PlusPanel OS from the first boot | at general availability |
| In-place conversion | PlusPanel OS, replacing AlmaLinux or Rocky Linux, data kept | available |
| Compatibility mode | the PlusPanel agent on your AlmaLinux or Rocky Linux, as it is | available |
PlusPanel OS is the recommended target: an immutable, signed system that we update for you (how updates work). Compatibility mode is the quickest start, and a server in Compatibility mode can be converted later; it does not receive OS updates from us.
Every way starts in the panel: Servers → Add server gives you a one-time enrollment command.
Requirements
Section titled “Requirements”| You need | |
|---|---|
| OS | AlmaLinux 9 or 10, Rocky Linux 9 or 10, x86_64 (conversion and Compatibility mode) |
| Machine | a dedicated server or a VM with full virtualization (KVM, VMware, Proxmox, Hyper-V, cloud instances). Not OpenVZ, Virtuozzo or LXC containers |
| Resources | at least 2 GB of RAM, a 20 GB disk with 6 GB free |
| Disk | the root filesystem (xfs or ext4) on a normal partition; /boot on it or on its own partition. The default layouts of Hetzner Cloud and most cloud images fit |
| Firmware | BIOS or UEFI with Secure Boot off |
| Network | outbound HTTPS to registry.pluspanel.net and the control plane, outbound UDP 51820. No inbound port is needed for management |
| Access | root (or sudo) over SSH, and a console (cloud console, IPMI/KVM) in case you want to roll back by hand later |
Not supported yet for conversion (the check refuses them and says why): LVM, software RAID (for example
the default two-disk RAID of Hetzner dedicated servers), encrypted disks, a separate /var or /home, extra
data disks in /etc/fstab, Secure Boot.
Convert a server in place
Section titled “Convert a server in place”Conversion is how you get PlusPanel OS on providers that do not let you upload your own image, such as Hetzner Cloud. The server keeps its place in your panel and every account with its sites, databases and files. It is careful by design:
- the current OS stays on the disk until PlusPanel OS has proven itself on your server;
- the first boot of PlusPanel OS is a trial: if the server does not reach the control plane within 10 minutes, it goes back to your current OS by itself, restores it and tells you why;
- nothing is repartitioned or reformatted, no port is opened, and only PlusPanel’s registry and control plane are contacted.
Take a snapshot first if your provider offers one. The conversion rolls back on its own, but a snapshot also protects data that PlusPanel does not manage.
What changes for you: PlusPanel OS is managed only from the panel. It has no SSH and no login: your SSH
session ends with the conversion’s reboot. Software you installed yourself with dnf, other users, cron jobs
and firewall rules are not carried over. PlusPanel’s own data is: the server’s identity and every account with
its sites, databases, files and quotas.
1. Check the server
Section titled “1. Check the server”Run the check with the values of your enrollment command (nothing is changed):
curl -fsSL https://get.pluspanel.net/install.sh | sudo bash -s -- preflight --mode convert \ --enroll-url https://… --token ppe1_…Every check prints ok, warn or FAIL, with an explanation for each failure. Add --json for a
machine-readable report (exit code 0 = ready, 1 = not ready). A server that already runs the agent in
Compatibility mode keeps its identity: leave out --enroll-url and --token.
2. See the plan
Section titled “2. See the plan”curl -fsSL https://get.pluspanel.net/install.sh | sudo bash -s -- convert --dry-run \ --enroll-url https://… --token ppe1_…The plan lists exactly what will be touched (the boot partition and boot loader), what is kept and what is not. Still nothing is changed.
3. Convert
Section titled “3. Convert”curl -fsSL https://get.pluspanel.net/install.sh | sudo bash -s -- convert \ --enroll-url https://… --token ppe1_…| Option | |
|---|---|
--channel stable|preview |
release channel (default stable) |
--health-timeout SECONDS |
how long the trial boot waits for the control plane (120–3600, default 600) |
--no-reboot |
prepare everything and stop; reboot yourself when ready, or undo with convert --abort |
--yes |
do not ask for confirmation |
The installer enrolls the server (if needed), downloads PlusPanel OS and checks its signature, installs it next to the current OS, moves PlusPanel’s data over and reboots. Your sites are down from that moment until PlusPanel OS has started them again, usually a few minutes.
4. Watch it in the panel
Section titled “4. Watch it in the panel”In Servers, the operating system changes from Compatibility mode · AlmaLinux 9.x to PlusPanel OS · version once the server reports from PlusPanel OS. Nothing else is needed.
If something goes wrong
Section titled “If something goes wrong”The server comes back on its old OS by itself when PlusPanel OS does not reach the control plane during its trial boot, or does not start at all. It then restores itself completely (boot loader, data, nothing of PlusPanel OS left) and the panel shows Compatibility mode again, with every account working. Over SSH you see why:
sudo cat /var/lib/pluspanel-convert/result # OUTCOME=rolled_back, REASON=…cat /etc/motd.d/pluspanel-convertFix the cause (usually outbound access to the control plane) and run the conversion again.
To go back yourself after a successful conversion, open the server’s console, restart it and choose
“Previous OS: … (PlusPanel rollback)” in the boot menu (it shows for one second: hold Esc or Shift
while the server starts). The previous OS restores itself the same way. This works until the previous OS is
cleaned up from the disk.
Before the reboot (with --no-reboot) you can undo everything:
curl -fsSL https://get.pluspanel.net/install.sh | sudo bash -s -- convert --abort