42 lines
1.6 KiB
Nix
42 lines
1.6 KiB
Nix
|
|
# 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";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|