Sur un VPS Debian/Ubuntu fraîchement installé (root ou sudo) :
curl -fsSL https://install.vpscontrol.wazestudio.com | sudo bash
Le script installe Docker, Go et Nginx automatiquement si nécessaire,
compile le panel, crée les dossiers de travail et installe un service
systemd qui démarre VPS Control automatiquement (y compris
après un redémarrage du serveur). Il vous pose ensuite deux questions,
détaillées ci-dessous : le domaine (ou non) à utiliser, et si vous
voulez activer les mises à jour automatiques.
À la première visite du panel, un écran vous invite à créer le premier compte administrateur — un identifiant propre à VPS Control, distinct de vos accès SSH/root.
Vous préférez cloner le dépôt vous-même plutôt que passer par le script en une commande ?
git clone https://github.com/VPSControl/vps-control.git
cd vps-control
sudo bash scripts/install.sh
Les deux méthodes lancent exactement le même installeur — celle du haut le télécharge juste pour vous au préalable.
Pendant l'installation, une question vous est posée :
Nom de domaine pointant déjà vers ce VPS (laisser vide pour utiliser directement l'IP du serveur) :
Vous avez un nom de domaine — entrez-le. L'installeur configure Nginx puis lance Certbot pour obtenir un certificat Let's Encrypt. Certbot vous posera lui-même ses questions habituelles (email de contact, acceptation des conditions) exactement comme si vous l'aviez lancé à la main.
sudo certbot --nginx -d votredomaine.com).Vous n'avez pas de domaine — laissez vide et appuyez sur Entrée. L'installeur vous demande alors un port (8443 par défaut), génère un certificat auto-signé et configure Nginx pour servir le panel en HTTPS directement sur l'IP du VPS :
https://VOTRE_IP:8443
L'installeur demande aussi si vous voulez activer les mises à jour automatiques quotidiennes. Trois façons de mettre à jour VPS Control, dans tous les cas :
git pull + recompilation + redémarrage du service, sans avoir à
vous reconnecter en SSH.vpscontrol-update.timer) vérifie une fois par jour et
met à jour tout seul s'il y a du nouveau.sudo bash /opt/vpscontrol-src/scripts/update.shDans les trois cas, la mise à jour ne redémarre le service que si la recompilation réussit — en cas d'erreur, le panel continue de tourner sur la version précédente.
Modifiables dans /etc/systemd/system/vpscontrol.service puis
systemctl daemon-reload && systemctl restart vpscontrol.
| Variable | Par défaut | Rôle |
|---|---|---|
VPSCONTROL_LISTEN | 127.0.0.1:8090 | Adresse d'écoute du panel (Nginx fait le reverse proxy) |
VPSCONTROL_DATA_DIR | /opt/vpscontrol/data | Comptes, connexions DB, déploiements (JSON) |
VPSCONTROL_DEPLOY_ROOT | /opt/vpscontrol/apps | Dossier des applications déployées |
VPSCONTROL_FILES_ROOT | /home | Racine exposée par le gestionnaire de fichiers |
VPSCONTROL_SRC_DIR | /opt/vpscontrol-src | Dossier du code source (utilisé pour les mises à jour) |
VPSCONTROL_REPO_URL | github.com/VPSControl/vps-control | Dépôt d'origine, utilisé pour détecter les nouvelles versions |
Le panel est un unique binaire Go : le frontend (HTML/CSS/JS vanilla)
est embarqué dedans via go:embed, donc rien à installer côté
Node ou build step. Les comptes, connexions aux bases et déploiements
sont stockés dans un simple fichier JSON local — pas de base de données
à faire tourner pour le panel lui-même. Chaque application déployée
tourne dans son propre conteneur Docker, ce qui isole les apps entre
elles et permet au panel de piloter leur cycle de vie (start/stop/
restart) via la CLI Docker. Nginx sert de reverse proxy et termine le
TLS (Let's Encrypt via Certbot, ou certificat auto-signé pour un accès
direct par IP).