Files
truenas-stacks/docs/servers/SERENITY.md
Fizzlepoof c7eaf1ab8d
Some checks failed
secret-guardrails / artifact-secret-scan (push) Has been cancelled
secret-guardrails / gitleaks (push) Has been cancelled
Document Serenity source app container cleanup
2026-05-26 02:49:29 +00:00

4.1 KiB

Serenity

Current NAS, media-ingestion, and CPU-based AI helper host. Planned to retire after the upgraded PD build absorbs its storage role.

Hardware

Component Details
IP (LAN) 10.5.30.5
IP (Tailscale) 100.94.87.79
OS Unraid 7.2.4
CPU Dual Intel Xeon X5690 (6c/12t each — 24 threads total)
RAM 102 GB
GPU None (Matrox G200 IPMI only)

Roles

  • NAS — primary storage for Docker volumes, media, and backups via NFS
  • Media ingestion — full ARR stack (Sonarr, Radarr, Prowlarr, qBittorrent, etc.)
  • Reranker host — CPU-based TEI reranker for the AI RAG pipeline
  • Pangolin site host — Serenity's local Newt is intentionally kept because Pangolin tunnels Serenity resources through that Newt instead of targeting Serenity resources from PD or NOMAD over Serenity LAN IPs

Services

NFS Exports

Export Mount on PD Purpose
/mnt/user/data /mnt/unraid/data General Docker volumes
/mnt/user/immich /mnt/unraid/immich Immich photo library

Note: NFS mounts on PD are not automatic at boot. Run after every TrueNAS restart:

sudo bash /mnt/tank/docker/scripts/mount-unraid-nfs.sh

Important: if PD remounts /mnt/unraid/data or /mnt/unraid/immich after media containers are already running, restart the bind-mounted consumers so they repoint at the live NFS mount instead of the pre-remount underlay. Current restart set: Plex, Audiobookshelf, Calibre-Web, and Immich Server.

Reranker (TEI)

Text Embeddings Inference reranker for OpenWebUI RAG pipeline.

Setting Value
Model BAAI/bge-reranker-v2-m3
Image ghcr.io/huggingface/text-embeddings-inference:cpu-latest
Port 9787
Volume /mnt/user/appdata/reranker
LiteLLM model name reranker
API base http://10.5.30.5:9787

Moved from PlausibleDeniability (port 8787) to Serenity (port 9787) on 2026-05-09. CPU-only inference is acceptable for RAG reranking workloads.

ARR Stack

Managed via Unraid Community Apps. See Unraid dashboard for individual service ports and status.

Technitium Backup Resolver

Serenity hosts the secondary backup Technitium node on 10.5.30.10.

  • Live stack path: /mnt/user/appdata/technitium-serenity
  • Live secrets file: /mnt/user/appdata/technitium-serenity/.env
  • Resolver bind IP: 10.5.30.10
  • Config is refreshed from PD's live Technitium directory by the PD-side sync runner every 15 minutes
  • The live .env is also backed up into the encrypted PD secrets repo as env/technitium-serenity.env
  • Same-host checks from Serenity to 10.5.30.10 are unreliable because the resolver sits behind macvlan networking; verify from another LAN peer instead

Notes

  • No GPU; reranker uses CPU-only TEI image
  • Tailscale active — reachable at 100.94.87.79 from any Tailscale node
  • Local Serenity DB containers for the old GameVault and RomM stacks (postgresql15 and MariaDB-Official) were retired on 2026-05-25 after both apps validated healthy on PD.
  • The stale stopped source app containers for those old stacks were cleaned out afterward; rollback now lives in the retained appdata plus /mnt/user/backups/doris/serenity-d7-db-retire-20260525-213531 rather than in lingering docker ps -a entries.
  • Cooldown/rollback artifacts for that retirement were retained on Serenity under /mnt/user/backups/doris/serenity-d7-db-retire-20260525-213531, and the original DB appdata paths were left in place rather than deleted immediately.

Planned future role

  • Transitional only; do not design new long-term dependencies around Serenity.
  • Near-term it continues to host storage locality, reranker, the backup Technitium node, and the Serenity-local Newt needed for Pangolin access to Serenity resources.
  • Once PD directly owns the storage, qBittorrent/ARR locality should move to PD and Serenity should be drained and retired.
  • Before any Pangolin cleanup, re-home Serenity resources away from stale literal-IP targets; live Newt logs show repeated health checks to old 10.5.1.5 addresses.