shelfarr: audiobook search/acquire, Sonarr/Radarr-style

This commit is contained in:
rope 2026-07-21 09:50:24 +01:00
parent 40ef4444fa
commit daafc3a0f2
3 changed files with 43 additions and 0 deletions

View file

@ -38,6 +38,7 @@
{ domain = "prowlarr.nordhammer.it"; policy = "one_factor"; }
{ domain = "torrent.nordhammer.it"; policy = "one_factor"; }
{ domain = "profilarr.nordhammer.it"; policy = "one_factor"; }
{ domain = "shelfarr.nordhammer.it"; policy = "one_factor"; }
{ domain = "sabnzbd.nordhammer.it"; policy = "one_factor"; }
{ domain = "code.nordhammer.it"; policy = "one_factor"; }
{ domain = "notes.nordhammer.it"; policy = "one_factor"; }

View file

@ -115,6 +115,7 @@ in
# "7dtd.nordhammer.it" = protectedProxy 8090; # 7DTD disabled
"adguard.nordhammer.it" = protectedProxy 3000;
"profilarr.nordhammer.it" = protectedProxy 6868;
"shelfarr.nordhammer.it" = protectedProxy 5056;
"sabnzbd.nordhammer.it" = protectedProxy 8085;
"code.nordhammer.it" = lib.recursiveUpdate (protectedProxy 4444) {
locations."/".extraConfig = autheliaAuthConfig + ''

41
services/shelfarr.nix Normal file
View file

@ -0,0 +1,41 @@
# 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";
};
};
};
}