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>
48 lines
1.8 KiB
Markdown
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
|
|
```
|