Files
nixos/services/navidrome/default.nix
T
Hermes Agent 667a072937 feat(media): migrer la bibliothèque partagée vers /srv/media (dataset ZFS dédié)
/home/marc/media posait deux problèmes : /home/marc est 0700 (chaque service
devait recevoir un droit de traversée) et systemd-tmpfiles refuse de créer
quoi que ce soit sous /home/marc (« unsafe path transition », exit 73).

- services/media (nouveau) : dataset nixos/media -> /srv/media, groupe media
  (setgid, dossiers 2775/2770), arborescence movies/tvshows/music/books/downloads
- disko.nix : dataset media à côté de marc/nix
- navidrome, jellyfin, kodi : bibliothèque -> /srv/media/{music,movies,tvshows}
- qbittorrent : téléchargements dans le même dataset que la bibliothèque
  (permet aux *arr d'importer par lien dur au lieu de copier)
- radarr : dataDir corrigé (pointait sur celui de sonarr par copier-coller),
  déplacé hors /home (impossible avec ProtectHome+tmpfiles du module)
- sonarr : dataDir dédié + migration depuis /home/marc/radarr (était figé
  depuis le 28/07, port 8006 muet) ; réparé le 27/09/2026
- readarr : bibliothèque -> /srv/media/books
2026-09-27 21:19:52 -04:00

42 lines
1.1 KiB
Nix

{
config,
pkgs,
lib,
...
}:
{
services.navidrome = {
enable = true;
settings = {
Address = "0.0.0.0";
Port = 4533;
# Média partagé : /srv/media/music (groupe `media`, cf. services/media),
# et non plus /home/marc/media/music qui obligeait à donner à navidrome un
# droit de traversée sur le home de marc (0700) et le faisait scanner une
# bibliothèque vide.
MusicFolder = "/srv/media/music";
# DataFolder = "/var/lib/navidrome/data";
LogLevel = "info";
ScanSchedule = "@every 1h";
TranscodingCacheSize = "500MB";
DefaultLanguage = "fr";
};
};
systemd.services.navidrome = {
serviceConfig = {
StateDirectory = "navidrome";
DeviceAllow = "";
LockPersonality = true;
PrivateDevices = true;
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
# La musique n'est plus dans /home : plus besoin de BindPaths ni de
# traverser le home, le durcissement du module peut rester actif.
ProtectHome = lib.mkForce true;
};
};
# networking.firewall.allowedTCPPorts = [ 4533 ];
}