The released image is multi-arch (amd64, arm64), distroless, signed
with cosign (since v1.7.0 — a podman sigstoreSigned policy
verifies the platform image it pulls), and runs
as a non-root user. Storage defaults to SQLite, so one compose service
and one named volume are the complete install on any box with
Docker. If the box is a TrueNAS SCALE machine, use the
TrueNAS guide instead — same image,
pasted into the Apps screen.
The compose file
Save as docker-compose.yml. The server applies its schema
on boot, so there is no migration step. The one-shot init
service exists because the image runs as uid 65532 and a fresh named
volume starts root-owned. It hands the volume to the server once
and exits:
services:
init:
image: busybox
command: chown 65532:65532 /data
volumes:
- eagraiclainne-data:/data
eagraiclainne:
image: git.eagraiclainne.ie/eagraiclainne/app:v2.2.0
restart: unless-stopped
ports:
- "8080:8080"
environment:
EAG_DB_PATH: /data/eagraiclainne.db
volumes:
- eagraiclainne-data:/data
depends_on:
init:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "/server", "healthcheck"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
eagraiclainne-data:
The image is distroless — no shell, no curl — so the health check is
a subcommand of the server binary itself: /server healthcheck
dials the listening port and exits 0 or 1.
All the family's data lives in the eagraiclainne-data volume
as a single SQLite file. Back that up and you have backed up the family
(or use the export archive).
EAG_DB_PATH line. Set EAG_DB_DRIVER: postgres
plus the EAG_DB_* connection settings from the
environment reference, and add a
postgres:17 service beside it.Run and verify
docker compose up -d
docker compose ps # eagraiclainne up, init exited (0)
docker compose logs eagraiclainne # schema apply, then serving
curl -sS http://localhost:8080/ | head -c 200
Then open http://your-server:8080 —
first sign-in takes it from
there.
Upgrades
Releases are tagged. To upgrade, edit the image tag, pull, and re-create the service:
sed -i 's/eagraiclainne:v2.1.2/eagraiclainne:v2.2.0/' docker-compose.yml
docker compose pull eagraiclainne
docker compose up -d eagraiclainne
Schema changes apply themselves on the new binary's first boot. After the upgrade, the web app greets each member with a what's-new sheet, and Admin → System shows the release notes beside the version check.