SSanalCP
TR EN
Home Features Demo Installation Docs About Changelog
TR EN
GitHub
Ready in 5 Minutes

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.

Required

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.

Required

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.

Required

Access

Root SSH access to the server. The installer won't run alongside another control panel on the same server.

Step by Step

Installation

SSH into your server

Connect as root to a clean server. It's recommended to update system packages before installing.

// AlmaLinux · RHEL · Rocky
$ ssh root@server-ip
$ dnf update -y
// Debian · Ubuntu
$ 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.

$ curl -fsSL https://sanalcp.com/kur | bash

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.

→ https://server-ip:8443

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.

$ reboot
# 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.

Beta · Free for Life

Ran into something?

The docs page covers common situations and configuration details.