Guide de déploiement

Portainer vs Dokploy : lequel déployer en 2026 ?

Déployer sur un VPS Cloud →

Portainer vs Dokploy : lequel déployer en 2026 ?

Comparatif10 min de lecture10 étapes

Portainer et Dokploy sont deux interfaces web pour gérer vos conteneurs Docker sur VPS. Portainer est l'outil historique — stable, documenté, mais bousculé en 2026 par la fin de l'édition Community et par des CVEs de score 9.4. Dokploy est le challenger open-source, PaaS-ready, qui adresse exactement ce que Portainer CE ne couvre plus. Ce guide tranche : architecture, licences, sécurité, migration.

Sommaire· Pourquoi self-héberger une interface de déploiement sur un VPS1/14
  1. 01Pourquoi self-héberger une interface de déploiement sur un VPS
  2. 02Ce que vous gagnez à déployer ce template sur votre VPS
  3. 03Situation de Portainer en 2026 : la fin de l'édition Community
  4. 04CVEs critiques Portainer 2.x : vérifier et patcher
  5. 05CVE Dokploy : le secret hardcodé (< 0.29.13)
  6. 06Prérequis pour héberger Portainer ou Dokploy
  7. 07Ressources minimales recommandées
  8. 08Déployer Dokploy sur un VPS (≥ 0.29.13)
  9. 09Portainer en alternative — installation rapide
  10. 10Portainer 2.x vs Dokploy — comparatif complet 2026
  11. 11Quand rester sur Portainer, quand passer à Dokploy
  12. 12Migration de Portainer vers Dokploy : étapes concrètes
  13. 13Dépannage : erreurs courantes
  14. 14Les deux outils ne sont pas toujours exclusifs

Pourquoi self-héberger une interface de déploiement sur un VPS

Un VPS nu livré avec Docker vous expose à une seule interface : la ligne de commande. C'est suffisant pour une machine, laborieux pour cinq, et ingérable pour une équipe. Une interface web centralise les logs, les mises à jour d'images, les variables d'environnement et les certificats TLS — sans vous forcer à maintenir un pipeline CI/CD complet dès le premier jour.

Deux familles s'affrontent : les gestionnaires (Portainer, Yacht) qui exposent Docker comme il est, et les PaaS légers (Dokploy, Coolify, CapRover) qui ajoutent une couche de déploiement — branches Git, domaines automatiques, certificats Let's Encrypt. La frontière n'est pas cosmétique : elle détermine si vos développeurs peuvent déployer seuls ou s'ils ont besoin d'un accès SSH.

Ce que vous gagnez à déployer ce template sur votre VPS

  • Déploiement depuis Git ou Docker Hub en quelques clics, sans SSH
  • Gestion des certificats TLS automatique via Let's Encrypt
  • Variables d'environnement versionnées et isolées par projet
  • Logs centralisés et accès terminal web depuis le navigateur
  • Tableau de bord de santé : CPU, RAM, statut des conteneurs
  • Gestion des volumes et des réseaux Docker sans mémoriser les commandes

Situation de Portainer en 2026 : la fin de l'édition Community

Portainer CE (Community Edition) a été la référence du genre pendant six ans. En 2026, Portainer a restructuré son modèle de licence : l'édition Community est désormais limitée à Kubernetes ou devient payante (Portainer Business). Les instances Portainer 2.x déjà déployées continuent de fonctionner, mais elles n'évoluent plus sous CE.

Cette bascule a plusieurs conséquences pratiques. D'abord, les nouvelles installations qui cherchent une interface Docker gratuite se trouvent sans roadmap claire côté CE. Ensuite, les images portainer/portainer-ce:latest continuent d'exister et de se mettre à jour, mais le canal communautaire a perdu de sa visibilité. Enfin — et c'est le point critique — Portainer 2.x a accumulé deux CVEs de score 9.4 qui restent actives sur toute installation non patchée.

