Dokku
A Heroku-like PaaS on one server of your own: git push to it, and Dokku builds the app with buildpacks or a Dockerfile and runs it in Docker containers behind nginx.
- What it is
- Platform as a service (PaaS)
- Type
- Open source
- Made by
- Dokku maintainers
- License
- MIT
- Facts checked
- 12 October 2026
What it is
Dokku installs on a single Ubuntu or Debian machine with at least 1 GB of memory. You create an app on the host (dokku apps:create), add a Git remote such as dokku@dokku.me:ruby-getting-started and git push to it over SSH. A builder turns the code into an image: by default herokuish, which runs Heroku’s classic buildpacks; pack, which runs Cloud Native Buildpacks; or dockerfile when the repository only has a Dockerfile. Prebuilt Docker images work too. The default scheduler then starts the processes from your Procfile as containers on the local Docker daemon, nginx routes each app’s domain to its web containers, and Dokku manages cron tasks and background processes as well.
Almost everything is a plugin: Dokku itself is a collection of plugins run by plugn. Datastores aren’t built in. Official plugins such as dokku-postgres create a database container, and dokku postgres:link sets DATABASE_URL on the app, the same contract as a Heroku add-on. Deploys are zero-downtime by default: Dokku waits 10 seconds after starting each new container (or runs your checks), switches traffic, then sends SIGTERM to the old containers. For more than one server, the K3s scheduler (since 0.33.0) runs apps on a Dokku-managed K3s cluster, with KEDA for autoscaling.
Why teams pick it
- A Heroku-style workflow (
git push,Procfile, buildpacks, config as env vars) on a single VM you already pay for - Three builders and plain Docker images, so the same host runs buildpack apps and Dockerfile apps side by side
- Official plugins for common datastores, plus community plugins, all wired up through environment variables
- MIT-licensed and actively released: v0.38.31 shipped in September 2026
Watch out for
- By default everything, apps and databases included, runs on one host, so that host is a single point of failure and its OS, Docker and backups are yours to run
- Multi-server setups mean the K3s scheduler, which needs at least 2 GB of memory on every node and brings Kubernetes with it
- Apps must listen on the port in
$PORT, or they won’t answer web requests - Still versioned 0.x after more than 13 years, so read the upgrade notes before each release
Alternatives
What all platform as a service (paas) have in common →How it fits with other technologies
Deploy a Rails app with a Postgres database · bash
# on the Dokku host
dokku apps:create ruby-getting-started
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create railsdatabase
dokku postgres:link railsdatabase ruby-getting-started # sets DATABASE_URL
# on your machine
git remote add dokku dokku@dokku.me:ruby-getting-started
git push dokku main # herokuish build, then a zero-downtime deploy
# back on the host: two web containers behind nginx
dokku ps:scale ruby-getting-started web=2See it in a real stack
No architecture uses Dokku yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2013–2026
Jeff Lindsay made the first Dokku commit on June 8, 2013. The README called it a “Docker powered mini-Heroku” and “the smallest PaaS implementation you’ve ever seen”. It glued together three small projects: Docker to run containers, Buildstep to build apps with Heroku buildpacks (Node.js and Ruby at first), and gitreceive to accept a git push.
The point was size and speed. The first README said installing took around 5 minutes, “certainly better than the several hours it takes to bootstrap Cloud Foundry”. The first outside pull request, a day later, prepared it for Java apps. Over the following years Dokku grew a plugin system, official datastore plugins and a choice of builders, including Cloud Native Buildpacks.
Dokku stayed a single-server tool by default, but builders (0.24.0, 2021) and schedulers (0.26.0, 2021) became pluggable, and in 2024 version 0.33.0 added a K3s scheduler that spreads apps over a cluster of servers while keeping the same git push workflow.
Why it’s built this way
- Assemble existing tools instead of building a platform
- The first version was Docker, a buildpack runner and a Git receiver wired together by a bootstrap script, and it installed in about 5 minutes instead of the hours a full platform such as Cloud Foundry took.
- Heroku compatibility
- Using Heroku’s buildpacks and
Procfilemeant apps written for Heroku, such as Heroku’s own getting-started apps, deploy to Dokku unchanged. - Everything as a plugin
- Dokku’s own features are plugins run by
plugn, so datastores, builders and schedulers can be added or swapped without changing the core.
Timeline
- 2013
Jeff Lindsay makes the first commit on June 8: Docker, Buildstep and gitreceive
- 2021
Pluggable builders arrive in 0.24.0 (March) and schedulers in 0.26.0 (October)
- 2024
0.33.0 adds the K3s scheduler for multi-server clusters (January)
- 2026
v0.38.31 is released in September
- dokku/dokku: README at the June 8, 2013 commit
- dokku/dokku: initial commit by Jeff Lindsay (Jun 8, 2013)
- dokku/dokku pull request #1: changes to allow Java buildpacks (Jun 9, 2013)
- Dokku release v0.24.0 (Mar 1, 2021)
- Dokku release v0.26.0 (Oct 26, 2021)
- Dokku release v0.33.0 (Jan 23, 2024)
- Dokku docs: Plugins (built out of plugins, plugn)
Sources12 · facts checked 12 October 2026
- Dokku docs: Getting Started (single server, requirements, install)
- Dokku docs: Deploying an Application (git push, postgres plugin, PORT)
- Dokku docs: Builder Management (herokuish, pack, dockerfile, lambda)
- Dokku docs: Cloud Native Buildpacks builder
- Dokku docs: Herokuish Buildpacks
- Dokku docs: Scheduler Management (docker-local default)
- Dokku docs: K3s Scheduler (multi-server, KEDA autoscaling)
- Dokku docs: Process Management (ps:scale)
- Dokku docs: Zero Downtime Deploys (10-second default wait, SIGTERM)
- Dokku docs: Plugins
- dokku/dokku README (MIT License)
- Dokku release v0.38.31 (Sep 2026)