Pourquoi choisir Dokku pour votre VPS
Là où d'autres PaaS embarquent une interface web et un orchestrateur complet, Dokku reste volontairement minimaliste : il s'agit d'un ensemble de scripts shell qui pilotent Docker. Vous poussez votre code avec git push dokku main, Dokku détecte le langage via les buildpacks Heroku ou un Dockerfile, construit l'image et met l'application en ligne. Tout se gère en ligne de commande, ce qui le rend extrêmement léger et prévisible. C'est le choix idéal pour les développeurs qui veulent un workflow Heroku-like sur un petit VPS, sans payer de surcouche et sans consommer de RAM pour un dashboard. Son écosystème de plugins (PostgreSQL, Redis, Let's Encrypt) couvre l'essentiel des besoins.
Les atouts concrets de Dokku
- Empreinte mémoire minimale : tourne confortablement sur un VPS d'1 Go de RAM.
- Déploiement par
git push, comme sur Heroku, avec détection automatique du langage. - Support natif des buildpacks Heroku et des Dockerfiles, au choix selon votre projet.
- Plugins officiels pour PostgreSQL, MySQL, Redis et MongoDB, gérés en CLI.
- Plugin Let's Encrypt pour le HTTPS automatique et son renouvellement.
- Zero-downtime deploys grâce aux checks de santé avant bascule du conteneur.
Prérequis pour Dokku
Dokku est le PaaS le plus économe en ressources de cette série. Un VPS d'1 Go de RAM et 1 vCPU suffit pour des applications légères, mais prévoyez 2 Go de RAM dès que vos builds utilisent des buildpacks (Node, Ruby, Python compilent en mémoire) ou que vous hébergez une base de données à côté. Comptez 25 Go de disque SSD. Le système recommandé est Ubuntu LTS fraîchement installé, sans Docker préinstallé (le script Dokku l'installe lui-même). Côté DNS : configurez soit un domaine par application, soit un domaine wildcard *.mondomaine.ma pour le déploiement par sous-domaine. Les ports 22 (SSH, indispensable pour le git push), 80 et 443 doivent être ouverts. Ajoutez votre clé SSH publique pour autoriser les déploiements.
Installer Dokku et déployer une application
Installer Dokku via le script officiel
Sur un Ubuntu propre : wget -NP . https://dokku.com/install/v0.34.0/bootstrap.sh puis sudo DOKKU_TAG=v0.34.0 bash bootstrap.sh. Le script installe Docker, Nginx et Dokku en quelques minutes.
Finaliser la configuration et ajouter votre clé SSH
Terminez l'installation en visitant l'IP du VPS dans un navigateur ou via la CLI. Ajoutez votre clé publique avec dokku ssh-keys:add admin < ~/.ssh/id_rsa.pub et définissez le domaine global : dokku domains:set-global mondomaine.ma.
Créer une application et son remote Git
Sur le serveur : dokku apps:create mon-app. Sur votre poste, ajoutez le remote : git remote add dokku dokku@mondomaine.ma:mon-app. Dokku créera automatiquement le sous-domaine mon-app.mondomaine.ma.
Provisionner une base de données
Installez le plugin : dokku plugin:install https://github.com/dokku/dokku-postgres.git. Créez une base avec dokku postgres:create ma-base puis liez-la à l'app : dokku postgres:link ma-base mon-app. La variable DATABASE_URL est injectée automatiquement.
Déployer et activer le HTTPS
Poussez votre code avec git push dokku main : Dokku build et déploie. Installez ensuite le plugin Let's Encrypt et lancez dokku letsencrypt:enable mon-app pour obtenir un certificat SSL automatique et configurer son renouvellement.
Activez le renouvellement automatique des certificats avec dokku letsencrypt:cron-job --add, sinon vos certificats expireront au bout de 90 jours. Pour des déploiements sans coupure, configurez un fichier CHECKS à la racine de votre projet : Dokku vérifie que la nouvelle version répond avant de basculer le trafic, garantissant un zero-downtime deploy. Sur un VPS à faible RAM, ajoutez 2 Go de swap pour éviter que les builds buildpack ne soient tués par le système (OOM killer).