Skip to main content

Overview

The supported private deployment runs on one Linux VM with Docker Compose. It starts the control plane, the WebUI, PostgreSQL, Redis and Caddy (automatic TLS). The control plane creates one sandbox container and one persistent volume per employee.
This page is for company-hosted deployments with OIDC SSO and central audit. For personal use, use the Desktop App or Local Deployment.

Architecture

  • Caddy terminates TLS and routes /api, /proxy, /ws, /llm-relay, /tool-relay, /tunnel-relay, /vnc to the control plane; everything else goes to the WebUI.
  • The control plane uses the host Docker socket to create sandboxes and proxies WebSocket/HTTP traffic to them.
  • PostgreSQL stores control-plane data; each sandbox keeps its workspace and memory in a Docker volume.

Prerequisites

  • Ubuntu 22.04/24.04, 8 vCPU / 16 GB RAM
  • Docker 24+ with Compose v2
  • A DNS record for your domain; ports 80/443 reachable
  • OIDC identity provider (Okta, Entra ID, Keycloak, etc.)
  • Signed enterprise license JWT and the vendor public key
  • Optional: runsc (gVisor) on the host for stronger sandbox isolation

Quick start

DOCKER_GID is the group id of the host Docker socket:
By default the sandbox runtime is docker. If runsc is installed, set MYRM_CP_RUNTIME=docker_gvisor in .env.

Configuration

The OIDC redirect URI is:

First administrator and organization

  1. Sign in once through OIDC.
  2. Create the organization owned by that user:
  3. Put the printed owner_user_id into MYRM_CP_ADMIN_USER_IDS in .env and restart the control plane:
A browser setup wizard is planned; the CLI replaces the previous manual SQL + JWT API flow.

Using an existing reverse proxy

Caddy is optional: it runs under the caddy Compose profile (COMPOSE_PROFILES=caddy in .env). If you already run Nginx/ALB on the same host, remove that line and route: Terminate TLS at your proxy; keep the CP API port private.

Operations

Backup: run the bundled script (PostgreSQL + cp-data + SHA256 + retention):
Restore is destructive and requires an explicit --yes flag; test it on a fresh VM before switching traffic.

Scope and limits

  • Single VM only. No HA, clustering or multi-region failover.
  • Small teams; benchmark with your workload before rollout and size up or split by team as needed.
  • OIDC only. SAML and SCIM are not part of this deployment.
  • No BYOK/KMS or air-gapped mode.
  • Linux only (the sandbox runtime uses the host Docker daemon).
  • Supported OS: Ubuntu 22.04/24.04 with Docker from the official repository.

Security notes

  • Mounting the Docker socket gives the control plane host-level container control. Restrict SSH and Docker access to trusted administrators.
  • Sandboxes drop privileges and unnecessary capabilities, and enforce CPU/memory/PID limits. Docker security options add seccomp/AppArmor. Install runsc and use docker_gvisor when stronger isolation is required.
  • Each employee has a separate sandbox and volume. Administrators can review audit events and usage; configure retention and access according to company policy.
  • Keep .env out of version control and rotate the JWT/master keys only with a planned migration.