Compare, self-hosted
Levelrail vs CapRover
A long-running, simple, Swarm-based platform with a one-click app store and a CLI.
As of 2026-10. Statements about CapRover come from its own public documentation, linked on each row.
The short verdict
CapRover is good at: large install base and easy to pick up; and a one-click app store, larger than Levelrail's catalog today.
Choose CapRover when docker Swarm is already your model, or you want a long-running platform with a large install base and app store.
Levelrail differs here: plain Docker containers with a level-triggered reconciler instead of Swarm services; and an agent per node dials out over mTLS, so managed servers need no inbound port; and caddy embedded for ingress instead of nginx, with metrics and logs in the core. 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 CapRover's.
Where CapRover is ahead
- Private networking between apps or nodes. CapRover: Apps reach each other by service name across cluster. Levelrail: partly, named networks and allow rules; cross-server mesh unverified on real hosts.
- Load balancing across replicas. CapRover: Requests spread automatically across app instances. Levelrail: partly, experimental and flag gated; not tried across real hosts.
- Automatic TLS certificates. CapRover: Let's Encrypt certificates managed automatically by CapRover. Levelrail: partly, internal issuer by default; public ACME verified once live.
- Multi-node. CapRover: Join nodes via UI or docker swarm join over SSH. Levelrail: partly, enrollment verified locally; WireGuard mesh still unverified.
Where Levelrail is ahead
- No SSH: agents dial out. Levelrail: Agents dial out over mTLS; no inbound ports. CapRover: no, nodes join over SSH from the leader server.
- Metrics and log search built in. Levelrail: Node-local metrics at 15s and full-text log search. CapRover: partly, cPU, memory, network graphs; no log search documented.
- CLI and HTTP API. Levelrail: CLI and REST API documented; MCP server is beta. CapRover: partly, cLI covers deploy, login, list; API documented only for login.
- IAM, audit log and 2FA in the free edition. Levelrail: Allow/Deny policies, audit log and TOTP in one edition. CapRover: partly, 2FA is Pro only; no roles or audit log documented.
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 | CapRover |
|---|---|---|
| Architecture | ||
| No SSH: agents dial out | Yesbeta Agents dial out over mTLS; no inbound portsSource for Levelrail, No SSH: agents dial out | No Nodes join over SSH from the leader serverSource for CapRover, 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 | Not stated in their docs |
| 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 CPU, memory, network graphs; no log search documentedSource for CapRover, 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 One-click rollback restores image, not env varsSource for CapRover, 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) | Yes Health-gated start-first deploys; persistent apps have downtimeSource for CapRover, 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 | Not stated in their docs |
| Docker Compose apps | Partly Pre-built images from the dashboard; git deploys can buildSource for Levelrail, Docker Compose apps | Partly Subset of Compose from dashboard; build and networks ignoredSource for CapRover, 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 | Partly Webhooks documented for GitHub and Bitbucket; GitLab via CI jobSource for CapRover, 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 | Partly Explicit templates only: node, php, python-django, ruby-rackSource for CapRover, Builds from source without a Dockerfile |
| Scheduled jobs | Yes Per-app cron jobs with run history, logs, retries and alertsSource for Levelrail, Scheduled jobs | Not stated in their docs |
| Data | ||
| Managed databases with scheduled backups | Partly Many engines, scheduled S3 backups; Postgres restores tested liveSource for Levelrail, Managed databases with scheduled backups | Partly One-click databases; backups manual, no schedule, no S3Source for CapRover, 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 | Not stated in their docs |
| 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 | Yes Apps reach each other by service name across clusterSource for CapRover, Private networking between apps or nodes |
| Load balancing across replicas | Partly Experimental and flag gated; not tried across real hostsSource for Levelrail, Load balancing across replicas | Yes Requests spread automatically across app instancesSource for CapRover, 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 Let's Encrypt certificates managed automatically by CapRoverSource for CapRover, Automatic TLS certificates |
| Platform | ||
| Multi-node | Partlybeta Enrollment verified locally; WireGuard mesh still unverifiedSource for Levelrail, Multi-node | Yes Join nodes via UI or docker swarm join over SSHSource for CapRover, Multi-node |
| One-click service templates | Yesbeta About 360 templates; a sample is live-deployed in e2eSource for Levelrail, One-click service templates | Yes One-click app storeSource for CapRover, One-click service templates |
| Autoscaling | Partly Beta: CPU, memory or request-rate scaling with cooldowns and reasonsSource for Levelrail, Autoscaling | No Replica count is set by hand in the dashboardSource for CapRover, Autoscaling |
| CLI and HTTP API | Yes CLI and REST API documented; MCP server is betaSource for Levelrail, CLI and HTTP API | Partly CLI covers deploy, login, list; API documented only for loginSource for CapRover, CLI and HTTP API |
| Deploy and alert notifications | Partly 18 channel kinds in beta, tested only against mocksSource for Levelrail, Deploy and alert notifications | Partly Build status notifications are Pro only; channels not namedSource for CapRover, 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 running as a Swarm serviceSource for CapRover, Runs on servers you own |
| Open source license | Yes Apache 2.0, one edition, no paid tierSource for Levelrail, Open source license | Yes Listed as open sourceSource for CapRover, Open source license |
| 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 2FA is Pro only; no roles or audit log documentedSource for CapRover, 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 | Not stated in their docs |
All ten projects are on the full matrix. Product names and logos belong to their owners and are used for identification only.
Migrating from CapRover
Levelrail has a read-only importer for CapRover with a dry-run mode. It creates apps and databases here and never changes CapRover, 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 CapRover
Is Levelrail a good alternative to CapRover?
A long-running, simple, Swarm-based platform with a one-click app store and a CLI. How Levelrail differs: Plain Docker containers with a level-triggered reconciler instead of Swarm services. An agent per node dials out over mTLS, so managed servers need no inbound port. Caddy embedded for ingress instead of nginx, with metrics and logs in the core. Choose CapRover instead when docker Swarm is already your model, or you want a long-running platform with a large install base and app store. Levelrail is pre-release, so check the comparison for what it does not do yet.
When should I choose CapRover instead of Levelrail?
Choose CapRover when docker Swarm is already your model, or you want a long-running platform with a large install base and app store.
Can I move from CapRover to Levelrail?
Yes. Levelrail has a read-only importer for CapRover with a dry-run mode. It creates apps and databases here without touching CapRover, so you can run both and move DNS one domain at a time. Some things do not migrate automatically, and the migrating from caprover page lists them.
Is Levelrail ready to replace CapRover 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 CapRover running alongside until you trust the result.