unsubbed.co

Dokku

A docker-powered PaaS that helps you build and manage the lifecycle of applications. The smallest PaaS implementation you've ever seen.

Self-hosted Heroku alternative, honestly reviewed. No marketing fluff — just what you actually get when you swap the managed platform for a Linux box.

TL;DR

  • What it is: Open-source (MIT) Platform-as-a-Service built on Docker — git push to deploy, same as Heroku, except the server is yours [1][2].
  • Who it’s for: Developers and technical founders who fled Heroku after its 2022 pricing changes, or anyone running 3–20 small apps who doesn’t want to pay per-dyno for each one [2][3].
  • Cost savings: A standard Heroku setup (one web dyno + Postgres) runs $25–59/month per app. Dokku on a $10 VPS hosts 20 apps and six databases simultaneously — one real user reports exactly that configuration [3].
  • Key strength: The deployment model is nearly identical to Heroku. If your team already knows git push heroku main, they’ll be productive in an hour [2][3].
  • Key weakness: No official web UI in the free version. Everything is CLI. Server maintenance — updates, security patches, backups — is your problem [1][3].

What is Dokku

Dokku describes itself as “Docker powered mini-Heroku. The smallest PaaS implementation you’ve ever seen.” That’s the entire pitch and it’s accurate [README].

The mechanics: you push code to a git remote pointed at your server. Dokku intercepts the push, detects your language via Heroku-compatible buildpacks (or reads your Dockerfile), builds a container, and starts routing traffic to it through nginx. SSL certificates come from Let’s Encrypt. Environment variables, domain assignment, and database connections are managed via a CLI. The experience is close enough to Heroku that migrations are often described as straightforward [2][4].

The project sits at 31,917 GitHub stars and is MIT-licensed — meaning you can run it, fork it, and build on it without a licensing conversation [merged profile]. It’s maintained primarily by one developer, Jose Gonzalez, with an active community around it [3].

What Dokku is not: a Kubernetes alternative, a multi-node orchestrator, or a tool for non-technical users. It’s a single-server PaaS that makes that single server genuinely useful for running many small apps.


Why People Choose It

The Heroku pricing change in 2022 — ending the free tier and raising prices across the board — sent a large chunk of the indie developer community looking for alternatives. Dokku was the most mature answer, and it captured most of that migration [2][1].

Versus managed Heroku. The comparison Dokku has owned for over a decade. Heroku’s comfort comes at a real cost: Basic dynos at $7/month per app, Standard-1X at $25/month, managed Postgres starting at $9/month. Stack a few apps and you’re at $100+/month quickly. Dokku on a single VPS consolidates all of that into one server bill. One real-world user in the review corpus runs 20 apps and 6 databases on a 4GB RAM VPS costing roughly $40/year [3]. That’s math you feel every month.

Versus Coolify and CapRover. These are the alternatives most often mentioned alongside Dokku. Coolify has a web dashboard and a more modern UI, which makes it more accessible to non-developers. CapRover leans harder into Docker Swarm and exposes more container-level controls. Dokku wins in simplicity and in the git-push workflow that engineers already know — it enforces 12-factor app design by making it the path of least resistance [3]. The tradeoff: Dokku has no GUI without paying for Dokku Pro, and Coolify is free to self-host with a full dashboard.

Versus Railway, Render, Fly.io. These are managed PaaS services with more polish and zero server ops. They’re the right choice if you don’t want to touch a terminal. But they come with usage-based pricing that starts cheap and scales uncomfortably. Dokku is for people who are willing to SSH into a box in exchange for a flat, predictable server bill [1][2].

On infrastructure ownership. Multiple reviewers emphasize this: with Dokku, you own the infrastructure. Your data doesn’t flow through anyone else’s platform. Your deployment isn’t subject to another company’s pricing decisions. One review frames it as the central appeal: “Complete infrastructure ownership” as a first-class benefit, not just a side effect of self-hosting [2].


Features

Based on the README and article descriptions:

Core deployment:

  • Git push deployment — git push dokku main builds and deploys [2][3]
  • Buildpack auto-detection (Heroku-compatible) for Python, Node, Ruby, Go, static sites, and more [3]
  • Dockerfile support for custom environments [3]
  • Nix-based deployments (less common, documented) [3]
  • Automatic container management via Docker [1][2]
  • nginx-based routing with automatic virtual host configuration [3]

Networking and SSL:

  • Automatic SSL via Let’s Encrypt integration [1][2]
  • Wildcard subdomain support (deploy myapp.yourdomain.com automatically) [2]
  • Custom domain assignment per app via CLI [2]

Plugin architecture:

  • Extensible via community plugins — databases, queues, monitoring, backup tools [1][3]
  • Plugins available for PostgreSQL, MySQL, MariaDB, Redis, MongoDB, and more [3]
  • Cron task management for background jobs [3]
  • One user reports running 3 Redis, 2 Postgres, and 1 MariaDB instance on a single box alongside 20 apps [3]

Management:

  • Full CLI for all operations — deployable from local machine or via SSH [3]
  • Environment variable management via CLI [2]
  • Application scaling (documented; most users run single-node) [2][3]
  • Persistent storage support for stateful apps [2]
  • Autoscaling support exists but is described as non-trivial to configure [3]

