{ ... }: # Audiobookshelf audiobook/podcast server, listening on all interfaces but # reachable only via tailscale0 or local caddy (no openFirewall) — library # paths are set in the web UI, pointed at /mnt/data/... In the "users" group # so it can read the RAID's group-owned library dirs. { services.audiobookshelf = { enable = true; host = "0.0.0.0"; port = 8000; }; users.users.audiobookshelf.extraGroups = [ "users" ]; # Its state dir is on the eMMC, so systemd sees no reason to wait for the # array — but every library path points into /mnt/data. Starting without it # means an empty library and rescans against nothing. systemd.services.audiobookshelf.unitConfig.RequiresMountsFor = [ "/mnt/data" ]; }