Eagraí Clainne runs on TrueNAS SCALE as a Custom App — no catalog fork,
no chart. Each release attaches a ready-to-paste compose file
(eagraiclainne-truenas_v1.0.0.yaml) to the
releases page,
pinned to that release's image. The database lives on a dataset you
own, so snapshots and replication work the same as for the rest of the
pool.
The dataset
Create a dataset for the database, for example
tank/apps/eagraiclainne, and hand it to the container's
non-root user (uid 65532) — the same step the compose guide's
init service does, done once in the NAS shell:
chown 65532:65532 /mnt/tank/apps/eagraiclainne
Registry access
The registry is the private Forgejo host. Add the credential once
under Apps → Configuration → Manage Container Registries:
host forgejo.lihnet.mallon.ie, your username, and a token
with package:read.
The Custom App
Go to Apps → Discover → Custom App → Install via YAML and
paste the release's compose file. It looks like this — swap the volume
path for your dataset, and pick another host port if
30080 is taken:
services:
eagraiclainne:
image: forgejo.lihnet.mallon.ie/eagraiclainne/app:v1.0.0
restart: unless-stopped
user: "65532:65532"
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges=true
ports:
- "30080:8080"
volumes:
- /mnt/tank/apps/eagraiclainne:/data
environment:
EAG_DB_PATH: /data/eagraiclainne.db
healthcheck:
test: ["CMD", "/server", "healthcheck"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
The image is distroless, so the health probe is the server binary's
own healthcheck subcommand — TrueNAS shows the app as
Running once it passes. The server applies its schema on boot.
There is no migration step.
Run and verify
Save, and TrueNAS pulls the image and starts the app. Then open
http://your-nas:30080 —
first sign-in takes it from
there. For HTTPS, terminate TLS in whatever fronts your NAS and proxy
to the same port — the server speaks HTTP/1.1 and h2c on it.
Upgrades
To upgrade, edit the app's YAML to the next release's image tag
and save. TrueNAS recreates the container, the database stays on
the dataset, and schema changes apply themselves on the new binary's
first boot. (The repository's
deploy/truenas/custom-app.yaml uses the latest
tag instead — with that one, TrueNAS watches the tag's digest and
surfaces Update available as releases land.)