Planisfy
Self hosting

Docker Compose Self-Hosting

Start, inspect, and validate the current Planisfy Docker Compose stack.

Docker Compose Self-Hosting

Run these commands from the repository root.

Start the stack

cp .env.example .env
scripts/self-host-setup.sh
docker compose --env-file .env -f infra/docker/docker-compose.yml --profile with-minio up -d
pnpm db:migrate

The with-minio profile starts local S3-compatible storage and initializes the artifact bucket. It is the recommended self-host storage path because it matches production object-storage behavior and supports direct root-agent artifact uploads.

Default ports

ServiceURL
Marketinghttp://localhost:3000
Consolehttp://localhost:3001
Docshttp://localhost:3002
Adminhttp://localhost:3003
APIhttp://localhost:4000
Martinhttp://localhost:3005
Valhallahttp://localhost:3007
Peliashttp://localhost:3100
Elevationhttp://localhost:4011
Static rendererhttp://localhost:4300

Inspect the stack

docker compose --env-file .env -f infra/docker/docker-compose.yml ps
docker compose --env-file .env -f infra/docker/docker-compose.yml logs -f api
curl http://localhost:4000/health
curl http://localhost:4000/health/detailed
curl http://localhost:4000/setup/preflight

In production, detailed health and root preflight diagnostics require internal authorization. Console-mounted preflight remains available to authenticated Console sessions.

Create the first account

After migrations complete, open:

http://localhost:3001/sign-up

Create the first Console account, then verify you can open Styles, Tilesets, API Keys, Usage, and Operations.

Optional profiles

docker compose --env-file .env -f infra/docker/docker-compose.yml --profile with-minio up -d
docker compose --env-file .env -f infra/docker/docker-compose.yml --profile with-proxy up -d traefik
docker compose --env-file .env -f infra/docker/docker-compose.yml --profile with-supervisor up -d self-host-supervisor admin
TILE_DELIVERY_MODE=worker docker compose --env-file .env -f infra/docker/docker-compose.yml --profile with-tile-worker up -d api tile-worker

Smoke checks

Use the repository scripts after the stack is running:

pnpm smoke:self-host-default-map
pnpm e2e:product-loop
pnpm smoke:self-host-backup-restore

For a new environment, start with health and preflight, then the default map smoke, then the full product loop.

On this page