What requires Dokku Pro (paid):

  • Official web dashboard [3]

Pricing: SaaS vs Self-Hosted Math

Dokku software: $0 (MIT license) [merged profile].

What you pay for: a Linux VPS.

Heroku for comparison (current pricing):

  • Eco dynos: $5/month per dyno, sleep after 30 min of inactivity
  • Basic dynos: $7/month per dyno, no sleeping
  • Standard-1X: $25/month per dyno
  • Managed Postgres Essential-0: $9/month, Essential-1: $50/month
  • A typical production setup — one Standard dyno + Postgres Essential-0 — runs $34/month per app

Dokku self-hosted math:

Say you’re running 5 small apps — a landing page, a side project, a staging environment, an internal tool, and a client prototype. On Heroku Basic with shared Postgres, that’s roughly $5 apps × ($7 dyno + $9 Postgres) = $80/month. On Dokku running on a $10/month VPS with 4GB RAM, all five apps run on the same machine: $10/month.

Over 12 months: Heroku ≈ $960/year. Dokku ≈ $120/year. That’s $840/year back in your pocket, which is roughly what one real user describes as their motivation [2].

The real numbers get more extreme the more apps you have. The user in the review corpus running 20 apps on a $40/year VPS ($3.33/month) is an extreme case — but it’s a documented real-world deployment, not a hypothetical [3].

Dokku Pro: Exists, includes a web dashboard. Pricing not publicly listed — you’d need to check their current offering directly.

VPS providers frequently used with Dokku:

  • Hetzner (Europe, very cheap — ~€4–6/month for 4GB RAM)
  • RackNerd (mentioned in sources — ~$40/year deals)
  • DigitalOcean (has a Dokku Marketplace image for one-click setup) [4]
  • Hostinger (CA$9–36/month depending on tier) [5]
  • AWS, Google Cloud (possible but overkill for most Dokku use cases) [4]

Deployment Reality Check

The setup is more involved than managed PaaS, but it’s not the horror story that some self-hosted tools are. The install path is a bootstrap script on Ubuntu, followed by web-based initial configuration [2]. After that, you’re in CLI territory.

Prerequisites [2][3]:

  • Ubuntu 20.04+ or Debian 9+ (required — Dokku only officially supports these) [3]
  • Minimum 1GB RAM; 2–4GB recommended for multiple apps
  • A domain name with DNS pointed at the server
  • Wildcard DNS if you want automatic subdomains (*.yourdomain.com → server IP)

What the setup looks like [2]:

  1. Provision a fresh Ubuntu VPS
  2. Run the Dokku bootstrap install script
  3. Complete web-based setup (SSH key, domain)
  4. Install database plugins you need
  5. Add a git remote on your local machine pointing to dokku@yourserver:appname
  6. git push dokku main — app is live

SSL: Let’s Encrypt integration is straightforward but requires your domain to be pointing at the server before you request a cert [2].

What can go sideways:

  • Ubuntu/Debian lock-in. If your VPS runs CentOS or another distro, Dokku is not officially supported [3]. This catches people who grab a cheap VPS without checking OS compatibility.
  • Upgrades. Dokku version upgrades can be painful. There’s a dokku-update command that helps, but several sources flag this as a friction point [3].
  • Load balancing is manual. If you need horizontal scaling across multiple servers, you configure it yourself. Dokku’s sweet spot is single-server; multi-node is possible but not turnkey [1][3].
  • No GUI by default. If you or a team member needs a dashboard to manage deployments, you’re either paying for Dokku Pro or using a third-party TUI tool like ctop [3]. For teams where the non-technical founder needs visibility, this is a real limitation.
  • Community support only. No official support team. You’re on Slack, GitHub Issues, and documentation [1][4].

Realistic time to working app [2]:

  • Technical user who’s touched a VPS before: 30–60 minutes from new server to first deployed app
  • Developer who’s never done server setup: 2–4 hours including DNS propagation wait and SSL configuration
  • Non-technical founder without a dev: not the right tool — look at Coolify with its web UI, or a managed PaaS

Pros and Cons

Pros

  • MIT licensed, genuinely free. No commercial license required to run it, host clients on it, or build a service around it [merged profile].
  • Heroku-compatible deployment model. If you’ve used Heroku, you know Dokku. The git push workflow is identical — migrations are low-friction [2][3].
  • Runs many apps on one server. Running 20 apps and 6 databases on a single 4GB VPS is documented and reported as working fine [3]. This is the core value proposition.
  • Rich plugin ecosystem. Databases, monitoring, backup, custom buildpacks — the community has built a lot of it [1][3][4].
  • Enforces 12-factor design. The deployment model naturally pushes you toward stateless apps, environment-variable config, and proper process management — which is good engineering practice [3].
  • Actively maintained. One primary maintainer (Jose Gonzalez) with consistent release history and good documentation [3][4].
  • DigitalOcean Marketplace image makes initial setup even simpler for DO users [4].

