Control panels

How to install CloudPanel on a Linux VPS

CloudPanel is a free control panel for Debian and Ubuntu. This guide covers the installer, the admin account and your first login on a fresh Linux VPS.

BeginnerLinux server5 min read

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

  1. Log in as root:
Bash
ssh root@203.0.113.10
  1. Update the system and confirm the OS version:
Bash
apt update && apt upgrade -y
cat /etc/os-release
  1. Set a fully qualified hostname. CloudPanel expects one, and the installer will complain if the hostname is not a FQDN:
Bash
hostnamectl set-hostname panel.example.com
hostname -f
  1. Check that ports 80, 443 and 8443 are free:
Bash
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:

Bash
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh
sudo bash install.sh

Tip: 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:

Bash
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8443/tcp
ufw status verbose

Port 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:8443

Use 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

  1. In the panel, go to Sites and choose Add Site.
  2. Pick the site type (PHP, Node.js, static or reverse proxy), enter the domain, and choose a PHP version if relevant.
  3. Create a database and a database user in the same step if the site needs one.
  4. Point the domain's DNS A record at 203.0.113.10 and wait for it to resolve.
  5. 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:8443 returns an HTTP response (a 200 or a redirect), which means the panel is listening.
  • ss -tlnp | grep 8443 shows a process bound to the port.
  • systemctl status nginx mysql shows 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, then hostname -f and 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

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.