Your own Vercel, on your own servers.
Push to deploy with HTTPS, logs, metrics and one-step rollback. One Go binary, no Kubernetes. Apache 2.0.
Website · Docs · Install · Compare · FAQ · Roadmap · Discussions
English · 简体中文 · Español · Português (BR) · Deutsch · Français · 日本語

Turn any Linux server into a private cloud: Git deploys, HTTPS, databases with verified backups, metrics, logs and alerts, without Kubernetes and without a monitoring stack to bolt on. Pre-1.0: single-server is production ready, multi-node is beta (Feature status).
| idle RAM, 1.5% of one CPU measured, method included |
Go control plane, Docker runtime no Kubernetes |
one-click service templates smoke-tested |
MCP tools for coding agents scoped, read-only by default |
curl -fsSL https://levelrail.com/install.sh | sudo shNeeds Linux (amd64 or arm64) with systemd and root; the installer adds Docker. Open ports 80 and 443, open the setup link it prints, choose a password, then deploy from the CLI (the dashboard's Connect your CLI card gives you the login line):
levelrail-cli login --api-url http://127.0.0.1:8080 --code ABCD-EF23
levelrail-cli import https://github.com/your-org/your-app --deploy
![]() Install, then deploy |
![]() Gated deploy, one-step rollback |
First 15 minutes · Installing (Docker, pinned version, source build, troubleshooting) · CLI only (brew install glincker/tap/levelrail-cli) · Free Arm VM · Migrate from Coolify, Dokploy, CapRover or Dokku · Verify signed releases
Using a coding agent? npx skills add https://github.com/glincker/levelrail --skill levelrail, then ask it to deploy your repo. See Agents.
Deploys that do not surprise you. Servers that explain themselves. Agents that stay in their lane.
| Safe deploys Ship on a Friday. Readiness-gated rollouts, canaries, approvals, one-step rollback. |
Observability built in See everything. Install nothing. Metrics, logs, traces and alerts. No Grafana stack. |
Agents, not SSH No inbound ports to defend. Nodes dial out over mTLS. No shelling out to docker. |
| Verified backups A backup you never restored is a hope. Every backup is re-downloaded and checksummed, with restore drills. |
Secure by default Secure before you configure. Hash-chained audit log, encrypted secrets, passkeys, signed releases. |
Made for AI agents Let agents deploy. Keep the keys. MCP server plus a skill. AI is never in the reconcile path. |
![]() The control plane at a glance |
![]() Every app, its health and its last deploy |
![]() Deploy history, promote and rollback |
![]() Metrics and logs, no Grafana stack |
![]() Nodes and their capacity |
![]() Alerts in one inbox |
All screenshots are captured from a real running control plane. More in the Product tour.
Whoever you are, you start with one line.
| You are | You get | Start |
|---|---|---|
| A solo developer with one VPS | Git deploys, HTTPS in one click and about 200 MB idle, no Kubernetes | curl -fsSL https://levelrail.com/install.sh | sudo sh |
| Building with Claude Code, Cursor or another coding agent | An MCP server that deploys, waits, diagnoses and rolls back inside the token's limits | npx skills add https://github.com/glincker/levelrail --skill levelrail |
| An agency or team | Approvals, deploy freezes, IAM policies, a verifiable audit log, OIDC sign-in | Identity and access |
| On Coolify, Dokploy, CapRover or Dokku today | A dry run first, and the old server keeps serving | levelrail-cli import platform coolify --dry-run |
| Running a homelab or a free Arm VM | arm64 builds and a minimal profile | Server profiles, Arm VM |
Let your agent ship. You keep the keys.
Deploy this repo to my Levelrail and tell me when it is live.
- Inside the token's limits. The tool list follows the abilities of the token: a read token never sees a deploy tool, and
--readonlyrefuses to start with a write token. - Writes need a confirmation. Mutations are confirm-gated and off until you pass
--allow-write. - Cheap to load. About 2.4k tokens of tools by default, 240+ on demand in toolsets (tool surface).
- Audited. Every call is recorded with the caller surface (CLI, dashboard, MCP or API).
- Not in the control loop. AI never sits in the reconcile path, so a wrong guess cannot wedge your servers.
- A skill, not just tools. It deploys, waits for the rollout to converge, reads the failure and rolls back (skill, MCP, threat model).
Same job, fewer moving parts, more proof.
| Levelrail | Coolify | Dokploy | CapRover | Dokku | |
|---|---|---|---|---|---|
| Agent access (MCP) | Read and write, ability-scoped, confirm-gated, audited | Official server, read-only | MCP server repo exists | Not documented | Not documented |
| Switching in | Dry-run importers for all four, old server keeps serving | n/a | n/a | n/a | n/a |
| Node control | Reverse-dialed agent | SSH + CLI | SSH + Engine API | Swarm API | Local bash |
| Built-in metrics and logs | Yes | Opt-in add-on | Separate binary | No | No |
| Rollback | Pinned images, readiness-gated | Retained images | Swarm rollback | Manual | Default scheduler: none |
| Backup verification | Automatic | Non-empty check | None | None | No backups |
| Audit log | Hash-chained, verifiable | Not documented | Not documented | Not documented | Not documented |
Cells state only what each project's public docs say (last checked 2026-11-07), and "Not documented" means we found nothing, not that it is missing. Coolify's MCP: their docs. This is positioning, not a ranking. Levelrail is the youngest project here, with fewer users and less production mileage. Sourced details: Comparison.
| Claim | Evidence |
|---|---|
| Every feature labelled stable or beta | Feature status |
| Survives failures | Resilience: disk full, link loss, database damage, safe-mode boot |
| Measured, not promised | Benchmarks |
| Tested against real containers | CI and test/e2e |
| Signed releases | Sigstore signature and provenance attestation, verify them |
| Honest about gaps | Known limits |
flowchart LR
C["Dashboard, CLI, MCP server"] --> API
subgraph CP["Control plane (one Go binary)"]
API["HTTP API"] --> R["Level-triggered reconciler"]
R --> S[("SQLite state")]
O["Built-in metrics and logs"]
I["Embedded Caddy ingress and TLS"]
end
R -->|"gRPC, mTLS"| A["Node agents (dial out)"]
A --> D["Docker Engine API"]
I --> D
Details: Architecture.
Next.js with Postgres · Django with Postgres · Push to deploy with GitHub · How deploys stay safe · Scale to zero on a small VPS
Maintain an open-source app? Add a one-click button: Deploy button.
Does it need Kubernetes? No. One Go binary with a Docker runtime.
What does it cost? Nothing. Apache 2.0, one edition, no license key. You pay for your own servers (Pricing).
Can I migrate from Coolify? Yes. levelrail-cli import platform coolify --dry-run shows what would be created first, and the old server keeps serving (Migrate).
How do I upgrade? Settings > Updates or levelrail-cli upgrade --plan. It verifies the release, snapshots your data and rolls back by itself if the new release is unhealthy (Upgrade safely).
Discussions · Issues · Discord · support@levelrail.com · Security policy · Contributing · llms.txt and AGENTS.md for AI agents
If Levelrail saves you a weekend, a star helps other self-hosters find it.
Apache 2.0, see LICENSE. Built by Gagan Deep Singh of GLINR STUDIOS and theSVG.
Powered by GLINR STUDIOS · icon from theSVG








