homelab/build/config/ansible/inventory/host_vars/nas01.yml
Russell Seymour 3cd33d350e
Some checks failed
deploy / deploy (push) Has been cancelled
Added Jellyfin deployment to the repo
2026-08-31 20:14:43 +01:00

52 lines
2.3 KiB
YAML

---
# Existing Unraid server. Stacks are applied in list order.
#
# Each entry takes an optional `state:` — `present` (the default) deploys it,
# `absent` tears it down. To remove a stack, set `state: absent` and leave the
# entry here; deleting it instead removes nothing, it just stops Ansible
# managing the containers. See README.md → "Removing an app".
stacks:
# The arr ecosystem as one stack: Shelfarr (library) plus Prowlarr (indexer
# manager) in a single Compose project, so they come up together and share a
# network, a rendered .env and a Vault path.
- name: arr
src: arr
vault_path: homelab/arr
# No `db:` block — neither container uses an external database. Shelfarr
# is SQLite-only (config/database.yml pins production to storage/*.sqlite3
# with no DATABASE_URL support) and Prowlarr keeps its own SQLite under
# /config, so there is nothing to provision on the shared Postgres. Both
# databases live in the appdata bind mounts along with everything else.
# Trialling alongside an existing Plex install to compare the two — see
# src/jellyfin/ansible/unraid/vars.yml, which points its media paths at the
# same library Plex already reads. No `db:` block: Jellyfin is SQLite-only,
# same reasoning as arr above.
- name: jellyfin
src: jellyfin
vault_path: homelab/jellyfin
appdata:
- path: /mnt/user/Media/JellyBridge
owner: "99"
group: "100"
mode: "0777"
recurse: false
# Syncs watch state between the Plex and Jellyfin instances above — the
# reason both are running side by side. SQLite-only, no `db:` block, same
# as jellyfin. Its `homelab/watchstate` Vault path holds nothing real yet
# (first-run wizard + per-backend tokens in /config), but compose_stack
# looks it up unconditionally so it still has to exist — see
# docs/vault-secrets.md.
- name: watchstate
src: watchstate
vault_path: homelab/watchstate
# WatchState runs rootless (container `user: 99:100`) and exits if it
# can't write /config. Docker would create the missing bind path as
# root:root on first `up`, so pre-create it owned by nobody:users. Keep
# this path in step with WATCHSTATE_CONFIG_PATH in
# src/watchstate/ansible/unraid/vars.yml.
appdata:
- path: /mnt/user/appdata/watchstate/config
owner: "99"
group: "100"