Installation
SanalCP installs on a clean AlmaLinux, Debian or Ubuntu server with a single command. The installer downloads and configures every dependency (nginx, MariaDB, PHP-FPM, Postfix, Dovecot) itself.
Operating System
AlmaLinux 10 / 9.4+ (RHEL and Rocky also work) · Debian 13 and 12 · Ubuntu 26.04 LTS and 24.04 LTS. All four verified on live servers.
Minimum Hardware
At least 2 GB RAM, 2 vCPUs — because 7 PHP versions (7.4 through 8.5) + MariaDB + Valkey (Redis) all run at the same time.
Access
Root SSH access to the server. The installer won't run alongside another control panel on the same server.
Installation
SSH into your server
Connect as root to a clean server. It's recommended to update system packages before installing.
$ ssh root@server-ip
$ dnf update -y
$ ssh root@server-ip
$ apt update && apt upgrade -y
Run the install script
A single command sets up nginx, MariaDB, PHP-FPM pools, the firewall and the panel service. Takes 4-6 minutes on average. The command is pinned to the published release: the downloaded archive's SHA-256 is verified and the install aborts on a mismatch.
Log in to the panel
Connect to https://server-ip:8443. Since the certificate is self-signed, your browser will show a security warning first — click "Advanced" / "Proceed anyway" to continue. Login: username root, password = your server's root password.
If the panel does not open, the blocker is most likely your provider's firewall, not the server's. On providers such as Hetzner, AWS and Oracle Cloud, port 8443 is closed by default, and the nftables rules the panel installs do not affect that layer — you have to open the port from the provider's own console (Firewall / Security Group / Network ACL). The install can succeed and you still will not reach the panel while that port is closed.
Reboot once so disk quotas take effect
If the root filesystem is ext4 — the default on Debian, Ubuntu and most cloud images — disk quotas only become active after one reboot, because the kernel option can only be applied at boot. The installer writes the setting and reminds you on screen. Without the reboot the panel and the sites work fine; only the per-account disk limit is not enforced. On an XFS root filesystem this step is not needed.
# after boot, verify — the output must say "is on":
$ quotaon -p -u /
Add your first domain
Choose "Add Domain" in the panel, point your DNS records to the server, and let the SSL certificate be issued automatically.
(Optional) Turn on email hosting
Enable mail from the domain page's "Email" tab; the SPF/DKIM records are shown in the panel — add them to that domain's DNS settings.
Ran into something?
The docs page covers common situations and configuration details.