70 lines
1.3 KiB
Nix
70 lines
1.3 KiB
Nix
{ pkgs, config, ... }:
|
|
let
|
|
mediaGroup = "media";
|
|
in
|
|
{
|
|
users.users.torrenter = {
|
|
isSystemUser = true;
|
|
group = "${mediaGroup}";
|
|
};
|
|
users.groups.${mediaGroup} = {
|
|
members = [
|
|
"ren"
|
|
"prowlarr"
|
|
"radarr"
|
|
];
|
|
};
|
|
|
|
age.secrets.vpn = {
|
|
file = ../../../keys/scribe;
|
|
owner = "ren";
|
|
};
|
|
|
|
services.openvpn.servers = {
|
|
officeVPN = {
|
|
config = ''config ${config.age.secrets.vpn.path} '';
|
|
};
|
|
};
|
|
|
|
networking.firewall.trustedInterfaces = [ "wg-selene" ];
|
|
networking.firewall.allowedUDPPorts = [ 23379 ];
|
|
networking.firewall.allowedTCPPorts = [ 23379 ];
|
|
|
|
networking.firewall.checkReversePath = false;
|
|
services.prowlarr.enable = true;
|
|
|
|
services.deluge = {
|
|
enable = true;
|
|
web.enable = true;
|
|
user = "torrenter";
|
|
group = mediaGroup;
|
|
|
|
};
|
|
|
|
services.radarr = {
|
|
enable = true;
|
|
group = mediaGroup;
|
|
openFirewall = false;
|
|
};
|
|
|
|
services.sonarr = {
|
|
enable = true;
|
|
group = mediaGroup;
|
|
openFirewall = false;
|
|
};
|
|
|
|
services.bazarr = {
|
|
enable = true;
|
|
group = mediaGroup;
|
|
openFirewall = false;
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
pkgs.flood-for-transmission
|
|
];
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d /mnt/scratch/torrents 0775 torrenter media -"
|
|
"d /mnt/scratch/torrents/.incomplete 0775 torrenter media -"
|
|
];
|
|
}
|