Prérequis
- Un serveur sous Ubuntu 24.04 ou Debian 13 : voir nos VPS au Canada
- Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
- Un serveur vierge : rien ne doit écouter sur les ports 80, 443 et 3306
- 2 Go de RAM et 10 Go d'espace disque libre
- L'adresse IP publique de votre poste, pour lui réserver l'accès au panneau
CloudPanel est un panneau d'hébergement libre : depuis un navigateur, il crée des sites PHP, Node.js ou Python sur nginx, des bases de données et des certificats. Ce guide l'installe, crée le compte administrateur avant que quelqu'un d'autre ne le fasse, réserve le panneau à votre adresse, et crée un premier site. Copiez la commande avec le bouton Copier, collez-la dans votre terminal, et comparez avec le résultat attendu.
1Mettre à jour le système
apt update && apt -y upgrade && apt -y install curl wget sudo... 225 upgraded, 8 newly installed, 0 to remove and 4 not upgraded. ... (les nombres dépendent de l'âge de l'image)
2Lancer l'installateur
L'installateur se télécharge, sa somme de contrôle se vérifie, puis il travaille seul pendant six à huit minutes. Il ne pose aucune question.
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.shecho "8146dbe0a488e7088b04071b0c34d59aa0ab1fe9dcec382d395fd155c9e6c476 install.sh" | sha256sum -cinstall.sh: OK
Si la réponse est « install.sh: FAILED »
La somme change à chaque version de l'installateur. Prenez celle affichée sur la page d'installation de CloudPanel et relancez la vérification. N'installez pas tant qu'elle ne répond pas OK.
DB_ENGINE=MARIADB_11.8 bash install.sh~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The installation of CloudPanel is complete! CloudPanel can be accessed now: https://203.0.113.42:8443 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (6 à 8 minutes, avec beaucoup de lignes qui commencent par + : l'installateur affiche chaque commande qu'il exécute)
3Créer le compte administrateur, tout de suite
Le premier venu devient administrateur
L'installateur ne crée aucun compte, et il ouvre le port 8443 à tout Internet : la page du panneau propose à n'importe qui de créer le compte administrateur. Créez-le depuis le serveur, maintenant, avant d'ouvrir un navigateur.
read -s -p 'Mot de passe du panneau : ' MDP; echo
clpctl user:add --userName='admin' --email='admin@exemple.ca' --firstName='Admin' --lastName='Serveur' --password="$MDP" --role='admin' --timezone='America/Toronto' --status='1'User "admin" has been added.
clpctl user:list+-----------+------------+-----------+------------------+-------+--------+ | User Name | First Name | Last Name | E-Mail | Role | Status | +-----------+------------+-----------+------------------+-------+--------+ | admin | Admin | Serveur | admin@exemple.ca | Admin | Active | +-----------+------------+-----------+------------------+-------+--------+
4Réserver le panneau à votre adresse
ufw status | grep 848433:8443/tcp ALLOW Anywhere 8433:8443/tcp (v6) ALLOW Anywhere (v6)
La suite retire cette règle, puis réserve le port à une seule adresse. Remplacez 198.51.100.7 par l'adresse IP publique de votre poste.
ufw delete allow 8433:8443/tcp
ufw allow from 198.51.100.7 to any port 8443 proto tcpRule deleted Rule deleted (v6) Rule added
ufw status | grep 84438443/tcp ALLOW 198.51.100.7
Depuis votre adresse, le panneau répond ; depuis n'importe quelle autre, il ne répond plus, alors que SSH et vos sites restent joignables par tous.
curl -sk -o /dev/null -w '%{http_code}\n' --max-time 10 https://203.0.113.42:8443/login000 (000 veut dire aucune réponse : c'est le résultat attendu depuis une adresse qui n'est pas la vôtre)
5Ouvrir le panneau
curl -sk -o /dev/null -w '%{http_code}\n' https://127.0.0.1:8443/login200
- Ouvrez https://203.0.113.42:8443 dans votre navigateur, avec l'adresse IP de votre serveur, en https, et le port.
- Le navigateur avertit que le certificat n'est pas reconnu : celui livré avec CloudPanel est auto-signé et périmé. Cliquez sur Avancé, puis Continuer vers le site.
- Identifiant admin, et le mot de passe que vous avez tapé à l'étape 3.
6Créer un premier site
Dans le panneau, c'est Sites, puis Add Site. La même chose en une commande, avec votre domaine ; le mot de passe est celui de l'utilisateur système du site :
read -s -p 'Mot de passe du site : ' MDPSITE; echo
clpctl site:add:php --domainName=monsite.exemple.ca --phpVersion=8.4 --vhostTemplate='Generic' --siteUser=monsite --siteUserPassword="$MDPSITE"Site monsite.exemple.ca has been added.
stat -c '%n %U:%G %A' /home/monsite/htdocs/monsite.exemple.ca; ls /home/monsite/htdocs/monsite.exemple.ca/home/monsite/htdocs/monsite.exemple.ca monsite:monsite drwxrwx--- index.php
Vos fichiers vont dans ce dossier. Le site n'est servi qu'en HTTPS, sous son nom : la vérification passe par le nom, sans attendre le DNS.
curl -sk -o /dev/null -w '%{http_code}\n' --resolve monsite.exemple.ca:443:203.0.113.42 https://monsite.exemple.ca/200
7Changer le mot de passe administrateur
read -s -p 'Nouveau mot de passe : ' MDP; echo
clpctl user:reset:password --userName=admin --password="$MDP"Password for "admin" has been reset.
8Les commandes du quotidien
clpctlclpctl user:listclpctl user:reset:password --userName=admin --password='MotDePasse'clpctl site:delete --domainName=monsite.exemple.casystemctl status clp-agentsystemctl status nginx mariadbufw statusss -ltnLa base de données (3306), le FTP (21), Varnish (6081) et PHP-FPM sont en écoute mais ne répondent pas depuis l'extérieur : le pare-feu ne les ouvre pas. Depuis Internet, seuls SSH, vos sites et, pour votre adresse, le panneau répondent.
Erreurs fréquentes
L'image du serveur a été construite sur un autre disque et GRUB demande où se réinstaller : choisissez le disque de la machine (celui que lsblk affiche, en général /dev/sda) ; la mise à jour continue ensuite.
L'installateur ne tourne que sur Debian 11, 12 et 13 et Ubuntu 22.04, 24.04 et 26.04. AlmaLinux, Rocky, CentOS, Fedora, Alpine et openSUSE sont refusés avant que quoi que ce soit ne soit installé.
Chaque système a ses moteurs. Ubuntu 24.04 et Debian 13 acceptent MYSQL_8.4, MYSQL_8.0, MARIADB_11.8 et MARIADB_12.3 ; Ubuntu 22.04 accepte MYSQL_8.0, MARIADB_10.6, MARIADB_10.11, MARIADB_11.4 et MARIADB_11.8. Relancez l'étape 2 avec l'un d'eux.
Un serveur web ou une base de données tourne déjà. CloudPanel a besoin de ces trois ports pour lui seul. Repartez d'un serveur vierge.
L'installateur a été lancé sans la variable HOME. Terminez la configuration avec HOME=/root dpkg --configure -a.
Un paquet du système était déjà cassé avant CloudPanel. dpkg --configure -a affiche lequel et pourquoi. Réglez-le, puis relancez l'étape 1.
Aucun compte n'existe encore. Fermez cette page et faites l'étape 3 depuis le serveur : elle disparaît dès que le compte est créé.
L'adresse IP publique de votre poste a changé, ou ce n'est pas celle de la règle. Retrouvez-la dans votre session SSH avec echo $SSH_CLIENT, puis ajoutez-la : ufw allow from VOTRE_IP to any port 8443 proto tcp.
Posez-en un nouveau depuis le serveur avec clpctl user:reset:password (étape 7).
nginx n'accepte la connexion HTTPS que sous le nom du site. Vérifiez avec --resolve comme à l'étape 6, ou faites pointer le DNS du domaine sur le serveur.
CloudPanel en service
Le compte administrateur est à vous, le panneau répond sur le port 8443, réservé à votre adresse, et votre premier site est servi. Pour un panneau qui installe aussi le courriel, voyez Installer HestiaCP ; pour un panneau sur OpenLiteSpeed, Installer CyberPanel.