Fatigué par des configurations CI/CD complexes ? Vous voulez profiter de la puissance de Vercel tout en gardant un contrôle total sur votre infrastructure ? Dokploy est la réponse que vous cherchiez.
J’ai découvert Dokploy lors d’une migration frustrante de Kubernetes vers quelque chose de plus simple. Après avoir testé des dizaines de solutions, j’ai trouvé une plateforme qui combine la simplicité d’Heroku avec la flexibilité de Docker – et le meilleur de tout : il est entièrement open source.
Qu’est-ce que Dokploy ?
Dokploy est une plateforme de déploiement auto-hébergée qui transforme n’importe quel VPS en une machine de déploiement puissante. Pensez à Vercel ou Netlify, mais fonctionnant sur votre propre infrastructure, avec un support total de Docker et une intégration native avec GitHub/GitLab.
Pourquoi choisir Dokploy ?
Après des années à lutter contre Kubernetes, Docker Swarm et des scripts Bash personnalisés, j’ai trouvé en Dokploy une solution qui résout des problèmes réels :
-
Simplicité : interface web intuitive pour gérer les déploiements
-
Flexibilité : supporte n’importe quelle application fonctionnant sous Docker
-
Contrôle total : votre infrastructure, vos règles
-
Zero lock-in : code source ouvert, données sur votre machine
-
Économie : pas de coûts par déploiement ni de limites artificielles
Préparation de l’Environnement : Exigences
Avant de commencer, vous aurez besoin de :
Matériel minimum
-
CPU: 2 cœurs (4 cœurs recommandés)
-
RAM: 4 Go (8 Go recommandés)
-
Stockage: 20 Go libres (SSD de préférence)
-
Réseau: IP public avec ports 80, 443 et 3000 ouverts
Logiciel de Base
-
OS: Ubuntu 20.04+ (testé et recommandé)
-
Docker: Version 20.10+
-
Docker Compose: Version 2.0+
Étape 1 : Configuration initiale du serveur
Tout d’abord, préparons notre serveur. Si vous utilisez un VPS chez Hetzner, DigitalOcean, ou tout autre fournisseur :
Mise à jour du système
# Connectez-vous à votre serveur
ssh root@VOTRE_IP_ICI
# Mettez à jour le système
apt update && apt upgrade -y
# Installez les dépendances essentielles
apt install -y curl wget git ufw
Configuration du Pare-feu
# Configurez UFW pour une sécurité de base
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw allow 3000/tcp # Dokploy UI
ufw --force enable
Installation de Docker
# Installez Docker via le script officiel
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# Démarrez et activez Docker
systemctl start docker
systemctl enable docker
# Vérifiez l'installation
docker --version
docker-compose --version
Étape 2 : Installation de Dokploy
Maintenant, la partie la plus simple – installer Dokploy :
# Exécutez le script d'installation officiel
curl -sSL https://dokploy.com/install.sh | sh
Ce script va :
-
Télécharger l’image Docker de Dokploy
-
Configurer docker-compose.yml
-
Lancer tous les services nécessaires
-
Configurer nginx en proxy inverse
Vérification de l’installation
# Vérifiez que les conteneurs tournent
docker ps
# Vous devriez voir des conteneurs tels que :
# - dokploy
# - dokploy-postgres
# - dokploy-redis
Étape 3 : Premier accès et configuration
Accès à l’Interface Web
Ouvrez votre navigateur et accédez à :
http://VOTRE_IP:3000
Configuration Initiale
-
Créer un compte Admin : définissez l’email et le mot de passe pour l’utilisateur administrateur
-
Configurer le DNS : configurez votre domaine (optionnel pour le moment)
-
Certificat SSL : configurez Let’s Encrypt pour un HTTPS automatique
Configuration de Domaine (Optionnelle mais Recommandée)
Si vous disposez d’un domaine :
# Configurez l'enregistrement DNS A pointant vers votre serveur
# exemple.com -> VOTRE_IP
# *.exemple.com -> VOTRE_IP (pour les sous-domaines automatiques)
Étape 4 : Déploiement de la première application
Nous allons déployer une application Elixir/Phoenix pour démontrer le pouvoir de Dokploy :
1. Préparation du dépôt
Assurez-vous que votre projet dispose de :
-
Dockerfile à la racine
-
Variables d’environnement configurées
-
Bon binding de ports
2. Création de l’application sur Dokploy
Dans l’interface web :
-
Cliquez sur “New Application”
-
Sélectionnez “GitHub Repository”
-
Configurez le dépôt :
-
URL : https://github.com/utilisateur/projet
-
Branche : main
-
Build Path : . (racine du projet)
-
Dockerfile Path : Dockerfile
-
3. Configuration des Variables d’Environnement
Configurez les variables nécessaires :
# Exemple pour une application Phoenix
DATABASE_URL=postgresql://user:password@host:5432/dbname
SECRET_KEY_BASE=sua_secret_key_super_segura_aqui
MIX_ENV=prod
PORT=4000
PHX_HOST=exemple.com
4. Configuration de Base de Données
Dokploy facilite la création de bases :
-
Cliquez sur “New Database”
-
Sélectionnez PostgreSQL/MySQL/MongoDB
-
Configurez les identifiants
-
Connectez à l’application
5. Déploiement Automatique
Cliquez sur “Deploy” et regardez la magie opérer :
# Les logs en temps réel afficheront :
# → Clonage du dépôt…
# → Construction de l’image Docker…
# → Démarrage du conteneur…
# → Vérification de santé réussie ✅
# → Déploiement réussi !
Étape 5 : Configuration Avancée
SSL Automatique avec Let’s Encrypt
# Dans le panneau Dokploy, allez dans Settings > SSL
# Activez “Auto SSL” et configurez :
# – Email pour les certificats
# – Domaines à certifier
Sauvegarde Automatique
Configurez les sauvegardes pour la protection des données :
# Créez un script de sauvegarde
#!/bin/bash
# backup-dokploy.sh
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/dokploy"
mkdir -p $BACKUP_DIR
# Sauvegarde de la base de données
docker exec dokploy-postgres pg_dumpall -U postgres > $BACKUP_DIR/postgres_$DATE.sql
# Sauvegarde des volumes
tar -czf $BACKUP_DIR/volumes_$DATE.tar.gz /var/lib/docker/volumes/
# Ne conserver que les 7 derniers sauvegardes
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
Surveillance de Base
Configurez des alertes simples :
# Installez htop pour la surveillance
apt install -y htop
# Configurez logrotate pour les logs Docker
echo '/var/lib/docker/containers/*/*-json.log {'
daily
missingok
rotate 7
compress
notifempty
create 644 root root
}' > /etc/logrotate.d/docker
Exemples Pratiques: Différents Types de Déploiement
Déploiement Node.js/Express
# Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Déploiement Python/FastAPI
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Déploiement Site Statique
# Dockerfile
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
EXPOSE 80
Dépannage : Problèmes Courants
Échec de la Build : Dockerfile introuvable
# Problème : Contexte de build incorrect
# Solution : Vérifiez le “Build Path” dans Dokploy
# Il doit pointer vers l’emplacement du Dockerfile
Application ne démarre pas : Liaison du Port
# Problème : l'application n'écoute pas sur le bon port
# Solution : configurez la variable PORT et liez à 0.0.0.0
PORT=4000
PHX_HOST=0.0.0.0 # Pour Phoenix
HOST=0.0.0.0 # Pour les autres apps
Problèmes de Connexion à la Base de Données
# Problème : l'application ne parvient pas à se connecter à la base
# Solution : utilisez le nom d'hôte interne de Docker
DATABASE_URL=postgresql://user:pass@dokploy-postgres:5432/db
Problèmes de Certificat SSL
# Problème : Le certificat ne se génère pas
# Solution : Vérifiez DNS et pare-feu
dig exemple.com # Doit retourner l’adresse IP du serveur
Avantages de Dokploy par rapport aux alternatives
Dokploy vs Kubernetes
-
✅ Simplicité : interface web vs YAML complexes
-
✅ Fonctionnalités : empreinte CPU/RAM plus faible
-
✅ Maintenance : mises à jour automatiques vs gestion de cluster
-
✅ Courbe d’apprentissage : des heures vs des semaines
Dokploy vs Docker Compose Manuel
-
✅ Interface utilisateur visuelle : interface web vs ligne de commande
-
✅ Intégration Git : déploiement automatique vs manuel
-
✅ SSL : certificats automatiques vs configuration manuelle
-
✅ Monitoring : dashboards intégrés vs outils externes
Dokploy vs Services Cloud
-
✅ Coût : votre serveur vs tarification par déploiement
-
✅ Contrôle : accès total vs limitations de plateforme
-
✅ Confidentialité : données locales vs tiers
-
✅ Personnalisation : configuration totale vs options limitées
Cas d’Utilisation Réels
Freelance avec des Projets Clients
En tant que freelance, j’utilise Dokploy pour héberger des projets de différents clients :
-
Isolation par application
-
SSL automatique pour chaque domaine
-
Sauvegardes indépendantes
-
Facturation simplifiée
Résultat : marge bénéficiaire 40 % plus élevée par rapport à l’utilisation de services cloud.
Homelab pour Projets Personnels
Exécuter Dokploy sur un mini PC à domicile :
-
Projets side-projects
-
Ambients de test
-
Prototypes pour les clients
-
Espace d’apprentissage
Résultat : zéro coût mensuel, contrôle total.
Prochaines Étapes et Optimisations
Configuration CI/CD Avancée
# .github/workflows/deploy.yml
name: Déployer vers Dokploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
-
name: Déclencher le déploiement Dokploy
run: |
curl -X POST "${{ secrets.DOKPLOY_WEBHOOK_URL }}"
Surveillance Avancée
# Installez Prometheus + Grafana via Dokploy
# Configurez des tableaux de bord pour les métriques de l’application
# Réglez les alertes via Slack/Discord
Stratégie de Sauvegarde
# Script de sauvegarde complet pour la production
#!/bin/bash
# 1. Sauvegardes de la base de données
# 2. Sauvegarde des volumes Docker
# 3. Téléversement vers S3/BackBlaze
# 4. Vérification d’intégrité
Ressources Utiles
Documentation et Communauté
-
Documentation officielle
-
Communauté Discord
-
Dépôt GitHub
Templates et Exemples
-
Modèles Dokploy
-
Exemples communautaires
Conclusion
Dokploy a totalement transformé ma façon de gérer les déploiements. Plutôt que de passer des heures à configurer des pipelines CI/CD complexes, j’ai désormais une plateforme qui « fonctionne simplement ».
La combinaison de la simplicité d’Heroku, de la flexibilité de Docker, et du contrôle total sur votre infrastructure vous offre Dokploy comme choix parfait pour les développeurs qui veulent se concentrer sur ce qu’ils savent faire de mieux : créer des produits incroyables.




