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>
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.