# services/shelfarr.nix — Shelfarr: Sonarr/Radarr-style search+acquire for # audiobooks. Not in nixpkgs, so runs as a container like profilarr. # # Only the main app is deployed — the shelfarr-libation companion (Audible # account backup) is skipped, beta and unrelated to indexer-based search. # Ebooks volume also skipped (audiobooks-only use case); mount /ebooks later # if that turns out to be required for the container to start cleanly. # # Prowlarr/qBittorrent hookup isn't wired into arr-interconnect.nix: unlike # Sonarr/Radarr/Prowlarr/Bazarr, Shelfarr has no config.xml API key written # before first boot — the first registered user becomes admin via the web UI, # so that connection has to be made once by hand at # https://shelfarr.nordhammer.it after first boot. { config, lib, ... }: { config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") { systemd.tmpfiles.rules = [ "d /var/lib/shelfarr 0755 root root -" ]; virtualisation.oci-containers.containers.shelfarr = { image = "ghcr.io/pedro-revez-silva/shelfarr:latest"; volumes = [ "/var/lib/shelfarr:/rails/storage" "/mnt/storage/torrents/audiobooks:/audiobooks" "/mnt/storage/torrents/downloads:/downloads" ]; # Localhost-only; nginx fronts it at shelfarr.nordhammer.it behind Authelia ports = [ "127.0.0.1:5056:80" ]; environment = { TZ = "Europe/London"; SOLID_QUEUE_IN_PUMA = "1"; # Matches fred:media ownership (2775) on /mnt/storage/torrents/audiobooks PUID = "1000"; PGID = "3000"; CHOWN_ON_START = "auto"; }; }; }; }