TrueNAS SCALE

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:30080first 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.)