OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Dokku

Docker-powered mini-Heroku: git push deploys, buildpacks and plugins on one server

Open source alternative to

Visit DokkuGitHubDocumentation

Main features

  • Deploys with git push, from a Docker image or from an archive
  • Heroku buildpacks, Cloud Native Buildpacks or Dockerfile builds
  • Procfile process types scaled individually
  • nginx proxy by default, or Caddy, HAProxy, OpenResty or Traefik
  • Official plugins for PostgreSQL, MySQL, Redis and other datastores
  • Let's Encrypt certificates through an official plugin
  • Scheduled cron tasks per app
  • Optional K3s scheduler for multi-node clusters
  • Plugin system for extending every part of the platform

What Dokku does

Dokku describes itself as a Docker-powered mini-Heroku, and that is an accurate summary. You create an app on the server, add a Git remote, and git push to it. Dokku detects how to build the code, produces a Docker image, starts containers for each process type in the Procfile and routes web traffic to them through nginx. Developers who learned on Heroku will recognize the workflow: environment variables are set with config:set, processes are scaled with ps:scale, and databases are attached as linked services that inject a DATABASE_URL.

Builds use Heroku-compatible buildpacks through herokuish, Cloud Native Buildpacks or a Dockerfile in the repository; Dokku picks a builder by detection unless you set one. You can also deploy a prebuilt Docker image or a source archive instead of pushing code.

Plugins and services

Dokku is built out of plugins, and the maintainers publish official plugins for datastores such as PostgreSQL, MySQL, Redis, ClickHouse and Elasticsearch, plus one for Let’s Encrypt certificates. A fresh install has no databases; you install the plugin you need, create a service and link it to an app. The proxy can be switched from nginx to Caddy, HAProxy, OpenResty or Traefik, and cron tasks defined by an app are run on a schedule.

The plugin approach keeps the core small but means more of the setup happens on the command line, one command at a time. There is no graphical interface in the open source project.

Self-hosting Dokku

Dokku is installed with a bootstrap script that adds its Debian packages; an Arch package is also available. It needs a fresh Ubuntu 22.04, 24.04 or 26.04 or Debian 11+ server on amd64 or arm64. With the default Docker scheduler, 1 GB of memory (or swap) is enough; the K3s scheduler needs 2 GB on every node. A wildcard DNS record pointing at the server gives each app its own subdomain.

By default everything runs on that one server. For more capacity, the K3s scheduler lets Dokku set up and manage a lightweight Kubernetes cluster across several nodes, with autoscaling settings based on KEDA, while you keep the same git push workflow.

Hosted version

There is no hosted Dokku service. The maintainers sell Dokku Pro, a separately installed add-on with a web interface, a JSON API and git push over authenticated HTTPS. It checks its license key over the internet at startup, so offline servers need a special license.

Limitations

Dokku is driven over SSH, which suits developers but not teams that want a dashboard. It has no built-in pull-request preview environments, and its single-server default means a server failure takes every app down unless you move to the K3s scheduler. Only Debian and Ubuntu are supported, and backups and server maintenance are your job.

Who it suits

Dokku suits developers who liked Heroku’s workflow and want it on a small virtual server they control, especially for side projects and small production apps. If you prefer a web interface and preview deployments, look at Coolify or Dokploy; for an even smaller footprint without Docker, see Piku.

License details

MIT. Dokku Pro, a separate paid product, adds a web UI and JSON API; it is not in the repository.

Technical details

Self-hosting needs

  • Docker

Built with

  • Shell
  • Go

GitHub topics

  • buildpack
  • containers
  • devops
  • docker
  • dokku
  • heroku
  • kubernetes
  • nomad
  • paas
  • self-hosted
  • selfhosted

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.