- media-pool/jellyfin renamed to media-pool/media (mountpoint /data/media unchanged)
- media-pool/immich renamed to media-pool/photos (mountpoint /data/photos unchanged)
- media-pool/minecraft → media-pool/games/minecraft (child of games)
- media-pool/factorio → media-pool/games/factorio (child of games)
- media-pool/openttd → media-pool/games/openttd (child of games)
- Individual game quotas removed; single 1T quota set on media-pool/games
- Removed stale legacy /media-pool/jellyfin etc. from HP /etc/exports
- Updated pvs.yaml section headers to reflect new ZFS dataset names
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add Hook interface (filter + execute contract) in server/hooks/hook.h
- Add HookRunner in server/hooks/hook_runner.h: spawns a detached thread
per matching hook, with try/catch protection against crashes
- Add DnsUpdaterHook in server/hooks/dns_updater_hook.{h,cpp}:
triggers on server name changes, logs in to Technitium, deletes the
old A record (ignores 404), and adds the new A record
Config via env vars: TECHNITIUM_HOST/PORT/USER/PASS/ZONE, DNS_TTL
- Add Database::get_nics_for_server() to resolve a server's IPv4 address
- Wire HookRunner into InventoryServer; cmd_edit_server now fires hooks
with before/after Server snapshots
- Update CMakeLists.txt to include dns_updater_hook.cpp
- Document env vars in Dockerfile
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>