Installing CloudPanel on a Linux VPS takes about ten minutes on a clean server: you run one installer script, open the admin port, and log in to a web interface where you create sites, databases and Let's Encrypt certificates. This guide walks through the whole path, from preparing the operating system to your first login.
Before you start
You need:
- A Linux VPS running a fresh, minimal Debian 12 or Ubuntu 22.04/24.04 install. CloudPanel supports specific OS versions only, so check the vendor's requirements page before you begin.
- Root SSH access. If you have not connected yet, see Connect to your Linux VPS with SSH.
- A hostname that is a fully qualified domain name, such as
panel.example.com, with a DNS A record pointing to your server IP. - Nothing else installed on the server.
Warning: CloudPanel installs and manages its own web stack (nginx, MariaDB, PHP-FPM) and takes over ports 80, 443 and 8443. Do not run the installer on a server that already has Apache, nginx, another control panel or live websites. If you need a clean start, reinstall the OS from your VPS provider's control panel first.
Prepare the server
- Log in as root:
ssh root@203.0.113.10- Update the system and confirm the OS version:
apt update && apt upgrade -y
cat /etc/os-release- Set a fully qualified hostname. CloudPanel expects one, and the installer will complain if the hostname is not a FQDN:
hostnamectl set-hostname panel.example.com
hostname -f- Check that ports 80, 443 and 8443 are free:
ss -tlnp | grep -E ':(80|443|8443)\b'No output means the ports are free and you can continue.
Install CloudPanel on your Linux VPS
Download the installer and run it as root:
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh
sudo bash install.shTip: CloudPanel publishes a SHA256 checksum for the installer. Verify the downloaded file against the checksum on the vendor's documentation page before running it, so you know you have the real script.
The installer runs for several minutes. It installs nginx, MariaDB, PHP-FPM and the panel itself, and prints progress as it goes. Do not close the SSH session or reboot while it works. At the end it prints the panel URL and the admin credentials, and depending on the version it may ask you to set the admin user and password during the run. Follow the prompts and note down what you choose.
Open the firewall
If UFW is active, allow SSH and the panel ports:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8443/tcp
ufw status verbosePort 8443 is the CloudPanel admin interface. Ports 80 and 443 serve your websites. CloudPanel also manages its own firewall rules from the panel, so keep UFW simple and let the panel handle per-site rules.
Log in to the CloudPanel admin panel
Open your browser and go to:
https://203.0.113.10:8443Use your server IP or the hostname you set. The panel uses a self-signed certificate on first start, so the browser shows a warning — accept it and continue. If credentials were not set during installation, the default login is admin with the password admin, and CloudPanel forces a change on first login.
Change the admin password immediately, then look at the dashboard: it shows CPU, memory, disk and the services CloudPanel manages.
Add your first site
- In the panel, go to Sites and choose Add Site.
- Pick the site type (PHP, Node.js, static or reverse proxy), enter the domain, and choose a PHP version if relevant.
- Create a database and a database user in the same step if the site needs one.
- Point the domain's DNS A record at
203.0.113.10and wait for it to resolve. - Open the site's SSL/TLS tab and issue a Let's Encrypt certificate. This only works once DNS points at the server.
Upload files over SFTP or with scp; see Transfer files to your Linux VPS with SCP, SFTP, WinSCP or FileZilla.
Check it works
curl -I https://203.0.113.10:8443returns an HTTP response (a 200 or a redirect), which means the panel is listening.ss -tlnp | grep 8443shows a process bound to the port.systemctl status nginx mysqlshows both services active.- Your test site loads over
https://with a valid certificate. - The panel dashboard shows no service warnings.
Troubleshooting
- Installer stops with an unsupported OS message — the OS version is not one CloudPanel supports, or the install is not minimal. Reinstall Debian 12 or Ubuntu 22.04/24.04 from your VPS provider's control panel and run the installer again.
- The panel URL does not load — port 8443 is blocked. Check
ufw status, confirm the port is allowed, then test again from a different network. - Installer complains about the hostname — the hostname is not a FQDN. Run
hostnamectl set-hostname panel.example.com, thenhostname -fand confirm it returns the full name. - A site returns 502 Bad Gateway — PHP-FPM is down or the PHP version for the site is wrong. Check the site log in the panel and restart the PHP service from the panel's services page.
- You cannot log in to the panel — the credentials are wrong or the password was never changed from the default. Reset the admin password from the CloudPanel CLI over SSH, or reinstall the panel on a clean server.
Next steps
- First steps after your Linux VPS is ready — updates, users and firewall basics.
- Back up your Linux VPS with rsync, restic and cron — protect the sites you build in the panel.
- How to install HestiaCP on a Linux VPS — compare with another free panel.
- How to install Plesk on a Linux VPS — if you need a commercial panel instead.
