What it is
Dokku is a self-hosted Platform-as-a-Service (PaaS) that runs on a single server using Docker containers. It enables developers to deploy applications using familiar workflows like git push, mimicking the simplicity of Heroku while running entirely under the user’s control. Dokku lives in the DevOps and infrastructure automation ecosystem, targeting teams that want PaaS convenience without relying on cloud vendor lock-in.
Dokku solves the problem of deploying and managing applications without investing in complex orchestration systems like Kubernetes or paying for managed PaaS offerings. It abstracts container lifecycle management—building, scaling, networking, and monitoring—using Docker and buildpacks, making it suitable for small to mid-sized deployments where full Kubernetes overhead is unnecessary.
Key capabilities
- Deploys applications via
git push using Heroku-compatible buildpacks or Dockerfiles
- Manages application lifecycle with commands like
dokku apps:create, dokku ps:scale, and dokku logs
- Integrates with Docker for container isolation and portability
- Supports persistent storage via bind mounts or volume plugins
- Provides built-in HTTP routing with Let’s Encrypt SSL certificate management
- Enables plugin extensibility for databases, monitoring, and custom workflows
- Supports multiple deployment strategies including buildpacks, Dockerfile, and container image pushes
Who uses it and how
- Startups and small teams deploy web apps and APIs on a single VPS for cost-effective hosting
- Developers use Dokku to replicate Heroku-like workflows in local development or staging environments
- Organizations migrate legacy apps to containers using Dokku as an intermediate step before full Kubernetes adoption
Getting started
Install via apt on Ubuntu, pacman on Arch Linux, or using the official Docker image dokku/dokku. Deploy apps by adding Dokku as a remote Git repository and pushing code. Hosted options are not provided; Dokku requires self-hosting on a Linux server with Docker installed.
When to use it — and when not to
Dokku replaces paid PaaS platforms like Heroku for users who prefer full control and lower cost but requires manual server maintenance, including updates, backups, and security hardening. It lacks native multi-node orchestration, making it unsuitable for large-scale or high-availability deployments. Use Dokku when you need Heroku-like simplicity on a single server; avoid it if you require auto-scaling, multi-region failover, or enterprise-grade support.
project readme (upstream, from github) — read inline
Dokku

Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.
Sponsors
Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]

Backers
Support us with a monthly donation and help us continue our activities. [Become a backer]

Requirements
A fresh VM running any of the following operating systems:
- Ubuntu 22.04 / 24.04 (amd64/arm64) - Any currently supported release
- Debian 11+ (amd64/arm64)
An SSH keypair that can be used for application deployment. If this exists before installation, it will be automatically imported into dokku.
Otherwise, you will need to import the keypair manually after installation using dokku ssh-keys:add.
Installation
To install the latest stable release, run the following commands as a user who has access to sudo:
wget -NP . https://dokku.com/install/v0.38.27/bootstrap.sh
sudo DOKKU_TAG=v0.38.27 bash bootstrap.sh
You can then proceed to configure your server domain (via dokku domains:set-global) and user access (via dokku ssh-keys:add) to complete the installation.
If you wish for a