Levelrail
Exports logs to Better Stack for centralized log management and observability.
Integrates with Bitbucket for git webhooks and preview environments per pull request, enabling deployments from Bitbucket repositories.
Uses embedded Caddy as ingress to provide automatic TLS certificates and routing for deployed applications.
Provides managed ClickHouse database instances with scheduled backups, restore, and checksum verification.
Exports logs to Datadog for centralized log management and monitoring.
Sends alerts and notifications to Discord channels for deployment, crashloop, and certificate expiry events.
Integrates with Docker Engine API to manage containers as the runtime for deployed applications, without SSH or Docker CLI.
Integrates with Gitea for git webhooks and preview environments per pull request, enabling deployments from Gitea repositories.
Integrates with GitHub for git webhooks and preview environments per pull request, enabling deployments from GitHub repositories.
Integrates with GitLab for git webhooks and preview environments per pull request, enabling deployments from GitLab repositories.
Exposes a Loki-compatible read API for Grafana to query logs and visualize observability data.
Provides managed MariaDB database instances with scheduled backups, restore, and checksum verification.
Provides managed MongoDB database instances with scheduled backups, restore, and checksum verification.
Provides managed MySQL database instances with scheduled backups, restore, and checksum verification.
Exports logs to New Relic for centralized log management and observability.
Sends alerts and notifications via ntfy for deployment, crashloop, and certificate expiry events.
Sends alerts and notifications to PagerDuty for deployment, crashloop, and certificate expiry events.
Supports Prometheus remote write to send metrics for monitoring and alerting.
Provides managed Redis database instances with scheduled backups, restore, and checksum verification.
Provides Sentry-compatible error tracking for application errors, with a waterfall view for traces.
Sends alerts and notifications to Slack channels for deployment, crashloop, and certificate expiry events.
Sends alerts and notifications via Telegram for deployment, crashloop, and certificate expiry events.
Integrates WireGuard mesh networking to connect multiple servers securely without opening inbound ports.
Levelrail is an open source, self-hosted deployment platform that turns one or more Linux servers into a private cloud: push to a git repo and get a running app with HTTPS, logs, metrics, and one-click rollback. It ships as a single Go binary for the control plane, uses Docker as the runtime, and is licensed under Apache 2.0.
It is built for people running 3 to 50 services on 1 to 10 machines who do not want to learn Kubernetes. Each server runs a small agent that talks to Docker's Engine API directly, so there is no SSH and no shelling out to the docker CLI. Metrics and logs are part of the core, not a Grafana you install afterwards.
Every feature is labelled stable or beta, with the evidence behind it, on thefeature status page. New here? Start with Try it in two commands.
Why Levelrail
You want | Levelrail gives you |
Heroku or Vercel style deploys on your own servers | Push to git, get HTTPS, previews and one-click rollback. Deploying apps |
To know why an app was slow at 3am | Logs, traces, errors and metrics built in, with deploy markers. No Grafana stack to run. Observability |
Small servers that stay cheap | Idle apps sleep and wake on the next request. Sleep when idle |
More machines without opening ports | Agents dial out over mTLS. No SSH, no inbound ports. Multi-node |
AI tools that can help safely | A CLI, an MCP server and an agent skill, all over one permissioned API. For AI agents |
Related MCP server: Coolify MCP Server
Try it in two commands
You need a Linux server (amd64 or arm64) with systemd, root access, and ports 80 and 443 open. Docker is installed for you if it is missing.
curl -fsSL https://levelrail.com/install.sh | sudo shThe installer checks the host, starts Levelrail as a systemd service, and prints a dashboard URL with a one-time setup token. Open it, choose a password, and the setup wizard walks you through a domain, a git provider, and your first app. Then deploy a repository from the CLI the installer put on the box:
levelrail-cli import https://github.com/your-org/your-app --deployWithout --deploy it prints the deployment plan and stops. Prefer containers, a pinned version, or a source build? See Installing and Docker. Full walkthrough: Getting started.
What you get
Area | What it does | Docs |
Deploys | Rolling, recreate, or blue-green, gated on real readiness probes. Import a repo URL, an image, a | |
Domains and TLS | Embedded Caddy ingress with automatic certificates and routing. | |
Databases | Postgres, Redis, MySQL, MongoDB, MariaDB, KeyDB, Dragonfly, and ClickHouse, with scheduled backups, restore, and an automatic re-download and checksum after every backup. | |
Observability | Node-local metrics and full-text log search with deploy markers, per-app log pipelines (multiline, redact, drop, parse), a Loki-compatible read API for Grafana, Prometheus remote write, OTLP traces with a waterfall, Sentry-compatible error tracking, and log exports to New Relic, Datadog, Axiom and Better Stack. | |
Safety | Prior images are pinned, so rollback is always one click and garbage collection cannot remove the target. Deploy approvals and freezes. | |
Access | Allow and Deny IAM policies scoped to a single app or database, with an audit log and CSV export, in the free Apache 2.0 core. | |
Automation | One HTTP API behind the dashboard, a CLI, and an MCP server. AI never sits in the reconciliation path. |
Sleep when idle. An app with no requests for a time you choose stops and uses no memory or CPU, then starts on the next request. See Sleep when idle.
Many servers, no open ports. Add nodes with a one-time token. Agents dial out over mTLS, with WireGuard mesh networking, internal DNS, cordon, and drain. See Multi-node.
Git-native. GitHub, GitLab, Bitbucket, and Gitea webhooks and preview environments per pull request.
A large catalog of one-click templates for self-hosted services, each a compose file the platform deploys and manages. See Template catalog.
Alerting. Threshold, crashloop, and certificate expiry rules delivered over many notification channels, including Slack, Discord, email, Telegram, PagerDuty, ntfy, and a generic webhook.
Pipelines. CI/CD runs on your own nodes, defined in a YAML file. See Pipelines.
A tour of the dashboard
Every image is captured from a real, running control plane by scripts/screenshots/capture.sh. Click one to open the guide for that screen.
How it works
flowchart LR
Git["Git push<br/>or import"] --> API
subgraph CP["Control plane (one Go binary)"]
API["HTTP API<br/>+ dashboard"] --> DB[("SQLite")]
API --> REC["Level-triggered<br/>reconciler"]
API --> ING["Caddy ingress<br/>(automatic TLS)"]
API --> BLD["BuildKit"]
end
REC <-->|"gRPC, mTLS<br/>(agent dials out)"| AG1["Node agent"]
REC <-->|"in-process on<br/>a single node"| AG0["Local agent"]
AG1 --> D1["Docker Engine API"]
AG0 --> D0["Docker Engine API"]
CLI["levelrail-cli<br/>and MCP server"] --> APIControl plane (
cmd/levelrail): one Go binary with the dashboard embedded. It reconciles declarative desired state against observed Docker state, the Kubernetes controller pattern without the rest of Kubernetes.Node agent (
cmd/levelrail-agent): dials out to the control plane and streams Docker events up. In single-node mode it runs in-process, so one node and ten nodes share one code path.Ingress: Caddy embedded as a library. Builds: BuildKit as a library, with Railpack detection for apps without a Dockerfile. State: SQLite in WAL mode, pure Go.
CLI and MCP:
levelrail-cliandlevelrail-mcpare thin clients over the same HTTP API under/api/v1.
Details: Architecture.
How it compares
Most self-hosted platforms in this category manage servers by SSHing in and shelling out to the docker CLI, then parsing text, which tends to force polling loops. Levelrail uses a reverse-dialed agent and a level-triggered reconciler instead.
Levelrail | Coolify | Dokploy | CapRover | Dokku | Kamal | |
Node control | Reverse-dialed agent | SSH + CLI | SSH + Engine API | Swarm API | Local bash | SSH, one-shot |
Orchestration | Level-triggered reconciler | Compose | Swarm | Swarm | Bash scheduler | None |
Built-in metrics and logs | Yes | Opt-in add-on | Separate binary | No | No | No |
Rollback | Pinned images, readiness-gated | Health check off by default | Swarm rollback | Manual | Default scheduler: none | Proxy health gate |
Backup verification | Automatic, all 8 engines | Non-empty check | None | None | No backups | No backups |
This is positioning, not a ranking, and all of them are worth using. The one area where Levelrail trails is breadth of templates: a smaller curated catalog than Coolify's, an intentional bet on curation (see ADR 015). The full, sourced comparison is in Comparison.
Footprint. Measured on an Apple M4 Max with a dev build and a loopback client, the idle control plane used 67.7 MB RSS and 0.03% CPU with 0 apps, and 90.8 MB RSS and 1.60% CPU with 500 suspended apps. No containers were running in that benchmark, so real apps add load it does not measure. Method and caveats: Performance.
Status
Releases are listed on the releases page, and every feature is labelled stable or beta, with the evidence behind it, on Feature status. Single node is the best-tested path. Anything marked beta works but has less real-world mileage, and a few areas stay off by default behind APP_EXPERIMENTAL. The roadmap lists what is done and what is next.
Guides
Step by step walkthroughs, each tested against a real install:
Guide | What you learn |
The overview, with an FAQ | |
Repo to HTTPS in about ten minutes | |
Plus the four errors everyone hits | |
Webhooks, previews and the delivery log | |
Health gates, blue-green cutover, rollback | |
Observability and Grafana | |
Run many projects on one box | |
Static sites from git | |
Where each one fits |
For AI agents and crawlers
Agent skill:
skills/levelrail/SKILL.mdteaches a coding agent to deploy, wait, diagnose and roll back safely.MCP server:
levelrail-mcpexposes the same API and permission model. Start inread-onlymode. See MCP and AI control.Repo guide:
AGENTS.mdfor working in this codebase, andllms.txtas the index.Docs for LLMs: llms.txt and llms-full.txt.
Documentation
docs.levelrail.com: the hosted docs, with getting started, architecture, app spec reference, and the full index.
docs.levelrail.com/llms.txt: the docs index in a plain format for LLMs and AI assistants.
docs/: the same content as Markdown, for browsing on GitHub.
Start here: Getting started, Installing, App spec reference, CLI reference.
Community and support
GitHub Discussions: questions, ideas, show and tell.
GitHub Issues: bug reports and feature requests.
GLINR Discord: live chat with maintainers and other users, with a dedicated
#levelrailforum channel.support@levelrail.com: direct email support.
Security policy: report a vulnerability privately.
Contributing: dev loop, tests, and commit conventions.
Build from source
Needs Go 1.26 or newer and Docker.
go build ./cmd/levelrail
go build ./cmd/levelrail-agent
go build ./cmd/levelrail-cliThe frontend is a Vite project in web/ that is embedded into the control plane at build time. See Installing. Generic, stdlib-only Go packages (SSRF-safe HTTP client, cron parsing, health probes, and more) live in a separate module, kit/, usable without the platform.
Contributors
Star the repo
If Levelrail saves you a weekend, a star on GitHub helps other self-hosters find it. Bug reports and honest feedback help more.
License
Apache 2.0, see LICENSE.
Founding partners
Founding partner sites and libraries, from the same studio:
A searchable library of brand SVG icons for developers and designers. | |
Open-source auth for AI agents and humans, with MCP OAuth 2.1 and audit. | |
Structured multi-agent decisions for teams, with verdicts and action items. |
Levelrail is built by Gagan Deep Singh, founder of GLINR STUDIOS and theSVG. Say hello at thegdsks.com.
Powered by GLINR STUDIOS · icon from theSVG
Related MCP Connectors
Deploy and manage applications, databases, domains, and git repos
Check if a repo will deploy, plan a deploy to your own cloud, and see status, logs and redeploys.
Deploy services, add databases, run agents, read logs, check vulnerabilities and publish pages.
Deploy apps on your cloud. Create environments, configure infrastructure, and monitor jobs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceInteract with Render (https://render.com) and easily deploy your services47 npm16MIT
- AlicenseDqualityFmaintenanceProvides programmatic and CLI tools for managing Coolify deployments, allowing users to control applications, services, databases, and infrastructure through natural language or command line.1044 npm7Good Luck With That Public
- AlicenseAqualityDmaintenanceEnables deployment and management of applications on the Citizen platform from git repositories or local files. It allows AI assistants to monitor deployment logs, handle authentication, and automatically fix build errors using intelligent error analysis.1111 npmMIT

Lizard MCPofficial
AlicenseAqualityBmaintenanceRun code in Lizard Sandboxes and manage apps on Lizard (lizard.build). Includes 56 tools for sandbox files and commands, deployments, managed databases, logs, metrics, secrets and domains. Connect to the hosted MCP server over Streamable HTTP with OAuth.563MIT