Dokploy
Open-source deployment platform for apps and databases
Dokploy is a self-hostable platform-as-a-service that deploys applications and databases using Docker and Traefik. It offers a clean UI with previews, monitoring, and multi-server support.
Key features
- Docker-based app deploys
- Traefik routing built in
- Multi-server management
- Database backups
Pros & cons
Strengths
- Clean intuitive UI
- Docker Compose support
- Multi-server management
Trade-offs
- Relatively young project
- Wants a dedicated server
Dokploy replaces
Last reviewed Aug 26, 2026 · 769 words
curl -sSL https://dokploy.com/install.sh | sh turns a blank Ubuntu VPS into something that behaves like Heroku in about 90 seconds, and the thing to know before you run it is what it takes over: it initialises Docker Swarm on the host, starts Traefik on ports 80 and 443, and puts its own UI on port 3000. Run it on a machine that already has services on those ports and the install fails or, worse, half-succeeds. Run it on a fresh 2 GB VPS and you get git-push deployments, preview environments per pull request, managed Postgres and Redis, and scheduled backups to S3, for the cost of the VPS. The project is young (first release 2024, 36,866 stars, Apache-2.0) and it shows in the occasional rough edge, but the core loop is solid enough that I moved two side projects onto it.
Deploys accept whatever you already have
Point a project at a Git repository (GitHub, GitLab, Gitea and Bitbucket are wired in; any URL works with a deploy key) and Dokploy picks a build strategy: Nixpacks or Buildpacks if there is no Dockerfile, your Dockerfile if there is, or a full Docker Compose stack if you have one. The Compose path is the reason it beats older PaaS tools for self-hosters, because every app in this directory ships a compose file and Dokploy will run it as written, add a domain, and let Traefik handle the certificate. Environment variables live in the UI per service, with a shared project-level set for values like a database URL.
Swarm is the foundation, and that cuts both ways
Because Dokploy runs services as Swarm stacks, you get rolling updates, health-check gating, and zero-downtime deploys without configuring any of them. You also inherit Swarm's quirks: published ports behave differently from plain Docker, docker compose commands on the host will not see Dokploy's services, and images with tricky networking (VPN containers, anything using network_mode: host) need care. Adding a second server is a matter of SSHing from the UI and letting Dokploy install its agent; workloads are then placed per server rather than scheduled automatically, which is simpler than Kubernetes and less magical than it sounds.
Databases are a first-class object
Postgres, MySQL, MariaDB, MongoDB and Redis can each be created from the UI with a click, get an internal hostname your apps reach by name, and have backups scheduled on a cron to any S3-compatible bucket. Restores are also in the UI. That is the feature that separates a PaaS from a container manager, and it is the one I would test first: create a Postgres, schedule a backup to a bucket, then restore it into a second database and check the row count. It works, but a restore you have watched succeed is worth more than a feature list.
Dokploy vs Coolify vs CapRover
Coolify is the older, larger rival with more integrations and a bigger surface; Dokploy's UI is the cleaner of the two and its Compose handling has been the more predictable in my use. CapRover is the veteran and also Swarm-based, but its deploy format is its own, so it is the odd one out for compose-first people. If you want the widest set of one-click templates, Coolify; if you want the least surprising path from a compose file to a domain with a certificate, Dokploy. Both belong in the dev platforms category rather than the general dashboard tier, because both assume the box is theirs.
The dedicated-server rule is not optional
Dokploy's own documentation says to give it a dedicated server, and after watching it fight an existing Traefik for the same ports I agree. It also wants the UI on port 3000 to be reachable only by you: put it behind a VPN or at minimum enable the built-in 2FA before exposing it, because whoever controls that UI controls every app on the host.
What I'd do
One fresh VPS with 2 to 4 GB of RAM, the install script, 2FA on the admin user, UI reachable over Tailscale only. Deploy your first app from its existing compose file, attach a domain, and watch Traefik issue the certificate. Create your databases inside Dokploy rather than in your compose files so backups are handled. If you need Dokploy to coexist with an established homelab stack on the same machine, stop and use a second machine; that is the one configuration it is not designed for.
Compare Dokploy
5 head-to-head comparisons.
Similar self-hosting platforms (paas) apps
Supabase
Self-Hosting Platforms (PaaS)Open-source Firebase alternative
Replaces Firebase
Coolify
Self-Hosting Platforms (PaaS)Self-hosted platform-as-a-service alternative to Heroku
Replaces Heroku, Netlify
PocketBase
Self-Hosting Platforms (PaaS)Open-source backend in a single file
Replaces Firebase
Appwrite
Self-Hosting Platforms (PaaS)Open-source backend platform for building applications
Replaces Firebase, Supabase
Directus
Self-Hosting Platforms (PaaS)Instant REST and GraphQL API for any SQL database
Replaces Contentful, Firebase
Dokku
Self-Hosting Platforms (PaaS)Smallest open-source PaaS implementation you can run
Replaces Heroku