Atlas survey

Dokku: The 95 MB Git-Push PaaS

Dokku is the lightest self-hosted PaaS — 95 MB RAM idle, Heroku-compatible git-push workflow, excellent plugin ecosystem — ideal for single-server homelab but lacks native PR preview support and Docker Compose.

12 sources ~4 min read #200 dokku · paas · self-hosted · homelab · heroku · git-push · docker · debian

Decision: Pick Dokku for the absolute minimum platform footprint on a single Proxmox VM (95 MB idle [5]) when you live in the terminal and can wire GitHub Actions for PR previews. Skip it if you need native preview environments, a web UI, or Docker Compose — Coolify covers all three out of the box.

What Is Dokku

Dokku [2] is an open-source, Docker-powered PaaS — GitHub ⭐ 31.9k (Jun 2026) [1] — that replicates the Heroku git-push workflow on a single Linux server. Started in 2013, v0.38.17 shipped June 3 2026, with 339 total releases and active maintenance (Shell 54%, Go 42%, MIT licence) [1].

Core idea: git push dokku main triggers a build, starts the container, and updates the Nginx reverse proxy — no additional orchestration required [4].

Deployment Workflow

# On the Dokku host — one-time setup per app
dokku apps:create myapp
dokku postgres:create mydb && dokku postgres:link mydb myapp

# On your machine
git remote add dokku dokku@host:myapp
git push dokku main          # build → run → proxy update

Dokku auto-detects the builder [11]:

File in repo root Builder
project.toml Cloud Native Buildpacks (pack-cli)
Dockerfile docker build
Neither Herokuish (Heroku v2a buildpacks)

Apps must expose the PORT environment variable to receive HTTP traffic [4].

System Requirements

Requirement Value
OS Ubuntu 22.04/24.04 or Debian 11+ x64 / arm64 [3]
RAM (minimum) 1 GB (swap acceptable) [3]
Platform idle RAM ~95 MB — no UI overhead [5]
Boot time ~15 s [5]
Install sudo DOKKU_TAG=v0.38.17 bash bootstrap.sh

Debian 11+ is explicitly supported [3] — no workarounds needed for a Proxmox Debian VM.

Plugin Ecosystem

Zero databases are bundled; everything is opt-in [10]. Official plugins are Dokku-maintained; community plugins carry no quality guarantee.

Category Official plugins
Databases PostgreSQL, MySQL, MariaDB, MongoDB, Redis, Memcached, Elasticsearch, ClickHouse, Meilisearch, RabbitMQ
SSL dokku-letsencrypt ⭐ 1.1k — auto-renewing via cron [7]
Schedulers Kubernetes, Nomad (as alternatives to the default Docker scheduler)
Monitoring Grafana / Graphite / Statsd
Auth HTTP Auth, Maintenance mode

Let’s Encrypt setup is three commands [7]:

sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
sudo dokku letsencrypt:cron-job --add
dokku letsencrypt:enable myapp

PR Preview Environments

No native support. Dokku has no built-in concept of per-PR deployments [6]. Two community options exist:

Option A — dokku-pr-action [8]: GitHub Action that creates a Dokku app on PR open, redeploys on push, and destroys on close. URL pattern: {project}-refs-pull-{pr}-merge.domain.com. Known issues: concurrent pushes hit deploy-lock failures; linked services (databases per preview) are not fully implemented.

Option B — dokku-deploy-system [9]: A fuller scaffold with per-PR URLs, auto-SSL, multi-database support, Trivy vulnerability scanning, and automatic cleanup on PR close. Requirements: Ubuntu 22.04, 4+ GB RAM, public domain, GitHub org setup.

Both require SSH credentials wired into GitHub Actions and all management happens via CLI — no UI to view or debug preview environments. Coolify ships this as a first-class UI feature [5].

Limitations

Limitation Impact for homelab / PR previews
Single-server only [6] All apps + previews share one VM; no horizontal scale
No web UI [12] SSH required for all management; steep ops curve for new team members
No Docker Compose [5] Multi-container apps decomposed into separate linked Dokku services
No RBAC [6] Deployers share root-equivalent SSH access
No native PR previews [8] Custom GitHub Actions glue required; database-per-preview is fragile
Community plugin quality [6] Some plugins unmaintained on recent Dokku versions

Homelab / Proxmox VM Verdict

Dokku is the right choice when:

  • You want a 1 GB RAM VM to comfortably host 3–5 small apps [3]
  • You’re CLI-native and comfortable with SSH-based workflows [12]
  • You want zero platform cruft — 95 MB idle leaves maximum headroom for app containers [5]
  • PR previews are one-repo, one-language and you can absorb the GitHub Actions boilerplate [8]

Skip Dokku and reach for Coolify when:

  • Team members expect a web dashboard for deploy status and logs
  • You need native PR preview environments without custom glue
  • Apps use Docker Compose (multi-container stacks) [5]
  • You want per-preview isolated databases without scripting [9]

Citations · 12 sources

Click the Citations tab to load…