Si vous tournez encore sur Portainer 2.x, la question n'est pas « migrer ou rester » par principe : elle est « est-ce que mon instance est à jour, et est-ce que le risque est acceptable ? »

CVEs critiques Portainer 2.x : vérifier et patcher

Deux CVEs affectent les versions Portainer 2.33.0 à 2.40.x :

CVE-2026-44848 (CVSS 9.4) — Les endpoints /plugins/* ne sont pas protégés par authentification. Un attaquant non authentifié peut interroger et modifier les plugins Docker de votre hôte via l'API Portainer.

CVE-2026-44849 (CVSS 9.4) — Le mécanisme de restrictions Swarm peut être contourné : un utilisateur Portainer avec des droits réduits peut exécuter des actions normalement réservées à l'administrateur sur un cluster Swarm.

Versions corrigées : 2.33.8, 2.39.2, 2.41.0.

Pour vérifier votre version :

docker exec portainer /app/portainer --version

Pour mettre à jour :

docker pull portainer/portainer-ce:latest
docker stop portainer
docker rm portainer
docker run -d \
  --name=portainer \
  --restart=always \
  -p 8000:8000 -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Si vous êtes en dessous de 2.33.8 ou de 2.39.2 selon votre branche, mettez à jour avant de continuer à utiliser l'instance. Portainer exposé sur Internet sans patch est un vecteur d'intrusion directe sur votre hôte Docker.

CVE Dokploy : le secret hardcodé (< 0.29.13)

Dokploy n'est pas exempt de vulnérabilités. CVE-2026-45631 (CVSS 10.0) affecte les versions antérieures à 0.29.13 : un secret d'authentification était hardcodé dans le code source, permettant à n'importe qui connaissant ce secret de s'authentifier sur n'importe quelle instance Dokploy.

Cette CVE est corrigée depuis la version 0.29.13. Pour vérifier et mettre à jour :

# Vérifier la version installée
docker exec dokploy dokploy --version

# Mettre à jour via le script officiel
curl -sSL https://dokploy.com/install.sh | sh

Dokploy utilise BETTER_AUTH_SECRET comme clé de session. Sur une installation antérieure à 0.29.13, cette valeur était statique dans le code. Après mise à jour, vérifiez que votre docker-compose.yml Dokploy déclare bien une valeur aléatoire forte :

grep BETTER_AUTH_SECRET /etc/dokploy/docker-compose.yml

Si la variable est vide ou absente, générez une nouvelle valeur et redémarrez :

export BETTER_AUTH_SECRET=$(openssl rand -hex 32)

Prérequis pour héberger Portainer ou Dokploy

Les deux outils tournent sur Docker. Dokploy demande légèrement plus de ressources car il embarque une base de données PostgreSQL et un proxy Traefik en plus du service principal.

Ressources minimales recommandées

  • Portainer 2.x : 1 vCPU, 512 Mo RAM, Docker 20+ — tourne sur le plus petit VPS
  • Dokploy : 2 vCPU, 2 Go RAM, Docker 24+ — PostgreSQL et Traefik ajoutent ~400 Mo au démarrage
  • Un domaine ou sous-domaine pointant vers votre VPS (Dokploy en a besoin pour ses certificats automatiques)
  • Port 80 et 443 ouverts si vous utilisez Let's Encrypt via Traefik (Dokploy)
  • Accès SSH root ou sudo pour l'installation initiale

Déployer Dokploy sur un VPS (≥ 0.29.13)

  1. Installation via le script officiel

    La méthode la plus simple et la plus à jour :

    curl -sSL https://dokploy.com/install.sh | sh

    Le script installe Docker si nécessaire, génère un docker-compose.yml dans /etc/dokploy/, crée un BETTER_AUTH_SECRET aléatoire et démarre l'ensemble.

  2. Vérifier le BETTER_AUTH_SECRET

    Après installation, assurez-vous que la variable est bien générée :

    grep BETTER_AUTH_SECRET /etc/dokploy/docker-compose.yml

    Vous devez voir une chaîne aléatoire de 64 caractères. Si la variable est vide, générez-en une et redémarrez :

    sed -i "s/BETTER_AUTH_SECRET=/BETTER_AUTH_SECRET=$(openssl rand -hex 32)/" /etc/dokploy/docker-compose.yml
    docker compose -f /etc/dokploy/docker-compose.yml up -d
  3. Accéder à l'interface et créer le compte admin

    Dokploy écoute sur le port 3000 par défaut. Ouvrez http://<ip-de-votre-vps>:3000 dans votre navigateur. La première visite vous invite à créer le compte administrateur. Faites-le immédiatement — l'interface est publique jusqu'à ce que ce compte existe.

  4. Configurer votre domaine et activer HTTPS

    Dans les paramètres Dokploy → Server → Domain, renseignez le FQDN (dokploy.votredomaine.com). Traefik récupère automatiquement un certificat Let's Encrypt via ACME HTTP-01. Votre DNS doit pointer vers le VPS avant cette étape.

  5. Mettre à jour Dokploy

    Dokploy expose un bouton Update dans ses paramètres, ou utilisez le script :

    curl -sSL https://dokploy.com/install.sh | sh

    Le script est idempotent : il met à jour l'image sans écraser votre configuration ni vos projets.

Portainer en alternative — installation rapide

Si vous préférez rester sur Portainer (instance existante ou choix délibéré), la commande de référence :

docker run -d \
  --name=portainer \
  --restart=always \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Accès sur https://<ip>:9443. Remplacez latest par 2.41.0 pour fixer la version et éviter les mises à jour silencieuses.

Portainer 2.x vs Dokploy — comparatif complet 2026

Faites défiler le tableau

CritèrePortainer 2.xDokploy
LicenceCE gratuite (Docker uniquement)Open-source (Apache 2.0)
Futur CELimité — CE 3.0 Kubernetes/payantRoadmap active, communauté croissante
CVEs activesCVE-2026-44848 + 44849 (CVSS 9.4) si < 2.41.0CVE-2026-45631 (CVSS 10.0) si < 0.29.13
RAM minimale512 Mo2 Go (PostgreSQL + Traefik inclus)
Déploiement GitNon (images Docker uniquement)Oui (GitHub, GitLab, Gitea, Bitbucket)
Certificats TLSManuel (reverse proxy externe)Automatique Let's Encrypt via Traefik
Templates d'appsOui (bibliothèque intégrée)Oui (Docker Compose importé)
Registry privéOuiOui
CI/CD intégréNonWebhooks Git + notifications
KubernetesOui (BE payant)Non (Docker Compose / Swarm)
Multi-serveurOui (endpoints)Oui (agents distants)
InterfaceMature, exhaustiveModerne, orientée projets

Quand rester sur Portainer, quand passer à Dokploy

Rester sur Portainer 2.x a du sens dans trois situations : vous gérez déjà un cluster Docker Swarm ou Kubernetes avec des configurations complexes ; vous avez des équipes qui maîtrisent l'interface et des runbooks documentés dessus ; ou vous avez besoin du niveau de détail sur les réseaux et volumes que Portainer expose nativement.

Dans ces cas, la condition non négociable est d'être sur une version patchée (2.33.8, 2.39.2 ou 2.41.0) et de restreindre l'accès à l'interface : ne jamais exposer le port 9000/9443 directement sur Internet, placer Portainer derrière un reverse proxy avec authentification supplémentaire si des utilisateurs non-admins y accèdent.

Migrer vers Dokploy est la bonne décision si : vous partez de zéro sur un nouveau VPS ; vous voulez que vos développeurs déploient depuis Git sans SSH ; vous gérez plusieurs domaines et ne voulez pas maintenir Nginx/Traefik à la main ; ou vous cherchez une alternative après la fin de CE 3.0 pour votre usage Docker.

Migration de Portainer vers Dokploy : étapes concrètes

  1. Exporter votre inventaire Portainer

    Avant de migrer, listez vos stacks et conteneurs actifs :

    docker ps --format 'table {{.Names}}	{{.Image}}	{{.Status}}'
    docker volume ls
    docker network ls --filter driver=bridge

    Pour chaque stack Portainer, récupérez le docker-compose.yml depuis l'interface (Stacks → votre stack → Editor) ou depuis le système de fichiers.

  2. Sauvegarder les volumes de données

    Les volumes nommés contiennent vos données applicatives. Sauvegardez-les avant toute opération :

    docker run --rm \
      -v <nom_volume>:/data \
      -v $(pwd):/backup \
      alpine tar czf /backup/<nom_volume>.tar.gz /data

    Répétez pour chaque volume critique.

  3. Installer Dokploy sur le même VPS ou un VPS dédié

    Si vous migrez sur le même hôte, arrêtez d'abord Portainer pour libérer les ports :

    docker stop portainer && docker rm portainer

    Puis lancez l'installation Dokploy (voir la procédure ci-dessus). Dokploy utilise Traefik sur les ports 80/443 — vérifiez qu'aucun autre service ne les occupe.

  4. Recréer vos projets dans Dokploy

    Dans Dokploy, créez un Compose Project pour chaque stack Portainer :
    1. Projets → Nouveau projet
    2. Ajoutez un service de type Docker Compose
    3. Collez votre docker-compose.yml ou pointez vers votre dépôt Git
    4. Configurez les variables d'environnement depuis l'onglet Environment
    5. Assignez un domaine — Dokploy configure Traefik automatiquement

  5. Vérifier et basculer le DNS

    Déployez d'abord sur un sous-domaine de test (test.votredomaine.com). Une fois validé, mettez à jour vos entrées DNS pour pointer vers Dokploy. Traefik émet les certificats automatiquement dès que le DNS se propage.

Dépannage : erreurs courantes

Portainer — interface inaccessible après mise à jour
Vérifiez que le volume portainer_data est bien monté. Une mise à jour sans volume nommé repart sur une base vide et redemande la création du compte admin.

Portainer — TLS handshake error sur le port 9443
Portainer génère un certificat auto-signé. Votre navigateur l'avertit à juste titre. Placez Portainer derrière un reverse proxy (nginx, Caddy) avec un vrai certificat pour un accès sécurisé en production.

Dokploy — Traefik ne génère pas de certificat
Cause la plus fréquente : le DNS n'est pas encore propagé vers le VPS. Vérifiez avec dig +short votre-domaine.com. Traefik attend une réponse DNS valide avant de lancer le challenge ACME. Si le DNS est bon, vérifiez que le port 80 est ouvert (ufw allow 80).

Dokploy — déploiement Git qui échoue silencieusement
Vérifiez les logs du service dans l'interface (Deployments → onglet Logs). L'erreur la plus commune est un BETTER_AUTH_SECRET manquant ou une clé SSH non configurée pour les dépôts privés. Dokploy propose un bouton Generate SSH Key dans les paramètres du projet pour les dépôts privés GitLab/GitHub.

Les deux outils ne sont pas toujours exclusifs

Portainer peut gérer plusieurs endpoints Docker distants depuis une seule interface — y compris un VPS sur lequel Dokploy est installé. Certaines équipes maintiennent Portainer comme outil d'observation et Dokploy comme outil de déploiement. Ce n'est pas un antipattern si les rôles sont clairement séparés. Le coût : deux surfaces à patcher. Si vous avez choisi cette architecture, assurez-vous que les deux outils sont à jour — voir les CVEs en début d'article.

Pour aller plus loin : les alternatives à Portainer CE 3.0, guide complet de déploiement avec Dokploy et la mise à jour critique CVE Dokploy 2026.

Déployez Dokploy sur votre VPS en quelques minutes

Le template Dokploy de ServOrbit configure automatiquement Docker, Traefik et les certificats TLS. Vous partez sur une version ≥ 0.29.13, patchée et prête pour la production.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet