自分で · Self-host
Run Musubi on your own server.
One docker-compose.yml: a prebuilt API image and an embedded Postgres. No cloning, no build step. Your calendar data stays on infrastructure you control — MIT-licensed, yours to keep.
# 1 — grab the compose file and an env file next to it
curl -O https://raw.githubusercontent.com/frgtn-dot-dev/musubi/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/frgtn-dot-dev/musubi/main/.env.example
# 2 — set POSTGRES_PASSWORD, BETTER_AUTH_SECRET and BETTER_AUTH_URL in .env
# 3 — start it
docker compose up -dThe hosted service stays free during the open beta — self-hosting is for when you'd rather run it yourself.
構成 · What runs
What you're running.
家
Two containers
The prebuilt
frgtndev/musubi API image and a Postgres 17 database. The API migrates the schema on startup — nothing to run by hand.鍵
Your data, your keys
Everything lives in a Postgres volume on your machine. No telemetry home, no accounts on our servers, no third parties in the loop.
更
Simple upgrades
Pull the new image and restart —
docker compose pull && docker compose up -d. One API process per database, enforced by an advisory lock.必要なもの · Requirements
What you need.
- Docker with Compose v2 — that's the whole requirement for the comfortable path above.
- A domain and a reverse proxy (Caddy, nginx, Traefik) if you want HTTPS. Point it at the published port (
7531by default) and setBETTER_AUTH_URLto your publichttps://origin. - Building from source instead? Node 22.12+, Corepack and Postgres 15+. Comment out the
image:line in the compose file and uncomment thebuild:block.
その先へ · Going further
Going further.
Deploying with Dokploy? Use docker-compose.dokploy.yml from the repo instead of the plain stack. The full walkthrough — environment variables, HTTPS, backups and upgrades — lives in the self-hosting runbook. Stuck? Open an issue on GitHub or ask in the Discord.