Cons

  • No web dashboard (free version). All management is CLI. For teams where visibility and non-technical access matter, this is a hard limitation until you pay for Dokku Pro [3].
  • Ubuntu/Debian only. If your preferred VPS image or corporate standard is different, you’re blocked [3].
  • You own the maintenance. OS updates, security patches, Dokku upgrades, backup strategy — all yours. Managed PaaS handles this for you [1][2].
  • Upgrades can be painful. Dokku version upgrades are flagged across sources as a known friction point, especially for major version bumps [3].
  • Scaling requires manual work. Horizontal scaling and load balancing aren’t turnkey. Single-server is the happy path; multi-node requires real configuration work [1][2].
  • Single maintainer dependency. Most of Dokku’s development runs through one person. Not necessarily a problem — the project is stable and community contributions are active — but worth noting if you’re betting critical infrastructure on it.
  • No official support. Community-dependent troubleshooting only [1][4].

Who Should Use This / Who Shouldn’t

Use Dokku if:

  • You’re a developer or technical founder who used Heroku and wants the same workflow without the bill.
  • You’re running 3–20 small apps that don’t justify separate hosting per app.
  • You’re comfortable with SSH, Linux basics, and reading documentation.
  • Your apps are stateless or have simple statefulness (files, one database) that Dokku’s persistent storage handles.
  • You want MIT-licensed infrastructure you can use for client deployments or embedded in your own service.

Skip it (look at Coolify) if:

  • You want a web dashboard without paying for Dokku Pro.
  • You’re handing server management to someone non-technical.
  • You want a more modern UI and don’t mind a slightly different deployment model.

Skip it (stay on Railway, Render, or Fly.io) if:

  • You have fewer than 2–3 apps and the managed pricing is still under $30/month.
  • You absolutely don’t want server maintenance as a recurring task.
  • Your apps have unpredictable traffic spikes that benefit from managed auto-scaling.

Skip it (look at Kubernetes or Nomad) if:

  • You’re running production services that genuinely need multi-node horizontal scaling, rolling deployments, and container orchestration at scale. Dokku is not that tool.

Alternatives Worth Considering

  • Coolify — The closest direct competitor with a web dashboard included. Also MIT, also self-hosted, builds on Docker. Better for teams that need UI access; slightly less mature git-push workflow [3].
  • CapRover — Similar concept to Dokku, exposes more Docker internals. Good if you think in container terms more than app terms [3].
  • Heroku — The original. Best onboarding experience, largest buildpack ecosystem, no server maintenance. Correct choice if you have few apps and the bill stays manageable.
  • Railway — Managed PaaS with better developer ergonomics than Heroku. Usage-based pricing. Good for apps with low or variable traffic.
  • Render — Managed PaaS, static site hosting to containers. Free tier exists. Pricing scales predictably.
  • Fly.io — Managed, globally distributed, container-native. Better for latency-sensitive apps that need edge deployments.
  • Kamal — Basecamp’s deployment tool (open source). Opinionated, Docker-based, no PaaS layer — just deploying Docker containers via SSH. Less magic, more control than Dokku. Worth considering for Rails/Ruby shops.

For a founder or developer who used Heroku and is looking to cut the bill, the realistic shortlist is Dokku vs Coolify. Pick Dokku if you prefer CLI and a battle-tested git workflow. Pick Coolify if you want a dashboard and more modern tooling.


Bottom Line

Dokku has a very simple value proposition: Heroku-style deployment, MIT license, runs on any Ubuntu VPS you can rent for $5–10/month. The pitch hasn’t changed much in a decade because it didn’t need to — the model works. Running 20 apps and multiple databases on one machine for $40/year is documented reality, not marketing copy [3]. The tradeoffs are equally simple: no GUI, server maintenance is yours, and horizontal scaling requires manual work. If you’re a technical founder who left Heroku when the free tier disappeared, or a developer running half a dozen side projects, Dokku gives you 90% of the Heroku experience at 5% of the cost. If you need a web dashboard without paying extra or want zero server ops, look at Coolify or a managed PaaS. For everyone else, Dokku is stable, actively maintained, and exactly as small and focused as it claims to be.

If the CLI and server setup is the blocker, that’s exactly what upready.dev’s studio deploys for clients. One-time fee, done, you own the infrastructure.


Sources

  1. Jonas Scholz, Sliplane“Dokku: The Self-Hosted Heroku Alternative” (January 27, 2025). https://sliplane.io/blog/dokku-self-hosted-heroku-alternative
  2. Mark, markaicode.com“How to Deploy Applications with Dokku: Self-Hosted PaaS Alternative to Heroku” (May 26, 2025). https://markaicode.com/deploy-applications-dokku-self-hosted-paas-heroku-alternative/
  3. Kevin’s Public Notes“Dokku (Self-hosted Heroku)”. https://tril.kevbot.xyz/share/MTaRxuAORPXW
  4. Back4App Editorial Team“What is Dokku?”. https://blog.back4app.com/what-is-dokku/
  5. Hostinger“Dokku VPS Hosting | Simple and Flexible”. https://www.hostinger.com/ca/vps/dokku-hosting

Primary sources: