September 20, 2026
Coolify vs Dokploy (2026): which self-hosted PaaS, and when neither is the right fit for .NET
Coolify and Dokploy are both open-source, self-hosted alternatives to Heroku or Vercel: install the control plane on your own server, point it at a Git repo, and it builds and runs your app in containers. They compete directly with each other, and both compete indirectly with a managed platform like DotDeployer. Here’s how they actually differ, current as of September 2026, and where the whole self-hosted-PaaS category stops being the right fit for a .NET app.
Pricing
| Coolify | Dokploy | |
|---|---|---|
| Self-hosted | Free forever, full feature set | Free forever, full feature set |
| Managed cloud | $5/mo base (2 servers) + $3/mo per extra server | Hobby $4.50/mo (1 server); Startup $15/mo (up to 3 servers, unlimited users) |
| Enterprise | — | Custom pricing: unlimited servers, RBAC, SSO/SAML, audit logs |
Both projects give away the entire control plane for free if you run it yourself; the paid tier in both cases is “we host the control plane for you,” not a feature unlock. Sources: Coolify’s pricing page and Dokploy’s pricing page, both checked September 20, 2026.
Underlying technology
Coolify and Dokploy solve the same problem with a similar shape: a web UI in front of Docker, with a reverse proxy handling domains and TLS. Dokploy is explicit about using Docker Swarm for multi-node orchestration and Traefik for routing; Coolify’s own docs describe a comparable Docker-plus-proxy architecture. Both support deploying via a Dockerfile you already have, or via buildpacks (Nixpacks in both cases) that auto-detect common languages and build a container without you writing one.
Practically: if your app already has a working Dockerfile, either tool runs it. If it doesn’t,
you’re relying on their buildpack detection working for your stack, or writing a Dockerfile
yourself.
Databases
Both run databases as ordinary containers — Postgres, MySQL, Redis, MongoDB and a handful of
others, spun up alongside your app. That’s convenient for a quick side project and a real
operational tradeoff for anything you plan to run for years: the database’s data lives in a
container volume, backup and restore is a Docker-volume operation rather than the tool’s native
pg_dump/BACKUP DATABASE, and the database competes with your app for the same host’s resources
inside the same orchestration layer.
Who maintains what
Self-hosted, in both cases, means you patch and upgrade the control plane itself, not just your app — a Coolify or Dokploy version bump is your responsibility, on top of whatever you’re already doing to keep the underlying Docker host patched. Their cloud tiers hand that specific job back to the vendor, for a price, while still deploying to servers you provision and pay for separately.
Where this fits (and doesn’t) for a .NET app
Neither tool is .NET-specific. An ASP.NET Core or Blazor app runs fine on either one, but only
after it’s containerized — which means a Dockerfile, a .dockerignore, and (for anything
non-trivial) tuning the image for .NET’s own publish/runtime split, none of which either platform
does for you. Compare that to DotDeployer, which is built around exactly one thing: ASP.NET
Core and Blazor deployed from a GitHub repo straight onto a systemd service and nginx, no
container involved at any point, with PostgreSQL or SQL Server installed directly on the box
instead of in a volume.
If you’re already comfortable with Docker, deploy multiple languages on the same infrastructure, or want the option to self-host for free forever, Coolify or Dokploy are both reasonable choices — see the full breakdown on DotDeployer vs Coolify and DotDeployer vs Dokploy. If your stack is .NET end to end and you’d rather skip Docker entirely, that’s the gap DotDeployer fills.
Deploy .NET without touching Docker
Connect a server, add a site from your GitHub repo, and DotDeployer builds and runs your ASP.NET Core or Blazor app directly on the box -- no Dockerfile, no container registry.