Files
Warp/Docker-AIO/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

48 lines
1.8 KiB
Markdown

# 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`](Dockerfile).
[`entrypoint.sh`](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`.
```sh
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/](../Docker/README.md).
## Prod files
The `.prod.yml` files pull `$WARP_REGISTRY/warp-aio:$WARP_VERSION`
(defaults `ghcr.io/dariuszjaniak` and `latest`). Push the image first:
```sh
docker build -t $WARP_REGISTRY/warp-aio:$WARP_VERSION -f Docker-AIO/Dockerfile .
docker push $WARP_REGISTRY/warp-aio:$WARP_VERSION
```