Dokploy : déployer ses apps sur son VPS comme sur Heroku
Un PaaS open-source auto-hébergé qui gère le déploiement, les variables d'environnement, le SSL et les domaines — sans payer Heroku ou Railway.
Heroku était parfait. Un git push heroku main, et votre application était en ligne avec SSL, un domaine, des logs accessibles, des variables d'environnement gérées depuis une interface. Puis la fin du plan gratuit en 2022.
Les alternatives managées (Railway, Render, Fly.io) reproduisent cette expérience, mais vous facturent selon l'usage. Dokploy prend un chemin différent : c'est un PaaS open-source que vous installez sur votre propre VPS. Même expérience utilisateur, infrastructure qui vous appartient.
Ce que Dokploy gère pour vous
Dokploy s'installe sur un serveur et prend en charge :
- Déploiement depuis GitHub, GitLab, ou une image Docker Hub
- Builds automatiques sur chaque push (Nixpacks, Dockerfile, Docker Compose)
- Reverse proxy avec Traefik — routage automatique, SSL Let's Encrypt
- Variables d'environnement avec chiffrement
- Logs en temps réel depuis l'interface
- Domaines personnalisés avec certificats SSL automatiques
- Services Docker : bases de données, Redis, tout ce qui a une image
Installation
Dokploy nécessite un VPS avec Ubuntu 20.04+ et au minimum 2 Go de RAM. Assurez-vous que Docker est installé et que les ports 80 et 443 sont ouverts dans votre pare-feu UFW.
curl -sSL https://dokploy.com/install.sh | shLe script installe Docker si absent, télécharge les images Dokploy, configure Traefik et démarre les services. À la fin, il affiche l'URL d'accès :
Dokploy installed successfully!
Access it at: http://YOUR_IP:3000Ouvrez l'interface, créez votre compte admin (premier compte = admin automatiquement), et vous êtes dans le dashboard.
Déployer une première application
Connexion GitHub
Settings → Git providers → GitHub → Connect. Dokploy vous redirige vers GitHub pour installer l'application OAuth sur votre compte ou votre organisation. Une fois connecté, vos repositories sont disponibles dans l'interface.
Créer un projet
- New Project → donnez un nom
- Add Service → Application
- Sélectionnez votre repository et la branche
- Build Type : Nixpacks (détection automatique du langage), Dockerfile, ou Docker Compose
Nixpacks détecte Node.js, Python, Go, Ruby, PHP et une trentaine d'autres runtimes — il génère le Dockerfile automatiquement. Si votre repo a un Dockerfile à la racine, Dokploy l'utilise directement.
Variables d'environnement
Dans l'onglet Environment du service, ajoutez vos variables. Elles sont chiffrées en base et injectées au build et au runtime.
NODE_ENV=production
DATABASE_URL=postgresql://...
JWT_SECRET=...
PORT=3000Domaine et SSL
Dans l'onglet Domains :
- Ajoutez votre domaine (
api.monsite.com) - Créez un enregistrement DNS
Apointant vers l'IP de votre serveur - Activez HTTPS — Dokploy/Traefik génère automatiquement un certificat Let's Encrypt
Quelques secondes après la propagation DNS, votre app est accessible en HTTPS.
Déployer
Deploy → Dokploy clone le repo, build l'image, crée le container, configure Traefik. Les logs du build s'affichent en temps réel dans l'interface.
Services annexes
Dokploy gère aussi les services Docker en dehors de votre code applicatif. Dans un projet, Add Service → Database ou Service.
Available: PostgreSQL, MySQL, MariaDB, MongoDB, RedisChaque service Docker Compose crée un container isolé dans le réseau interne Dokploy. Vos applications y accèdent via le nom du service comme hostname — pas besoin d'exposer les ports sur Internet.
DATABASE_URL=postgresql://postgres:password@my-postgres:5432/mydbmy-postgres est le nom interne du service PostgreSQL dans Dokploy.
Déploiements automatiques (webhooks)
Dans l'onglet General du service, activez Auto Deploy. Dokploy configure un webhook sur GitHub/GitLab — chaque push sur la branche configurée déclenche automatiquement un build et un déploiement.
Avec GitHub Actions, vous pouvez déclencher le déploiement uniquement si les tests passent, en appelant l'API Dokploy :
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- name: Trigger Dokploy deployment
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.DOKPLOY_TOKEN }}" \
-H "Content-Type: application/json" \
https://dokploy.monserveur.com/api/deploy/APP_IDMonitoring et logs
Le dashboard affiche CPU, mémoire et réseau pour chaque service. Les logs sont accessibles en temps réel depuis Logs — équivalent de docker logs -f mais dans le navigateur.
Pour des alertes, Dokploy supporte les notifications vers Slack, Discord, Telegram ou email sur les événements de déploiement (succès, échec).
Limites à connaître
Dokploy est jeune (v0.x). Quelques points à avoir en tête :
Pas de scaling horizontal natif. Dokploy tourne sur un seul serveur. Pour distribuer la charge sur plusieurs nœuds, il faut Kubernetes ou Docker Swarm — hors scope.
Mises à jour manuelles. Mettre à jour Dokploy se fait via curl | sh à nouveau. Pas de mise à jour automatique.
Sauvegardes. Dokploy ne gère pas les backups des bases de données. Configurez vos propres sauvegardes PostgreSQL/Redis séparément.
Pour un développeur solo ou une petite équipe qui veut l'ergonomie d'un PaaS sans les coûts à l'usage, Dokploy est une solution solide. Installation en 5 minutes, premiers déploiements en 15. Le ticket d'entrée est simplement d'avoir un VPS — ce que beaucoup de développeurs ont déjà pour d'autres usages.
Pour sécuriser votre serveur avant d'exposer Dokploy sur Internet, configurer UFW et l'accès SSH sont les deux premières étapes indispensables.