If you’ve shipped on Vercel, Heroku, or Railway and you’re tired of the platform tax - or you want your code running on hardware you actually own - the standard answer now is a self-hosted PaaS on a VPS. Two open-source projects own that conversation: Coolify and Dokploy. Both run on your own server, both accept a git repo and hand you back a deployed, HTTPS-backed app, and both are free to self-host. But they are built on two different assumptions about what a “server” is, and that difference - not a features checklist - decides which one you should run. If you’ve been weighing “dokploy vs coolify”, here’s the one-sentence answer: Coolify when your mental model is a fleet of machines, Dokploy when it’s a single cluster.
We’re standing both up on paid VPS accounts to measure how they behave under real load, and we’ll publish those figures here once the runs are meaningful. Until then this page sticks to what is documented and verifiable: architecture, install, build system, databases, scaling model, pricing, and license. We don’t invent benchmark numbers.
What each one is
Coolify describes itself as an open-source, self-hostable alternative to Vercel, Heroku, and Netlify. You install it on a server, connect more servers over SSH, and deploy apps, databases, and services. It builds with Nixpacks, Railpack, Dockerfile, Docker Compose, or a prebuilt image, integrates GitHub, GitLab, Bitbucket, Gitea, and even your self-hosted git, and ships a catalog of 300+ one-click services.[1] It’s licensed Apache-2.0 and is “free forever” in the self-hosted edition.[1][5] Latest stable as of 7 November 2026: v4.6.0 (published 2 November 2026; breaking change: API/MCP deletes now need the new delete token ability).[6] On 21 October Coolify shipped security fix releases for every v4 line (v4.4.7, v4.3.24, v4.2.1, v4.1.3, v4.0.1) for critical CVEs in bundled dependencies, including PHP2Shell (CVE-2026-109618, CVE-2026-109619) - if you run an older v4 build, update now.[16]
Dokploy is a free, self-hostable Platform as a Service built around Docker and Docker Swarm, with Traefik handling routing and TLS.[7] You deploy applications, Docker Compose stacks, and managed databases across one or many servers. Builds run through Nixpacks, Heroku Buildpacks, or a custom Dockerfile, with native Docker Compose support and Swarm-based scaling.[7] Latest stable as of 7 November 2026: v0.31.0 (published 5 November 2026; adds moving services between servers).[13]
On paper they’re close. The reason to pick one over the other has almost nothing to do with “can it deploy my app” - both can. It comes down to how each treats a multi-server setup.
The architecture difference is the whole argument
This is the section that decides your choice, so it’s worth getting right.
Coolify runs one proxy per server, and treats every server as an independent machine. On each connected server Coolify runs a coolify-proxy container that accepts incoming HTTP/HTTPS, matches the request to a domain, and forwards it to the right resource container over a Docker network.[3] Traefik is the default proxy; you can switch to Caddy, or select Custom (None) and run your own proxy entirely.[3] Critically, the proxy on a secondary server serves traffic directly - it does not go through the main Coolify server. You point each app’s DNS at the server where that app is deployed.[15]
Multi-server in Coolify means deploying the same app image to a primary server plus one or more standalone servers. Each gets its own running instance, but Coolify does not distribute traffic between them by itself - you put a cloud load balancer in front and keep the instances independent.[4] Coolify explicitly warns that attaching servers “gives you multiple application instances, but it does not create a complete highly available system”; you still own the load balancer, shared state, and health checks.[4] And for running the same app across several boxes in the old-style cluster, the docs mark Docker Swarm as deprecated in Coolify v4.[4]
Dokploy is Swarm-first. Instead of a bunch of independent servers, Dokploy centers on a Docker Swarm. Its docs lay out three deployment options: a single Dokploy Server (everything on one box), Remote Servers (independent machines over SSH, each with its own Docker and Traefik, not a cluster), and Swarm Nodes (Cluster) - extra servers joined to the Dokploy manager’s Swarm, where Traefik on the manager load-balances traffic to the nodes running your app replicas.[9] Horizontal scaling means adding nodes to the Swarm; it requires a Docker registry for image sharing and same-architecture servers.[10]
The practical difference is this: with Coolify, horizontal scale is a fleet of identical standalone instances behind your own load balancer, and each server is self-contained. With Dokploy, horizontal scale is a cluster - replicas of the same app spread across nodes, with Traefik doing the balancing for you, and Docker Swarm handling rolling updates and rescheduling. If you’re comfortable driving a load balancer yourself, Coolify’s model is simpler and more portable. If you want the orchestrator to manage the distribution, Dokploy’s Swarm model is closer to a “real” PaaS out of the box.
This also shows up in zero-downtime deploys. Dokploy’s default Swarm behavior stops the running container and starts the new one, which can produce a Bad Gateway during the switch; you configure a health check under Swarm settings to get true zero-downtime updates.[11] It’s one setting, but it’s a setting you need to know about.
Installation and day one
Both are a single curl pipe.
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Coolify’s automated installer runs as root, expects port 8000 free, and lands you at http://<server-ip>:8000. Its docs give explicit minimums for the box: 2 CPU cores, 2 GB RAM, 10 GB free disk, amd64 or arm64.[2] After install it tells you to back up /data/coolify/source/.env - that file holds the APP_KEY used to encrypt database values, and you need it to restore from backup.[2] It works on Ubuntu LTS, Debian, CentOS, Fedora, AlmaLinux, Rocky, openSUSE, Arch, Alpine, and 64-bit Raspberry Pi OS.[2]
curl -sSL https://dokploy.com/install.sh | sh
Dokploy’s installer requires Docker (it installs it if missing), initializes a Docker Swarm, and needs ports 80, 443, and 3000 free - the install fails if any of them is already in use.[8] It publishes a 3000 web UI at http://<server-ip>:3000.[8] It runs on Linux as root and refuses to run inside a container.[14] Dokploy’s docs list port and Docker requirements but don’t publish a comparable CPU/RAM minimum in the install guide, so size the box on your workload rather than a floor.
A small but real detail: Coolify warns you to create the admin account immediately, because whoever reaches the registration page first can claim root access to your server.[2] Worth doing on both.
Builds, git, and the deploy loop
Both cover the modern build matrix. Coolify builds via Nixpacks, Railpack, Dockerfile, Docker Compose, or a prebuilt Docker image, integrates GitHub, GitLab, Bitbucket and Gitea, does push-to-deploy and pull-request previews, supports deployment webhooks, and can roll back to retained images.[1] Dokploy builds via Nixpacks, Heroku Buildpacks, or a custom Dockerfile, has native Docker Compose support, git integration, auto-deploy via webhooks, preview deployments, and registry-based rollbacks.[7][12]
Neither will struggle to build a typical Next.js, Node, or PHP app. If you’re coming straight off Heroku and want a buildpack path, Dokploy is a slightly more familiar fit; if you want the widest choice of build backends and the biggest one-click catalog, Coolify has the edge. The one-click service count on Coolify is a genuine differentiator for anyone who wants to stand up a database or a known product (like a Supabase clone) without writing a compose file.[1]
Databases, backups, storage
Coolify can run managed databases and more than 300 one-click services with persistent storage and generated credentials.[1] Dokploy manages MySQL, PostgreSQL, MongoDB, MariaDB, libsql, and Redis, with automated backups to external storage, backup logs, and volume management.[7][12] Both handle the day-two work of running a database container.
The meaningful difference is scale and storage cleanup. In a Coolify multi-server setup, applications with persistent storage configured can’t use the current multi-server deployment feature, and the docs push shared/external storage for state.[4] In a Dokploy Swarm cluster, Dokploy does not perform automatic storage cleanup on extra (non-manager) nodes - you add the node as a remote server or schedule cleanup yourself.[10] Neither is a dealbreaker, but both are the kind of detail that bites at 2 a.m.
Monitoring, notifications, and access control
Both have a real dashboard, real-time log and terminal access, and resource monitoring. Coolify offers an API, CLI, MCP integration, team-based access control, and real-time terminal in the browser.[1] Dokploy offers a REST API, CLI, Swagger docs, container terminal, real-time monitoring of CPU/memory/storage/network per resource, and notifications to Slack, Discord, Telegram, Email, Webhook, Lark, Gotify, and Ntfy.[7][12] Dokploy’s notification breadth and its per-resource monitoring are strong; Coolify’s MCP and server-automation angle is its differentiator.
For teams, RBAC differs by product: Dokploy gates a lot behind its paid Cloud tiers (fine-grained RBAC, 2FA, SSO/SAML, SCIM, audit logs), while Coolify’s self-hosted edition keeps team features and unlimited members free.[5][12]
Pricing: both are free to self-host, then it diverges
The software is free on your own server for both. The divergence is in the hosted control-plane, and in the license.
Coolify Cloud is $5/month base (connect 2 servers) plus $3/month per additional server, with an annual discount.[5] Self-hosted is free forever with no feature restrictions.[5]
Dokploy Cloud is tiered: Hobby at $4.50/month per server (unlimited deployments, apps and databases; 1 server, 1 user, 2 environments, 1 volume backup per app, 1 backup per database, 1 scheduled job per app, community support), Startup from $15/month (up to 3 servers, 3 organizations, unlimited users and environments, basic RBAC, 2FA, email/chat support), and Enterprise (unlimited servers, fine-grained RBAC, SSO/SAML, SCIM, audit logs, SLA, white-labeling).[12]
But the real cost of self-hosting is the VPS itself, not the software. A 2 GB box that runs the platform comfortably is roughly $6–$12/month depending on provider (our VPS comparison covers the $6 tier, and you can grab a $6 box at Vultr). If you’d rather not babysit the control plane, either vendor’s cloud is a reasonable alternative at $5/month. That’s genuinely cheap compared to the equivalent Heroku or Vercel spend.
Licensing: the quiet differentiator
This one matters more than most comparison posts admit, especially if you’re deploying for a company or a client.
Coolify is Apache-2.0 - a true OSI open-source license.[1][6] You can use it commercially, modify it, and redistribute it under the same terms.
Dokploy is dual-licensed. Content outside a /proprietary directory is Apache-2.0; content under /proprietary is under the Dokploy Source Available License (DSAL) v1.0, which restricts production use to parties with a valid commercial agreement with Dokploy and forbids copying, distributing, or selling that portion.[14] In practice this means the open core is fine to self-host and modify, but some modules are source-available with commercial strings attached. If your org has a strict “no source-available licenses” policy, Coolify is the safer default; if you only ever self-host the open parts, Dokploy is fine.
Side by side
If you just want the columns, here is the whole comparison in one table.
| Parameter | Coolify | Dokploy |
|---|---|---|
| Architecture | One proxy per server; every server is an independent machine | Swarm-first: manager plus nodes, with Traefik load-balancing replicas |
| Install | Single curl pipe, runs as root, port 8000; minimum 2 cores / 2 GB RAM / 10 GB disk | Single curl pipe, runs as root, requires Docker; ports 80, 443 and 3000 free, UI on :3000 |
| Builds | Nixpacks, Railpack, Dockerfile, Docker Compose, prebuilt image | Nixpacks, Heroku Buildpacks, Dockerfile; native Docker Compose |
| Databases | Managed databases plus a 300+ one-click service catalog | Managed MySQL, PostgreSQL, MongoDB, MariaDB, libsql, Redis with automated backups |
| Scaling | Same image to independent servers; you add a load balancer; Swarm deprecated in v4 | Add nodes to the Swarm; needs a Docker registry and same-architecture servers |
| Pricing | Self-hosted free forever, no feature restrictions; Cloud $5/month base plus $3/month per extra server | Self-hosted free; Cloud Hobby $4.50/month per server, Startup from $15/month |
| License | Apache-2.0 (OSI open source) | Dual: Apache-2.0 outside /proprietary, DSAL v1.0 (source-available) on the /proprietary tree |
Verdict by use case
| Use case | Pick | Why |
|---|---|---|
| Single VPS, one or two apps, minimal ops | Coolify | Apache-2.0, huge one-click catalog, simpler single-server model. |
| You already run a load balancer and want independent instances | Coolify | Its multi-server model is literally that, with no orchestrator to learn. |
| You want a cluster with replicas and built-in load balancing | Dokploy | Swarm-first: add nodes, Traefik balances, rolling updates handled. |
| Coming off Heroku, want buildpacks and Compose | Dokploy | Heroku Buildpacks plus native Docker Compose out of the box. |
| Corporate/commercial deployment | Coolify (policy check) | Apache-2.0 avoids the source-available license questions. |
| Brand-new, want the lowest-drama path | Coolify | Free forever self-hosted, well-documented, no feature paywall. |
The honest bottom line: neither is “better” - they are built for slightly different operators. If your mental model is “a fleet of servers, each a machine, and an app on each,” Coolify matches how you already think. If your model is “one cluster, many nodes, let the orchestrator place my containers,” Dokploy is the closer fit. Price them the same (the software is free), but the architecture - and the license - is where you’ll actually feel the difference.
For the surrounding context, our Docker vs raw VPS explainer is the decision you’re making before this one, and the deploy guide is what a manual version of this looks like if you’d rather not use a PaaS at all.
We’re currently running both on paid VPS boxes and will publish real measured figures (deploy time, build resource use, cold-start behavior, multi-node behavior) here as the runs complete per our methodology.
Some links on this page may be affiliate links. They don’t change our conclusions - see our affiliate disclosure.
Sources
- Coolify - GitHub repository (Apache-2.0 license; Nixpacks/Railpack/Dockerfile/Compose/prebuilt image builds; GitHub/GitLab/Bitbucket/Gitea; 300+ one-click services; PR previews, webhooks, rollbacks; API/CLI/MCP; team access). https://github.com/coollabsio/coolify - checked 2026-09-28
- Coolify - Docs: Start with self-hosted (automated installer, root, port 8000; minimum 2 cores / 2 GB RAM / 10 GB disk, amd64/arm64; supported distros; back up /data/coolify/source/.env). https://coolify.io/docs/start-with-self-hosted - checked 2026-09-28
- Coolify - Docs: Proxy overview (one coolify-proxy container per server; Traefik default, Caddy option, Custom/None). https://coolify.io/docs/knowledge-base/server/proxies - checked 2026-09-28
- Coolify - Docs: Multi-server deployments & Scaling overview (same image to primary + additional standalone servers; Coolify does not distribute traffic - you add a load balancer; persistent-storage and Docker Compose apps can’t use current multi-server; Docker Swarm deprecated in v4). https://coolify.io/docs/core/infrastructure/scaling/multi-server-deployments and https://coolify.io/docs/core/infrastructure/scaling/overview - checked 2026-09-28
- Coolify - Pricing (self-hosted free forever, no feature restrictions; Cloud $5/month base for 2 servers + $3/month per additional server; teams/members unlimited, Cloud data). https://coolify.io/pricing - checked 2026-09-28
- Coolify - Latest release v4.6.0 (published 2026-11-02; breaking:
deleteability required for API/MCP deletes). https://github.com/coollabsio/coolify/releases/latest - checked 2026-11-07 - Dokploy - GitHub repository (free self-hostable PaaS on Docker/Swarm with Traefik; Nixpacks/Heroku Buildpacks/Dockerfile; native Docker Compose; databases incl. libsql; backups; multi-node; templates; CLI/API; notifications). https://github.com/Dokploy/dokploy - checked 2026-09-28
- Dokploy - Docs: Installation (requires Docker; ports 80/443/3000 free, install fails otherwise; web UI at :3000; install script). https://docs.dokploy.com/docs/core/installation - checked 2026-09-28
- Dokploy - Docs: Deployment options (Dokploy Server / Remote Servers / Swarm Nodes (Cluster) with Traefik load-balancing). https://docs.dokploy.com/docs/core/deployment-options - checked 2026-09-28
- Dokploy - Docs: Cluster (Swarm manager/worker nodes; requires Docker registry and same-architecture servers; no automatic storage cleanup on non-manager nodes). https://docs.dokploy.com/docs/core/cluster - checked 2026-09-28
- Dokploy - Docs: Zero downtime (default Swarm stop-first behavior causes Bad Gateway; configure a health check under Swarm Settings). https://docs.dokploy.com/docs/core/applications/zero-downtime - checked 2026-09-28
- Dokploy - Pricing (Hobby $4.50/mo per server; Startup from $15/mo; Enterprise; feature matrix incl. preview deployments, RBAC, 2FA, SSO/SAML, SCIM, audit logs, notifications). https://dokploy.com/pricing - checked 2026-09-28
- Dokploy - Latest release v0.31.0 (published 2026-11-05; transfer services between servers). https://github.com/Dokploy/dokploy/releases/latest - checked 2026-11-07
- Dokploy - LICENSE.MD and LICENSE_PROPRIETARY.md (Apache-2.0 outside /proprietary; Dokploy Source Available License v1.0 with commercial-production restriction for /proprietary content). https://github.com/Dokploy/dokploy/blob/canary/LICENSE.MD and https://github.com/Dokploy/dokploy/blob/canary/LICENSE_PROPRIETARY.md - checked 2026-09-28
- Coolify - Docs: Introduction (each server runs its own proxy; traffic for apps on secondary servers goes directly to them; point DNS at the server where the app is deployed; main Coolify server does not proxy). https://coolify.io/docs/knowledge-base/server/introduction - checked 2026-09-28
- Coolify - Release v4.4.7 security fix release (published 2026-10-21; PHP 8.4.27 for PHP2Shell CVE-2026-109618/CVE-2026-109619; backports v4.3.24/v4.2.1/v4.1.3/v4.0.1). https://github.com/coollabsio/coolify/releases/tag/v4.4.7 - checked 2026-10-24