diff options
author | elseym <elseym@me.com> | 2019-01-14 12:47:20 +0100 |
---|---|---|
committer | elseym <elseym@me.com> | 2019-01-14 20:30:10 +0100 |
commit | 31ad79f43243ef7a0b058afa2fb8f0088966b05e (patch) | |
tree | 8250a89182dd656e5c1548b5bc4ff08c0d63a733 | |
parent | bbf5f02584e0b39966dd85a72c44df11fa838352 (diff) | |
download | nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar.gz nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar.bz2 nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar.lz nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar.xz nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.tar.zst nixlib-31ad79f43243ef7a0b058afa2fb8f0088966b05e.zip |
sonarr service: add more options to module
-rw-r--r-- | nixos/modules/services/misc/sonarr.nix | 60 |
1 files changed, 47 insertions, 13 deletions
diff --git a/nixos/modules/services/misc/sonarr.nix b/nixos/modules/services/misc/sonarr.nix index 97b67a0b5033..a99445a268d7 100644 --- a/nixos/modules/services/misc/sonarr.nix +++ b/nixos/modules/services/misc/sonarr.nix @@ -9,6 +9,32 @@ in options = { services.sonarr = { enable = mkEnableOption "Sonarr"; + + dataDir = mkOption { + type = types.str; + default = "/var/lib/sonarr/.config/NzbDrone"; + description = "The directory where Sonarr stores its data files."; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports in the firewall for the Sonarr web interface + ''; + }; + + user = mkOption { + type = types.str; + default = "sonarr"; + description = "User account under which Sonaar runs."; + }; + + group = mkOption { + type = types.str; + default = "sonarr"; + description = "Group under which Sonaar runs."; + }; }; }; @@ -18,30 +44,38 @@ in after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; preStart = '' - test -d /var/lib/sonarr/ || { - echo "Creating sonarr data directory in /var/lib/sonarr/" - mkdir -p /var/lib/sonarr/ + test -d ${cfg.dataDir} || { + echo "Creating sonarr data directory in ${cfg.dataDir}" + mkdir -p ${cfg.dataDir} } - chown -R sonarr:sonarr /var/lib/sonarr/ - chmod 0700 /var/lib/sonarr/ + chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} + chmod 0700 ${cfg.dataDir} ''; serviceConfig = { Type = "simple"; - User = "sonarr"; - Group = "sonarr"; + User = cfg.user; + Group = cfg.group; PermissionsStartOnly = "true"; - ExecStart = "${pkgs.sonarr}/bin/NzbDrone --no-browser"; + ExecStart = "${pkgs.sonarr}/bin/NzbDrone -nobrowser -data='${cfg.dataDir}'"; Restart = "on-failure"; }; }; - users.users.sonarr = { - uid = config.ids.uids.sonarr; - home = "/var/lib/sonarr"; - group = "sonarr"; + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ 8989 ]; + }; + + users.users = mkIf (cfg.user == "sonarr") { + sonarr = { + group = cfg.group; + home = cfg.dataDir; + uid = config.ids.uids.sonarr; + }; }; - users.groups.sonarr.gid = config.ids.gids.sonarr; + users.groups = mkIf (cfg.group == "sonarr") { + sonarr.gid = config.ids.gids.sonarr; + }; }; } |