Pourquoi self-héberger une interface Docker sur un VPS
Quand votre VPS héberge plus de trois ou quatre conteneurs, le pilotage en SSH avec docker ps et docker logs montre ses limites. Une interface dédiée comme Portainer ou Dokploy vous donne une vue centralisée des conteneurs, volumes, réseaux et logs, sans dépendre d'un service SaaS externe qui factice vos déploiements au volume. Sur un VPS que vous contrôlez de bout en bout, vous gardez vos données, vos variables d'environnement et vos secrets sur votre propre machine. Portainer est une couche d'administration généraliste qui s'adapte à Docker, Docker Swarm et Kubernetes. Dokploy va plus loin : c'est une plateforme de déploiement applicatif (PaaS) qui construit vos images depuis un dépôt Git, gère les domaines et le SSL via Traefik intégré. Le choix dépend donc moins du prix que de ce que vous voulez automatiser.
Ce que vous gagnez à déployer ce template sur votre VPS
- Vue temps réel sur tous vos conteneurs, volumes et réseaux depuis un seul tableau de bord web.
- Accès aux logs et au terminal d'un conteneur sans ouvrir de session SSH à chaque fois.
- Déploiement applicatif depuis Git (Dokploy) ou redéploiement par stack Compose (Portainer) en quelques clics.
- Gestion centralisée des variables d'environnement et des secrets sans les éparpiller dans des fichiers.
- Contrôle d'accès multi-utilisateurs pour partager le VPS avec une équipe ou un client.
- Aucune dépendance à un PaaS externe : vos données et vos builds restent sur votre infrastructure.
Prérequis pour les héberger
Portainer est extrêmement léger : l'agent et l'interface tiennent dans environ 256 Mo de RAM, et un VPS 1 vCPU / 1 Go convient pour piloter une dizaine de conteneurs. Dokploy demande davantage car il embarque Traefik, une base PostgreSQL, Redis et un système de build : comptez 2 vCPU et 4 Go de RAM minimum, 8 Go étant plus confortable si vous construisez des images Node ou PHP régulièrement. Dans les deux cas il vous faut Docker (et Docker Compose pour Dokploy), un nom de domaine pointe sur le VPS, et les ports 80/443 ouverts pour le SSL automatique. Prévoyez au moins 20 Go de disque pour les images et les volumes.
Déployer Dokploy sur un VPS (et installer Portainer en alternative)
Préparer le VPS et installer Docker
Connectez-vous en SSH, mettez le système à jour puis installez Docker via le script officiel : curl -fsSL https://get.docker.com | sh. Vérifiez avec docker --version.
Installer Dokploy en une commande
Dokploy fournit un script d'installation qui déploie sa stack complète : curl -sSL https://dokploy.com/install.sh | sh. Il met en place Traefik, PostgreSQL et Redis automatiquement et expose l'interface sur le port 3000.
Pointer votre domaine et activer le SSL
Créez un enregistrement A dokploy.mondomaine.com vers l'IP du VPS. Dans Dokploy, renseignez ce domaine : Traefik génère alors le certificat Let's Encrypt automatiquement, sans configuration manuelle d'Nginx.
Connecter un dépôt Git et déployer une application
Créez un projet, liez votre dépôt GitHub ou GitLab, choisissez la branche et le Dockerfile ou le buildpack Nixpacks. Dokploy construit l'image et la déploie ; chaque push déclenche un nouveau build.
Alternative : déployer Portainer pour du pilotage pur
Si vous voulez seulement administrer Docker, lancez plutôt : docker volume create portainer_data puis docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest. L'interface est dispo en HTTPS sur le port 9443.
Sécuriser l'accès à l'interface
Placez l'interface derrière un reverse proxy avec authentification, restreignez le port d'admin à votre IP via le pare-feu (ufw allow from VOTRE_IP to any port 9443) et activez l'authentification à deux facteurs disponible dans les deux outils.
| Critère | Portainer | Dokploy |
|---|---|---|
| Type d'outil | Administration Docker/Swarm/K8s | PaaS auto-hébergé (déploiement Git) |
| Déploiement depuis Git | Limite (stacks Compose) | Natif, build automatique sur push |
| Reverse proxy / SSL | A configurer soi-même | Traefik + Let's Encrypt intégrés |
| Empreinte mémoire | Très légère (~256 Mo) | Plus lourde (2-4 Go) |
| Courbe d'apprentissage | Faible, orientée infra | Moyenne, orientée application |
| Multi-environnements | Excellent (plusieurs endpoints) | Bon (par projet) |
| Cas d'usage idéal | Piloter une infra Docker existante | Déployer ses apps sans CI/CD lourd |
| Base de données managée | Non | Oui (templates Postgres/MySQL/Redis) |
Les deux outils ne sont pas exclusifs : installez Dokploy pour déployer vos applications depuis Git, et ajoutez Portainer en lecture pour inspecter finement les conteneurs, réseaux et volumes que Dokploy crée. Pointez Portainer sur le même socket Docker (/var/run/docker.sock) et vous obtenez une visibilité bas niveau que l'interface PaaS de Dokploy ne donne pas, sans aucun conflit entre les deux.