In 2013, Jeff Lindsay released Dokku, a free, open-source PaaS that runs on a single Linux server. Thirteen years later, the project still describes itself as "the smallest PaaS implementation you've ever seen”. Dokku gives developers a Heroku-style workflow on infrastructure they own. It supports Git-based deployment, Docker containers, and Heroku-compatible buildpacks, and you can install it on a $5 VPS in about 10 minutes.
Upsun sits in a different category. It is a managed multi-cloud PaaS that runs application infrastructure across AWS, Google Cloud, Azure, OVHcloud, and IBM Cloud. Teams compare the two because Dokku is often where developers land when leaving Heroku, and Upsun is often where they land when Dokku stops being enough.
In short: Dokku if you want a Heroku clone you can run on a VPS, Upsun if you want a managed platform that scales beyond it.
Both platforms run on the same conceptual workflow that Heroku popularised. Each supports Git-push deployment, automatic SSL through Let's Encrypt, and a broad range of languages, including Node.js, PHP, Python, Ruby, and Go.
They both run applications in isolated Docker containers and let you provision databases through the platform rather than configuring them manually. Most importantly for teams migrating from Heroku, both support standard buildpacks, which means most Heroku applications run on either platform with minor modification.
If your only criterion is "Git push to deploy a containerized app on a buildpack workflow," either platform will do the job.
Criterion | Upsun | Dokku |
| Hosting model | Managed multi-cloud PaaS | Self-hosted, single-server by default |
| Multi-cloud support | AWS, GCP, Azure, OVHcloud, IBM Cloud | Any server with SSH access |
| Deployment workflow | Git push, YAML-based config | Git push, CLI-based config, Heroku buildpacks |
| Web interface | Full console, CLI, and API | CLI-first; web UI requires paid Dokku Pro |
| Preview environments | Production clones with live data, under one minute | Manual per environment |
| Scaling | Automatic horizontal and vertical scaling | Single-server by default; multi-server via K3S scheduler |
| Managed services | PostgreSQL, MySQL, Redis, Elasticsearch, OpenSearch, RabbitMQ, Kafka | Plugin-based: PostgreSQL, MySQL, Redis, MongoDB, and more |
| Observability | Built-in metrics, logs, and continuous profiling | None built in |
| Compliance | ISO 27001, SOC 2, PCI DSS, HIPAA, GDPR | None (you inherit responsibility) |
| Pricing model | Flex pricing, resource-level billing | Free software; pay only for VPS |
| Best suited for | Production teams, regulated industries, and multi-cloud needs | Solo developers, single-server workloads, Heroku migrations |
Upsun runs your application on infrastructure managed across five major cloud providers. You choose where to deploy, and the platform handles provisioning, networking, OS-level updates, and security patching. The same YAML configuration deploys identically across AWS, GCP, Azure, OVHcloud, or IBM Cloud.
Dokku runs on a single Linux server you provision yourself. A bootstrap script installs Dokku in about 10 minutes on a clean Ubuntu 22.04 or 24.04 host. Once installed, the kernel, OS updates, security patches, firewall, and backups are yours to manage. Dokku does support multi-server deployments through a K3S scheduler, but that adds operational complexity that runs counter to Dokku's core appeal of staying simple. For most Dokku deployments, "one server" is the right mental model.
The trade-off is direct: Dokku gives you total control of a small footprint. Upsun removes the footprint entirely.
Both platforms deploy on a Git push, but the configuration models differ. Upsun uses a single .upsun/config.yaml file in your repository that defines services, routes, environment variables, and infrastructure for every branch. The config travels with the code, which makes environments reproducible through pull requests.
Dokku configures applications through CLI commands run over SSH, optionally backed by an app.json manifest. There is no web dashboard in the open-source version. Builds run through Herokuish, an implementation of Heroku's buildpack system, with optional support for Cloud Native Buildpacks (experimental), Dockerfile builds, and Docker Compose. This is the single biggest reason Dokku endures: a working Heroku application typically deploys to Dokku unchanged.
Teams that want infrastructure-as-code in a single config file will prefer Upsun. Teams already using Heroku buildpacks and comfortable on the command line will find Dokku faster to set up.
Upsun supports automatic horizontal and vertical scaling. Application containers scale based on traffic and resource utilization, and database read replicas can scale independently. Production environments can be cloned in under a minute, with live data, for testing or feature work.
Dokku does not autoscale. Its default scheduler runs all applications on one host, and you scale by sizing the VPS up rather than out. Multi-server scaling is possible through the K3S scheduler, which deploys applications to a Kubernetes cluster instead of the local environment.
Dokku host, but that path requires Kubernetes expertise and undoes much of Dokku's simplicity. For steady single-server workloads, Dokku is sufficient. For unpredictable traffic, multi-region deployment, or production scale, the manual model becomes a bottleneck.
Upsun provides a managed services catalog including PostgreSQL, MySQL, MariaDB, Redis, Elasticsearch, OpenSearch, RabbitMQ, and Kafka. Services are provisioned through the YAML config and inherit the platform's backup, scaling, and security policies. Observability comes built in: infrastructure metrics, logs, and continuous profiling are part of the platform.
Dokku offers database support through its plugin system. Official plugins exist for PostgreSQL, MySQL, MongoDB, Redis, Memcached, and a handful of others. Each plugin runs the service as a Docker container on the same host as your applications. Backups, updates, and security patches for each plugin are your responsibility. Observability is not included. Teams typically assemble their own stack using Prometheus, Grafana, and an external uptime monitor.
Dokku wins on flexibility and zero licensing cost. Upsun wins on operational simplicity and integrated observability.
Dokku itself is free under the MIT license. A capable VPS from Hetzner, DigitalOcean, or Linode costs $5 to $25 per month, and there are no per-user fees or feature paywalls. A separate paid product, Dokku Pro, adds a web UI and team-based access control, but the core platform remains fully free.
Upsun uses a Flex pricing model that bills at the resource level for CPU, RAM, and storage. Costs scale linearly with actual usage. For a single small project, Upsun is meaningfully more expensive than self-hosted Dokku. For a team needing observability tooling, compliance certifications, automated backups, and multi-region failover, the comparison shifts once you account for the engineering hours and third-party tooling required to match those capabilities on Dokku.
The honest version: Dokku is cheaper if your time is free and your workload fits on one machine. Upsun is cheaper once either of those stops being true.
This is where the comparison ends decisively. Upsun holds ISO 27001, SOC 2, PCI DSS, HIPAA, and GDPR certifications. These are platform-level guarantees that customers inherit when deploying. Security patches, vulnerability management, and infrastructure-level compliance controls are managed by the platform.
Dokku holds no certifications. When you self-host Dokku, you inherit responsibility for your own compliance posture, including OS patching, vulnerability management, audit logging, and access controls. For regulated industries such as healthcare, financial services, or government, Dokku is not a viable production platform without significant additional engineering work. Dokku was built as a lightweight Heroku clone for solo developers and small teams, not as a compliance-ready enterprise platform, and the project has never claimed otherwise.
Dokku is the right tool when simplicity, cost, and Heroku-style workflows matter more than scale and compliance. Pick Dokku if:
Dokku has been a stable, working Heroku alternative for over a decade. For the right team, it is a better fit than any managed PaaS.
Upsun is the right tool when single-server operation stops being viable, or when production demands exceed what a self-hosted tool can deliver. Pick up if:
The line between "Dokku is enough" and "Dokku is holding us back" usually crosses somewhere between hobby project and serious production workload, or the moment compliance enters the picture. That crossover is when Upsun becomes the cheaper option, even when its monthly invoice is larger.
A Dokku-to-Upsun migration moves your configuration, services, and data onto a managed platform. The process involves six main steps:
A production migration typically takes 6 to 9 weeks, with the longest phases being infrastructure documentation, MVP testing, and data validation. For Dokku setups with custom plugins, cron jobs, or extensive Docker-level customization, expect additional time to translate those into Upsun's equivalent constructs.
Is Dokku free?
Yes. Dokku is free and open source under the MIT license, with no feature gates or per-user fees on the core platform. You only pay for the VPS, typically $5 to $25 per month. Dokku Pro is a separate paid product that adds a web UI and team-based access control, but the open-source Dokku runs indefinitely at no software cost.
Can Dokku scale to multiple servers?
Not by default. Dokku's default scheduler runs all applications on a single host. Multi-server deployments are possible through the K3S scheduler, which runs applications on a Kubernetes cluster, but configuring K3S requires Kubernetes expertise and undoes most of Dokku's simplicity. For teams that need autoscaling or multi-region deployment without having to operate Kubernetes, a managed PaaS like Upsun is a better fit.
Does Dokku support SOC 2 or HIPAA compliance?
No. Dokku does not hold SOC 2, HIPAA, PCI DSS, or ISO 27001 certifications. When you self-host Dokku, you inherit responsibility for compliance, including OS patching, audit logging, access controls, and vulnerability management. Teams in regulated industries typically need a managed platform with platform-level certifications, such as Upsun.
Does Upsun support multi-cloud deployment?
Yes. Upsun deploys across AWS, Google Cloud Platform, Microsoft Azure, OVHcloud, and IBM Cloud through identical workflows defined in a single .upsun/config.yaml file. Teams can meet data residency, compliance, and latency requirements without rewriting deployment pipelines for each provider. Dokku, by contrast, runs on a single server you provision yourself and does not abstract multi-cloud deployment.
What is Upsun's pricing model?
Upsun uses a Flex pricing model that bills at the resource level for CPU, RAM, and storage. Costs scale linearly with what you provision, rather than through fixed tiers or surprise bandwidth charges. This is structurally different from Dokku, which is free software billed only through the VPS you run it on. Upsun is more expensive on a monthly invoice but typically cheaper in total cost when engineering hours, observability, and compliance are included.
Can Dokku deploy Heroku applications without changes?
Mostly. Dokku uses Herokuish, an implementation of Heroku's buildpack system, so most Heroku-style applications deploy to Dokku with minimal modification. Common languages, including Node.js, Python, Ruby, PHP, and Go, work out of the box. Applications that depend on Heroku-specific add-ons or proprietary features may need additional configuration. This buildpack compatibility is the single largest reason teams choose Dokku as a Heroku replacement.
Is Dokku cheaper than Upsun?
On the monthly invoice, yes. A self-hosted Dokku instance on a $10 VPS is significantly cheaper than an equivalent Upsun project. On the total cost of ownership, the comparison narrows once engineering hours, observability tools, backup management, and compliance work enter the calculation. For single-server workloads, Dokku is almost always cheaper. For production workloads with operational and compliance requirements, Upsun is often cheaper overall.