Coolify alternative: where NebulaCtrl leads and where it trails
NebulaCtrl is a free, self hosted platform for your own Docker servers, with its source coming soon, in the same family as Coolify and Dokploy. This page sets the three side by side, with Railway as the hosted option, across 100 capabilities. Each cell says yes, partial, no or not applicable, and the table lists every row.
Coolify and Dokploy are ahead on Nixpacks, host bind mounts, a raw proxy config editor and, for Dokploy, Swarm mode. Railway has private networking across hosts, point in time database recovery and database failover; NebulaCtrl has an opt in mesh for links between servers, marked partial. Coolify and Dokploy also have larger communities and more years in production. NebulaCtrl does not say yes on 8 rows, and they are all marked below.
The count, out of 100 capabilities
- Yes92
- Partial2
- No6
0 not applicable to this product
- Yes62
- Partial21
- No15
2 not applicable to this product
- Yes53
- Partial22
- No23
2 not applicable to this product
- Yes49
- Partial11
- No21
19 not applicable to this product
Every capability, side by side
| Capability | NebulaCtrl | Coolify | Dokploy | Railway |
|---|---|---|---|---|
| Sources and builds | ||||
| Generic Git, public and private | Yes | Yes | Yes | Partial |
| GitHub App | Yes | Yes | Yes | Yes |
| GitLab, Bitbucket and Gitea integrations | Yes | Yes | Yes | No† (not found in the vendor docs) |
| Push webhooks and auto deploy | Yes | Yes | Yes | Yes |
| Watch paths (monorepo) | Yes | Yes | Yes | Yes |
| PR preview environments | Yes | Yes | Yes | Yes |
| Dockerfile builds | Yes | Yes | Yes | Yes |
| Nixpacks | NoNot supported; Railpack is the default | YesDeprecated in 4.5 | Yes | No |
| Railpack | Yes | PartialBeta | Yes | Yes |
| Cloud Native Buildpacks | NoNo buildpack support | No | Yes | No† (not found in the vendor docs) |
| Static site build | Yes | Yes | Yes | Yes |
| Docker Compose stacks | Yes | Yes | Yes | Partial |
| Separate build server | Yes | Yes | Yes | n/a |
| Private registry, pull and push | Yes | Yes | Yes | Yes |
| Deploy | ||||
| Zero downtime rolling deploys | Yes | Partial | Partial | Yes |
| Rollback | Yes | Yes | Yes | Yes |
| Scheduled jobs / cron | Yes | Yes | Yes | Yes |
| One off command, terminal and exec | Yes | Yes | Yes | Yes |
| Pre and post deploy commands | Yes | Yes | No† (not found in the vendor docs) | YesPre deploy only |
| Health checks | Yes | Yes | Partial | Yes |
| Cancel a deployment, queued or running | Yes | Yes | Partial | Yes |
| Runtime | ||||
| Replicas | Yes | Partial | Yes | Yes |
| Autoscaling | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | Partial |
| CPU / memory limits | Yes | Yes | Yes | Yes |
| Persistent named volumes | Yes | Yes | Yes | Yes |
| Bind mounts and file mounts | PartialConfig files only, no host paths | Yes | Yes | No† (not found in the vendor docs) |
| Custom Docker options and labels | Yes | Yes | Partial | n/a |
| Networking | ||||
| Domains + automatic TLS | Yes | Yes | Yes | Yes |
| Generated domains | Yes | Yes | Yes | Yes |
| Wildcard hostnames / certs | Yes | Yes | Partial | Yes |
| Custom certificate upload | Yes | Partial | Yes | No† (not found in the vendor docs) |
| DNS-01 and DNS providers | Yes | Partial | Partial | n/a |
| Redirects | Yes | Yes | Yes | Yes |
| Path routing and strip prefix | Yes | Yes | Yes | No† (not found in the vendor docs) |
| Basic auth | Yes | Yes | Yes | No† (not found in the vendor docs) |
| Rate limiting | Yes | Partial | Partial | No† (not found in the vendor docs) |
| IP allow and deny lists | Yes | Partial | Partial | Yes |
| Custom headers, CORS and noindex | Yes | Partial | Partial | No† (not found in the vendor docs) |
| TCP/UDP exposure | Yes | Partial | Yes | Partial |
| Proxy to external upstream | Yes | Partial | Partial | No† (not found in the vendor docs) |
| Raw proxy config editor | NoTyped options only, no raw editor | Yes | Yes | No |
| Private networking, same host | Yes | Yes | Yes | Yes |
| Private networking, cross host | PartialOptional tailnet mesh, TCP only, one environment | No | Partial | Yes |
| Cloudflare Tunnel | Yes | Yes | Yes | n/a |
| Tailscale | Yes | Partial | Partial | n/a |
| Data | ||||
| Managed DB engines | Yes | Yes9 engines | Yes5 engines | Yes |
| Scheduled backups to S3 | Yes | Yes | Yes | Partial |
| Restore from UI | Yes | Yes | Yes | Yes |
| Point in time recovery | NoBackups only, no WAL archiving | NoStated as missing in their docs | No† (not found in the vendor docs) | Yes |
| Public DB exposure | Yes | Yes | Yes | Yes |
| Volume backups, not databases | Yes | Yes | Yes | Yes |
| HA / failover DB | NoManual promote only, no automatic failover | NoStated as missing in their docs | No† (not found in the vendor docs) | Yes |
| Operations and platform | ||||
| Live logs | Yes | Yes | Yes | Yes |
| Log drains / external shipping | Yes | Yes | Yes | Partial |
| Metrics | Yes | Yes | Yes | Yes |
| Traffic analytics | Yes | Yes | Yes | Partial |
| Notifications / alerts | Yes | Yes | Yes | Partial |
| Container file browser | Yes | Yes | Yes | Yes |
| Multiple servers | Yes | Yes | Yes | n/a |
| Swarm / cluster mode | NoNo cluster scheduler, by design | Partial | Yes | n/a |
| Teams / RBAC | Yes | Yes | Yes | Yes |
| API, CLI and MCP | Yes | Yes | Partial | Yes |
| One click templates | Yes | Yes300+ templates | Yes | Yes |
| Environments | Yes | Yes | Yes | Yes |
| Shared variables | Yes | Yes | Yes | Yes |
| Variable references | Yes | Partial | Yes | Yes |
| Encrypted secrets and external secret managers | Yes | Yes | Yes | Yes |
| Secret generation | Yes | Yes | No† (not found in the vendor docs) | Yes |
| Audit log | Yes | Yes | Partial | Partial |
| Control plane backup | Yes | Yes | Yes | n/a |
| SSO and OAuth login | Yes | Yes | Partial | Partial |
| 2FA and passkeys | Yes | Yes | Yes | Yes |
| Server drain and fleet capacity | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | n/a |
| Canvas, staging and safety | ||||
| Visual project canvas with service cards and cables | Yes | PartialDashboard canvas since 4.5 | No† (not found in the vendor docs) | Yes |
| Staged changes with a diff, deployed together | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | Yes |
| Guarded production deploy | YesEnforced for MCP; tokens opt in | No† (not found in the vendor docs) | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Per service maintenance mode | Yes | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Branded 404, 502 and 503 error pages | Yes | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Request origins map | Yes | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| MCP server: staged edits, production approval, scoped tools, off by default | Yes | Yes | No† (not found in the vendor docs) | Yes |
| View transition navigation | Yes | n/a | n/a | n/a |
| Dither visualisation kit and alert tones | Yes | n/a | n/a | n/a |
| Verify through the proxy, restore the old route on failure | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Database credential rotation and in place major upgrades | Yes | No | No† (not found in the vendor docs) | Partial |
| Variable version history and rotation plan | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Cloudflare and network isolation | ||||
| Cloudflare DNS automation | Yes | Yes | Partial | No |
| Cloudflare Tunnel, managed per server | Yes | Partial | No | n/a |
| Network isolation per environment | Yes | Partial | Partial | Yes |
| Shared networks | Yes | Partial | No† (not found in the vendor docs) | No |
| Egress blocking per service | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | No† (not found in the vendor docs) |
| Server and account tools | ||||
| Server host shell | Yes | Yes | Yes | n/a |
| Scheduled Docker cleanup | Yes | Yes | Partial | n/a |
| Forgot password by email | Yes | Yes | No† (not found in the vendor docs) | n/a |
| .env.example prefill | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | Yes |
| Install, hardening and docs | ||||
| Deploy hook URL and registry push hooks | Yes | Partial | Partial | No† (not found in the vendor docs) |
| One line installer | Yes | Partial | Partial | n/a |
| Host hardening audit with Lynis | Yes | No† (not found in the vendor docs) | Partial | n/a |
| Managed platform services | Yes | Partial | No† (not found in the vendor docs) | n/a |
| Machine readable docs, served by the app | Yes | Partial | Partial | Yes |
| Compose stack runtime safety allow list | Yes | No† (not found in the vendor docs) | No† (not found in the vendor docs) | n/a |
Checked against the code and each vendor's documentation on 2026-10-28. Competitor cells come from vendor docs; † means the feature was searched for there and not found, which is weaker than proof that it is missing. Where NebulaCtrl says partial or no, the note says what is missing.
Moving from another platform? The FAQ covers what you need, what the installer changes and how to move servers, or read the quickstart.
Try it on a machine you can afford to wipe.
Nothing to sign up for and nothing to pay. Your containers stay plain Docker, your data stays on your disks, and the uninstaller leaves your apps running unless you ask it not to.
curl -fsSL https://nebulactrl.com/install.sh | sudo bash- v0.1.1
- Free to use
- amd64 and arm64
- Debian 12 and 13
- Ubuntu 22.04 to 26.04
- Rocky and Alma 9
- 1 GB RAM