Compare, self-hosted
Levelrail vs Dokploy
A polished project built on Docker Swarm, with a modern dashboard on top.
As of 2026-10. Statements about Dokploy come from its own public documentation, linked on each row.
The short verdict
Dokploy is good at: multi-node scheduling and rolling updates come from Docker Swarm, a mature, widely understood mechanism; and a modern dashboard, and a natural fit if you already think in Swarm terms.
Choose Dokploy when docker Swarm is already your model, and you want multi-node scheduling and rolling updates from a mature mechanism.
Levelrail differs here: plain Docker with a reconciler and a small agent per node, with no Swarm or overlay network; and metrics, full-text logs and crashloop detection ship in the core with no extra stack; and one Go binary with embedded SQLite and embedded Caddy, instead of Traefik. Levelrail is pre-release, a single node is the well-tested path and multi-node is in beta, so its track record is much shorter than Dokploy's.
Where Dokploy is ahead
- Docker Compose apps. Dokploy: Compose deploys from Git or pasted file; build unsupported in Stack mode. Levelrail: partly, pre-built images from the dashboard; git deploys can build.
- Git push deploys from GitHub, GitLab, Bitbucket. Dokploy: Auto deploy on push for GitHub, GitLab, Bitbucket and Gitea. Levelrail: partly, all four documented; GitLab and Bitbucket previews are beta, synthetic-webhook tested.
- Builds from source without a Dockerfile. Dokploy: Nixpacks is the default; Railpack and buildpacks also offered. Levelrail: partly, railpack detects Node, Python, Go and more; Ruby is rejected.
- Managed databases with scheduled backups. Dokploy: Creates MySQL, Postgres, MongoDB, Redis, MariaDB; scheduled backups. Levelrail: partly, many engines, scheduled S3 backups; Postgres restores tested live.
- Load balancing across replicas. Dokploy: Swarm replicas across servers; Traefik load-balances traffic to them. Levelrail: partly, experimental and flag gated; not tried across real hosts.
- Automatic TLS certificates. Dokploy: Per-domain HTTPS with a Let's Encrypt certificate resolver option. Levelrail: partly, internal issuer by default; public ACME verified once live.
- Multi-node. Dokploy: Multi-node scheduling through Docker Swarm. Levelrail: partly, enrollment verified locally; WireGuard mesh still unverified.
- Deploy and alert notifications. Dokploy: Slack, Discord, Email, Telegram, Teams and Webhook notifications. Levelrail: partly, 18 channel kinds in beta, tested only against mocks.
- SAML or SCIM single sign-on. Dokploy: SAML and OIDC SSO plus SCIM, under the Enterprise license. Levelrail: partly, sAML and SCIM are experimental and off by default.
Where Levelrail is ahead
- No SSH: agents dial out. Levelrail: Agents dial out over mTLS; no inbound ports. Dokploy: no, connects to remote servers over SSH keys.
- Single control plane binary. Levelrail: One control plane binary, plus one agent per extra node. Dokploy: no, three parts: Next.js app, PostgreSQL and Traefik.
- Metrics and log search built in. Levelrail: Node-local metrics at 15s and full-text log search. Dokploy: partly, monitoring features in the dashboard; log search not stated.
- Readiness-gated deploys (zero-downtime on one node). Levelrail: Cutover only after the readiness probe passes. Live-tested on one node; multi-node is beta. Dokploy: partly, swarm rolling updates; readiness gating not stated.
- Preview environments per pull request. Levelrail: Stable on GitHub, beta on GitLab and Bitbucket. Dokploy: partly, preview per pull request, documented for GitHub only.
- Encrypted secrets for env vars. Levelrail: Envelope-encrypted, masked in UI, injected at container create. Dokploy: partly, external secrets providers fetch values at deploy time; encryption not stated.
- CLI and HTTP API. Levelrail: CLI and REST API documented; MCP server is beta. Dokploy: partly, hTTP API and a CLI; CLI covers app create, deploy, stop, delete.
- IAM, audit log and 2FA in the free edition. Levelrail: Allow/Deny policies, audit log and TOTP in one edition. Dokploy: partly, owner, Admin, Member roles and 2FA; audit logs are Enterprise.
28 capabilities side by side
Yes, partly and no are what each project's own documentation states. "Not stated" means their docs do not say, which is not the same as no. Levelrail maturity tags (beta, stable) come from its feature status page.
| Capability | Levelrail | Dokploy |
|---|---|---|
| Architecture | ||
| No SSH: agents dial out | Yesbeta Agents dial out over mTLS; no inbound portsSource for Levelrail, No SSH: agents dial out | No Connects to remote servers over SSH keysSource for Dokploy, No SSH: agents dial out |
| Level-triggered reconciler with status reasons | Yes Desired state converged, status condition with reason per passSource for Levelrail, Level-triggered reconciler with status reasons | Not stated in their docs |
| Single control plane binary | Yes One control plane binary, plus one agent per extra nodeSource for Levelrail, Single control plane binary | No Three parts: Next.js app, PostgreSQL and TraefikSource for Dokploy, Single control plane binary |
| Observability | ||
| Metrics and log search built in | Yes Node-local metrics at 15s and full-text log searchSource for Levelrail, Metrics and log search built in | Partly Monitoring features in the dashboard; log search not statedSource for Dokploy, Metrics and log search built in |
| Crashloop diagnosis with last log lines | Yes Crashloop detection surfaces the last log linesSource for Levelrail, Crashloop diagnosis with last log lines | Not stated in their docs |
| Deploys | ||
| One-click rollback with pinned images | Yes Prior images pinned so cleanup cannot remove themSource for Levelrail, One-click rollback with pinned images | Yes Registry-based rollback to any previous deployment imageSource for Dokploy, One-click rollback with pinned images |
| Readiness-gated deploys (zero-downtime on one node) | Yes Cutover only after the readiness probe passes. Live-tested on one node; multi-node is betaSource for Levelrail, Readiness-gated deploys (zero-downtime on one node) | Partly Swarm rolling updates; readiness gating not statedSource for Dokploy, Readiness-gated deploys (zero-downtime on one node) |
| Preview environments per pull request | Yesstable Stable on GitHub, beta on GitLab and BitbucketSource for Levelrail, Preview environments per pull request | Partly Preview per pull request, documented for GitHub onlySource for Dokploy, Preview environments per pull request |
| Docker Compose apps | Partly Pre-built images from the dashboard; git deploys can buildSource for Levelrail, Docker Compose apps | Yes Compose deploys from Git or pasted file; build unsupported in Stack modeSource for Dokploy, Docker Compose apps |
| Git push deploys from GitHub, GitLab, Bitbucket | Partly All four documented; GitLab and Bitbucket previews are beta, synthetic-webhook testedSource for Levelrail, Git push deploys from GitHub, GitLab, Bitbucket | Yes Auto deploy on push for GitHub, GitLab, Bitbucket and GiteaSource for Dokploy, Git push deploys from GitHub, GitLab, Bitbucket |
| Builds from source without a Dockerfile | Partly Railpack detects Node, Python, Go and more; Ruby is rejectedSource for Levelrail, Builds from source without a Dockerfile | Yes Nixpacks is the default; Railpack and buildpacks also offeredSource for Dokploy, Builds from source without a Dockerfile |
| Scheduled jobs | Yes Per-app cron jobs with run history, logs, retries and alertsSource for Levelrail, Scheduled jobs | Yes Schedule Jobs runs cron jobs in apps, compose services or serversSource for Dokploy, Scheduled jobs |
| Data | ||
| Managed databases with scheduled backups | Partly Many engines, scheduled S3 backups; Postgres restores tested liveSource for Levelrail, Managed databases with scheduled backups | Yes Creates MySQL, Postgres, MongoDB, Redis, MariaDB; scheduled backupsSource for Dokploy, Managed databases with scheduled backups |
| Encrypted secrets for env vars | Yes Envelope-encrypted, masked in UI, injected at container createSource for Levelrail, Encrypted secrets for env vars | Partly External secrets providers fetch values at deploy time; encryption not statedSource for Dokploy, Encrypted secrets for env vars |
| Networking | ||
| Private networking between apps or nodes | Partly Named networks and allow rules; cross-server mesh unverified on real hostsSource for Levelrail, Private networking between apps or nodes | Not stated in their docs |
| Load balancing across replicas | Partly Experimental and flag gated; not tried across real hostsSource for Levelrail, Load balancing across replicas | Yes Swarm replicas across servers; Traefik load-balances traffic to themSource for Dokploy, Load balancing across replicas |
| Request firewall, rate limits, bot protection | Yes Ordered rules, IP bans, bot handling, challenges and rate limitsSource for Levelrail, Request firewall, rate limits, bot protection | Not stated in their docs |
| Automatic TLS certificates | Partly Internal issuer by default; public ACME verified once liveSource for Levelrail, Automatic TLS certificates | Yes Per-domain HTTPS with a Let's Encrypt certificate resolver optionSource for Dokploy, Automatic TLS certificates |
| Platform | ||
| Multi-node | Partlybeta Enrollment verified locally; WireGuard mesh still unverifiedSource for Levelrail, Multi-node | Yes Multi-node scheduling through Docker SwarmSource for Dokploy, Multi-node |
| One-click service templates | Yesbeta About 360 templates; a sample is live-deployed in e2eSource for Levelrail, One-click service templates | Yes 568 or more one-click open source templatesSource for Dokploy, One-click service templates |
| Autoscaling | Partly Beta: CPU, memory or request-rate scaling with cooldowns and reasonsSource for Levelrail, Autoscaling | Not stated in their docs |
| CLI and HTTP API | Yes CLI and REST API documented; MCP server is betaSource for Levelrail, CLI and HTTP API | Partly HTTP API and a CLI; CLI covers app create, deploy, stop, deleteSource for Dokploy, CLI and HTTP API |
| Deploy and alert notifications | Partly 18 channel kinds in beta, tested only against mocksSource for Levelrail, Deploy and alert notifications | Yes Slack, Discord, Email, Telegram, Teams and Webhook notificationsSource for Dokploy, Deploy and alert notifications |
| MCP / AI assistant integration | Yesbeta MCP server with over 240 tools in on-demand toolsetsSource for Levelrail, MCP / AI assistant integration | Not stated in their docs |
| Runs on servers you own | Yes Runs on Linux servers you provideSource for Levelrail, Runs on servers you own | Yes Web application on your serverSource for Dokploy, Runs on servers you own |
| Open source license | Yes Apache 2.0, one edition, no paid tierSource for Levelrail, Open source license | Not stated in their docs |
| Security | ||
| IAM, audit log and 2FA in the free edition | Yesstable Allow/Deny policies, audit log and TOTP in one editionSource for Levelrail, IAM, audit log and 2FA in the free edition | Partly Owner, Admin, Member roles and 2FA; audit logs are EnterpriseSource for Dokploy, IAM, audit log and 2FA in the free edition |
| SAML or SCIM single sign-on | Partly SAML and SCIM are experimental and off by defaultSource for Levelrail, SAML or SCIM single sign-on | Yes SAML and OIDC SSO plus SCIM, under the Enterprise licenseSource for Dokploy, SAML or SCIM single sign-on |
All ten projects are on the full matrix. Product names and logos belong to their owners and are used for identification only.
Migrating from Dokploy
Levelrail has a read-only importer for Dokploy with a dry-run mode. It creates apps and databases here and never changes Dokploy, so you can run both and move DNS one domain at a time. Some things do not migrate automatically, such as compose stacks, volume contents and certificates.
Questions about Levelrail and Dokploy
Is Levelrail a good alternative to Dokploy?
A polished project built on Docker Swarm, with a modern dashboard on top. How Levelrail differs: Plain Docker with a reconciler and a small agent per node, with no Swarm or overlay network. Metrics, full-text logs and crashloop detection ship in the core with no extra stack. One Go binary with embedded SQLite and embedded Caddy, instead of Traefik. Choose Dokploy instead when docker Swarm is already your model, and you want multi-node scheduling and rolling updates from a mature mechanism. Levelrail is pre-release, so check the comparison for what it does not do yet.
When should I choose Dokploy instead of Levelrail?
Choose Dokploy when docker Swarm is already your model, and you want multi-node scheduling and rolling updates from a mature mechanism.
Can I move from Dokploy to Levelrail?
Yes. Levelrail has a read-only importer for Dokploy with a dry-run mode. It creates apps and databases here without touching Dokploy, so you can run both and move DNS one domain at a time. Some things do not migrate automatically, and the migrating from dokploy page lists them.
Is Levelrail ready to replace Dokploy in production?
Pre-release: no stable release; APIs, the app spec and the on-disk layout can change between betas. A single node is the well-tested path; multi-node is in beta and the WireGuard mesh is not battle-tested. Check the feature status page before moving anything you cannot afford to lose, and keep Dokploy running alongside until you trust the result.