Files
Warp/Docker/README.md
T
tajniak81andClaude Opus 5.5 6236f5d9a8
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Test (windows-latest) (push) Canceled after 0s
CI / Storage tests on PostgreSQL (push) Canceled after 0s
CI / Complement (federation off) (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
CI / Smoke test the binary (push) Canceled after 0s
CI / Admin panel (push) Canceled after 0s
CI / Web client (push) Canceled after 0s
CI / Desktop client (ubuntu-24.04) (push) Canceled after 0s
CI / Desktop client (windows-latest) (push) Canceled after 0s
Docker and Docker-AIO compose setups for SQLite, PocketBase and PostgreSQL
Docker/ runs the homeserver, admin panel and web client as separate
containers built from the existing Dockerfiles; Docker-AIO/ runs all
three (and optionally PostgreSQL) in one warp-aio image, supervised by
a small entrypoint. Each has a build file and a .prod.yml that only
pulls images from WARP_REGISTRY at WARP_VERSION.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:52:10 +02:00

2.1 KiB

Docker: one container per component

The homeserver (warp), the admin panel (warp-admin) and the web client (warp-web) as separate images, built from Dockerfile, apps/admin/Dockerfile and apps/web/Dockerfile.

File Database Images
docker-compose.sqlite.yml SQLite, in the warp-data volume built here
docker-compose.pocketbase.yml PocketBase, embedded in the homeserver, in warp-data built here
docker-compose.postgresql.yml PostgreSQL 17, its own container built here
docker-compose.*.prod.yml as above pulled, never built
cd Docker
WARP_SERVER_NAME=matrix.example.org docker compose -f docker-compose.sqlite.yml up -d --build
docker compose -f docker-compose.sqlite.yml exec warp warp create-account --username admin --admin

Homeserver on :8008, admin panel on :8009, web client on :8080 (WARP_PORT, WARP_ADMIN_PORT, WARP_WEB_PORT move them). Put a TLS-terminating reverse proxy in front before exposing them; see docs/deployment.md.

PocketBase is a database driver inside the homeserver, not a separate server, so the PocketBase files have no PocketBase container.

Prod files

The .prod.yml files pull $WARP_REGISTRY/warp, warp-admin and warp-web at tag $WARP_VERSION (defaults ghcr.io/dariuszjaniak and latest). Push the images there first:

docker compose -f docker-compose.sqlite.yml build
for i in warp warp-admin warp-web; do
  docker tag $i:latest $WARP_REGISTRY/$i:$WARP_VERSION
  docker push $WARP_REGISTRY/$i:$WARP_VERSION
done

docker-compose.postgresql.prod.yml refuses to start without WARP_POSTGRES_PASSWORD.

Settings

Variable Default
WARP_SERVER_NAME localhost
WARP_PUBLIC_BASEURL http://localhost:8008
WARP_REGISTRATION_ENABLED false
WARP_FEDERATION_ENABLED false
WARP_POSTGRES_PASSWORD warp (required in prod)
WARP_PB_S3_* S3 media for PocketBase, off

Any other setting from docs/configuration.md can be added to the warp service's environment.