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/ 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>
Docker-AIO: everything in one image
warp-aio holds the homeserver, the admin panel, the web client and
PostgreSQL 17 in one image, built from Dockerfile.
entrypoint.sh starts them in one container; if one
exits, the rest are stopped and the container's restart policy brings the
set back.
| File | Database | Image |
|---|---|---|
docker-compose.sqlite.yml |
SQLite, /data/warp.db |
built here |
docker-compose.pocketbase.yml |
PocketBase (embedded driver), /data/pb_data |
built here |
docker-compose.postgresql.yml |
PostgreSQL in the container, /data/postgres |
built here |
docker-compose.*.prod.yml |
as above | pulled, never built |
Everything lives in the warp-data volume, mounted on /data.
cd Docker-AIO
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.
The embedded PostgreSQL listens only on a Unix socket inside the container, so it needs no password and is not reachable from outside.
Switches
| Variable | Default | |
|---|---|---|
WARP_AIO_ADMIN |
true |
false runs no admin panel |
WARP_AIO_WEB |
true |
false runs no web client |
WARP_AIO_EMBEDDED_POSTGRES |
false |
true starts the bundled PostgreSQL |
The other settings are those of Docker/.
Prod files
The .prod.yml files pull $WARP_REGISTRY/warp-aio:$WARP_VERSION
(defaults ghcr.io/dariuszjaniak and latest). Push the image first:
docker build -t $WARP_REGISTRY/warp-aio:$WARP_VERSION -f Docker-AIO/Dockerfile .
docker push $WARP_REGISTRY/warp-aio:$WARP_VERSION