Files
wiki/Catalogue-Self-Hosted/apps/app-dokku.md
T
2026-06-09 18:40:21 +02:00

5.3 KiB
Raw Blame History


title: Dokku created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, deployment, paas, docker, heroku-alternative] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/dokku/dokku]

🚀 Dokku

Le mini-Heroku qui a fait ses preuves — PaaS self-hosted en ligne de commande, basé sur Docker, mature depuis 2013, idéal pour les développeurs puristes du terminal.

📋 Informations Générales

Champ Valeur
Site web dokku.com
GitHub dokku/dokku
License MIT
Langage Shell / Ruby
Étoiles GitHub 31 919
Catégorie cat-deployment

📝 Description

Dokku est le doyen des PaaS self-hosted — né en 2013, c'est un mini-Heroku en conteneurs Docker pilotable en CLI. Sa philosophie : git push dokku@server:app-name, et l'app est buildée, déployée, exposée avec HTTPS automatique. Pas d'UI web pour la gestion des apps — tout passe par SSH + commandes dokku. C'est volontaire : Dokku s'adresse aux développeurs à l'aise avec le terminal, pas aux no-code enthusiasts.

Sous le capot, Dokku orchestre Docker + Nginx + Let's Encrypt + un système de plugins très riche. Le buildpack system reprend celui d'Heroku : Herokuish détecte le langage, installe les dépendances, build l'app. Les plugins officiels couvrent PostgreSQL, MySQL, Redis, Elasticsearch, MariaDB, Lets Encrypt, backup, cron, etc. La communauté fournit des centaines de plugins tiers.

Maturité : Dokku est utilisé en production par des milliers d'équipes (du solo dev aux startups série A). L'API et les conventions sont stables depuis des années. Pour un projet de plus de 8 ans, la documentation est excellente, les breaking changes sont rares, et le mode debug est précis.

Public cible : développeurs backend qui veulent le workflow Heroku sans payer Heroku, équipes petites qui déploient 5-20 services, sysadmins qui préfèrent SSH à une UI web. Pour une UI web moderne, voir app-coolify / app-dokploy ; pour un app store, app-runtipi ; pour du Swarm, app-caprover.

🚀 Installation

Installation manuelle (recommandé — un script)

# Sur Debian/Ubuntu (un seul binaire + dépendances)
wget -NP . https://dokku.com/bootstrap.sh
sudo DOKKU_TAG=v0.34.5 bash bootstrap.sh
# Après install : configurer l'utilisateur dokku, le virtualhost, le domaine
echo "export DOKKU_DOMAIN=dokku.example.com" | sudo tee -a /etc/profile.d/dokku.sh

Via Docker (mode "test" ou pour évaluer)

# docker-compose.yml — usage éphémère uniquement
services:
  dokku:
    image: dokku/dokku:latest
    container_name: dokku
    privileged: true
    ports:
      - "22:22"     # SSH (git push)
      - "80:80"
      - "443:443"
    volumes:
      - /var/lib/dokku:/var/lib/dokku

⚠️ Le mode Docker est limité (pas de systemd, plugins restreints). Pour de la prod, installez Dokku nativement sur l'hôte (Debian/Ubuntu 22.04+).

⚙️ Configuration

  1. Installer les plugins essentiels : sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
  2. Créer une app : dokku apps:create mon-app
  3. Ajouter un domaine : dokku domains:add mon-app mon-app.example.com
  4. Créer une base : dokku postgres:create mon-app-db && dokku postgres:link mon-app-db mon-app
  5. Configurer les variables d'env : dokku config:set mon-app DATABASE_URL=...
  6. Activer HTTPS : dokku letsencrypt:enable mon-app (auto-renouvellement)
  7. Premier déploiement : git remote add dokku dokku@server:mon-app && git push dokku main
  8. Scaling : dokku ps:scale mon-app web=2 worker=1 (multi-processus par dyno)

🔗 Alternatives

  • Coolify — PaaS UI moderne, plus accessible, plus de features intégrées
  • Dokploy — concurrent direct avec UI web, basé sur Traefik
  • CapRover — PaaS sur Swarm avec UI web, plus ancien
  • Heroku — l'original, payant (mais générateur d'idées pour Dokku)
  • Fly.io — PaaS managé multi-région, Dockerfile-only
  • Render — PaaS managé simple, gratuit pour les services statiques
  • Hatchet / OpenFaaD — alternatives FaaS/self-hosted

🔒 Sécurité

  • SSH key auth : Dokku repose sur SSH, désactiver le password auth sur l'hôte
  • Mettre à jour régulièrement : sudo dokku update (mensuel minimum)
  • Limiter l'accès SSH par groupe/AllowUsers (Dokku crée un user dédié)
  • Activer Let's Encrypt sur toutes les apps (HSTS, TLS 1.3)
  • Ne pas exposer le port 22 directement : passer par WireGuard/Cloudflare Tunnel
  • Surveiller les logs : /var/log/dokku/ + plugin dokku-logging-supervisord

📚 Ressources

🔗 Pages Liées