Back up Loomplane itself
One PostgreSQL database holds everything. Back it up, restore it, and keep the secret key away from those backups.
You need a Linux host with Docker Engine and Compose 2.24.4 or newer, and a hostname pointed at it. Start with 2 CPU cores and 8 GB of RAM. The loomctl CLI installs with Homebrew or Scoop.
Download the Docker bundle from a GitHub release, check it against SHA256SUMS and extract it into /srv/loomplane. Set LOOMPLANE_IMAGE, LOOMPLANE_DOMAIN and ACME_EMAIL in .env, then start the stack. Open your hostname and create your account.
make dev gives you hot reload$ umask 077$ cp .env.example .env$ openssl rand -base64 32 # LOOMPLANE_SECRET_KEY$ openssl rand -hex 32 # POSTGRES_PASSWORD$ docker compose config --quiet$ docker compose pull$ docker compose up -d --wait --wait-timeout 240 api, worker, postgres and caddy are healthy# The CLI, on your laptop$ brew install xraph/tap/loomctl
| Variable | Default | What it does |
|---|---|---|
LOOMPLANE_DATABASE_URL | required | PostgreSQL. Falls back to DATABASE_URL, which App Platform and Render set for you |
LOOMPLANE_SECRET_KEY | development key | 32 random bytes, base64. Every credential and secret is encrypted with keys derived from it |
LOOMPLANE_PUBLIC_URL | http://localhost:8780 | Where people reach Loomplane; https in production |
LOOMPLANE_ENVIRONMENT | development | development, staging or production |
LOOMPLANE_PLANNING_APPROVAL_WINDOW | 168h | How long a plan waits for a decision |
LOOMPLANE_DRIFT_INTERVAL | 30m | How often deployments are checked for drift; 0 turns it off |
LOOMPLANE_GITHUB_* | unset | The GitHub App for private repositories |
One PostgreSQL database holds everything. Back it up, restore it, and keep the secret key away from those backups.
One migration pass over every library's schema, and a schema guard that refuses to start against a database it doesn't understand.
Metrics and health checks for the API and the analysis worker, so you can watch Loomplane like any other service.
Proxy /api/v1/realtime/ws with WebSocket upgrades and leave the SSE route unbuffered. Replicas share one durable event sequence.
An empty SMTP host turns email off, and invitations show a link you can send yourself.
The same Go process serves the dashboard and API and runs deployment workflows. The worker analyzes repositories.
Open source and self-hosted. Your applications don't need Forge, or Go.
docker pull ghcr.io/xraph/loomplane:latestServerbrew install xraph/tap/loomctlCLI