Dokku - Mini-PaaS für eigene App-Deployments

Dokku - Mini-PaaS für eigene App-Deployments

Dokku ist ein selbstgehostetes Mini-PaaS, das Apps per git push deployt und dabei Buildpacks, Plugins und automatisches SSL unterstützt.

Was ist Dokku?

Dokku implementiert das Heroku-Deployment-Modell auf dem eigenen Server: Ein git push dokku main löst automatisch den Build-Prozess aus, startet den Container und stellt die App unter einer konfigurierten Domain bereit. Dokku unterstützt Heroku-Buildpacks für Node.js, Python, Ruby, PHP und weitere Sprachen sowie eigene Dockerfiles. Plugins erweitern die Plattform um Datenbanken (PostgreSQL, MySQL, Redis), Let's-Encrypt-SSL und viele weitere Dienste. Dokku eignet sich hervorragend für Einzelentwickler und kleine Teams, die Heroku-ähnlichen Komfort ohne die Kosten wollen.

Voraussetzungen

  • Docker 20.10+ oder Docker Compose
  • Ubuntu 20.04+ oder Debian 11+ als Host-OS
  • Öffentliche IP und Domain für App-Deployments

Compose-Beispiel

services:
  dokku:
    image: dokku/dokku:latest
    container_name: dokku
    restart: unless-stopped
    ports:
      - "22:22"
      - "80:80"
      - "443:443"
    volumes:
      - /var/lib/dokku:/mnt/dokku
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DOKKU_HOSTNAME=apps.example.com
      - DOKKU_HOST_ROOT=/var/lib/dokku/home/dokku

Hinweise

  • Für den Produktiveinsatz empfiehlt Dokku die direkte Installation auf dem Host via apt statt Docker-in-Docker, da der Docker-Socket-Zugriff komplex ist.
  • Apps werden per dokku apps:create <name> erstellt und anschließend per git push dokku main deployt.
  • Das Let's-Encrypt-Plugin (dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git) richtet HTTPS vollautomatisch ein.
  • Datenbank-Plugins (z. B. dokku-postgres) erstellen eigene Container und verknüpfen sie automatisch mit der App.