The released image is multi-arch (amd64, arm64), distroless, 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.
Registry access
The registry is the private Forgejo host. Sign in once with a token that
has package:read:
docker login forgejo.lihnet.mallon.ie # username + token
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: forgejo.lihnet.mallon.ie/eagraiclainne/app:v1.0.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:v1.0.0/eagraiclainne:v1.0.1/' docker-compose.yml
docker compose pull eagraiclainne
docker compose up -d eagraiclainne
Schema changes apply themselves on the new binary's first boot.