Skip to content

Introduction

Mikrom takes an application from a Git repository to a running, HTTPS-served deployment inside an isolated microVM. It is built as a set of Rust services you can operate yourself, plus a Zig guest init and an eBPF data-plane helper.

Git repo ──► mikrom-builder ──► OCI image ──► mikrom-scheduler ──► mikrom-agent ──► microVM
External traffic ──► mikrom-router (ingress + TLS) ───────────────────────────────────┘
  • You create an app and point it at a Git URL.
  • A deployment builds the repo into an OCI image. If the repo has a Dockerfile, it is built with Docker; otherwise the build is detected automatically with Railpack.
  • The scheduler places the deployment on a worker, and the agent boots a microVM for it.
  • The router publishes the app at <app-name>.<apps-domain> and obtains a TLS certificate automatically.
  • External traffic never passes through the control plane — it enters through the router and is routed straight to the app’s microVM.
  • Git-based deployments with build caching and a per-app history.
  • MicroVM isolation (Firecracker or Cloud Hypervisor), one microVM per deployment.
  • Automatic hostname and HTTPS for every app.
  • Activate/rollback to any previous deployment.
  • Pause, resume, and stop a running deployment.
  • Scale-to-zero after inactivity, plus fixed replicas or CPU/memory-based autoscaling (0–3 replicas).
  • Streaming logs and metrics; health checks.
  • Neon-backed PostgreSQL with branches, backups, and snapshots.
  • Persistent volumes with snapshots.
  • MicroVM snapshots for a running deployment.
  • Personal access tokens, GitHub App integration and deploy-on-push, per-app security-group rules, platform notifications, and audit logging.
  • A REST API (/v1, Bearer auth) and a dashboard.
  • Custom domains are not self-service. Every app is reachable at its generated <app-name>.<apps-domain> hostname; bringing your own domain is not exposed through the API or CLI. See Domains and TLS.
  • Team roles / RBAC. Projects group resources, but fine-grained per-member authorization is not implemented.
  • Multi-region placement. Scheduling is single-cluster.
  1. Install the CLI.
  2. Deploy your first app.