System requirements
What ZoPanel needs before you install: a fresh Ubuntu or Debian server, 1 GB of RAM or more, root access, a few open ports and a hostname.
ZoPanel installs on a fresh Linux server: one without another control panel or web server already configured. This page lists what to prepare before you run the installer, so the installation goes through in one pass.
Operating systems
| System | Versions | Notes |
|---|---|---|
| Ubuntu | 22.04 LTS, 24.04 LTS | On 22.04 the installer adds Ubuntu's 6.8 HWE kernel |
| Debian | 12, 13 | On 12 the 6.12 backports kernel is optional |
Both x86-64 (amd64) and ARM64 (aarch64) are supported. The installer stops on any other system or architecture.
A kernel of Linux 6.8 or newer lets ZoPanel compress customers' idle memory in RAM without ever writing it to disk. Ubuntu 24.04 and Debian 13 already have one; see Install ZoPanel for how the installer handles Ubuntu 22.04 and Debian 12, and PHP performance for what the feature does.
Memory and CPU
| Use | RAM |
|---|---|
| Trying ZoPanel | 1 GB |
| Small production server | 2 GB or more |
The installer warns when the server has less than about 1 GB, but continues. ZoPanel sizes itself to the machine:
- MariaDB's buffer pool is set to 20% of RAM.
- On servers with less than 4 GB of RAM and no swap, the installer creates a swap file of 1 to 4 GB.
- The memory customers' websites and apps may use together is planned from the server's RAM and re-planned every 10 minutes.
Measured capacity
These figures were measured on test servers. Your results depend on the sites you host.
| Server | WordPress sites without page cache | WordPress sites with page cache |
|---|---|---|
| Ubuntu 24.04, 4 GB RAM, 4 vCPU | 100 (plus 30 apps) | 250 (plus 30 apps) |
| Debian 12, 3 GB RAM | 50 (plus 30 apps) | 200 (plus 30 apps) |
After a heavy overload, these servers went back to normal within 2 to 5 minutes once the load stopped.
Disk
The installer does not enforce a minimum disk size. Plan for:
- the system, ZoPanel, PHP, MariaDB and the optional components you install;
- a swap file of 1 to 4 GB on servers under 4 GB of RAM;
- your customers' websites, databases and mail;
- local backups, which are stored on the same server unless you also send them to S3 storage.
The installer turns on disk quotas so each package's disk and file (inode) limits are enforced by the kernel. On most filesystems this works at once; on XFS it takes effect after the next restart. If quotas cannot be enabled, usage is still measured but not enforced.
A fresh server
Use a newly installed server. The installer refuses to continue when it finds:
- an Apache web server it did not install itself;
- cPanel, DirectAdmin or aaPanel.
If you pass --force, the installer continues anyway, at your own risk. Inside a container, the host's kernel is used, so the installer skips the kernel upgrade.
Root access
Run the installer as root or with sudo. ZoPanel itself runs as an unprivileged user (zopanel), with a separate privileged agent for system changes.
Network and ports
The installer enables the UFW firewall and opens:
| Port | Used for |
|---|---|
| Your SSH port (detected, usually 22) | SSH and SFTP |
| 80/tcp | HTTP and Let's Encrypt validation |
| 443/tcp | HTTPS websites |
| 8888/tcp | The ZoPanel web interface |
If your provider also has a cloud firewall or security group, open the same ports there.
Optional components open their own ports in UFW when you install them:
| Component | Ports |
|---|---|
| Mail server | 25, 465, 587, 143, 993, 110, 995 |
| Webmail | 2096 |
| Calendars & contacts (CalDAV/CardDAV) | 2080 |
| DNS server | 53 (TCP and UDP) |
| FTP server | 21 and passive ports 30000-30100 |
| Adminer | 8889 |
The server also needs outbound HTTPS to download ZoPanel, system packages and PHP. If you plan to run mail, check that your provider allows outbound port 25.
Hostname and DNS
ZoPanel works on the server's IP address straight after installation (https://YOUR-IP:8888, with a self-signed certificate). For production, prepare:
- A hostname for the server, for example
srv1.example.com. Pass it with--hostname. - A panel domain, for example
panel.example.com, with an A record pointing to the server. You set it later in Settings to get a trusted Let's Encrypt certificate for the panel. - A mail hostname such as
mail.example.com, if you will host email. Set its reverse DNS (PTR) at your VPS provider for good deliverability. - Nameservers such as
ns1.example.comandns2.example.com, with glue records at your registrar, if you will host DNS zones.
Checklist
- Fresh Ubuntu 22.04/24.04 or Debian 12/13, amd64 or arm64.
- At least 1 GB of RAM (2 GB or more for production).
- Root or sudo access over SSH.
- Ports for SSH, 80, 443 and 8888 open in any provider firewall.
- A hostname and, ideally, a panel domain pointing to the server.
Next: Install ZoPanel.