diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2019-01-14 19:33:58 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-14 19:33:58 +0000 |
commit | d947944d70649573fb305264fc84a31d23fc748d (patch) | |
tree | 4920adc7d7ccc79c9664e6013200c91b06203ef2 /nixos/modules | |
parent | e60121566b0c6476f09c99b8f24e22746f46fcb1 (diff) | |
parent | 31ad79f43243ef7a0b058afa2fb8f0088966b05e (diff) | |
download | nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar.gz nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar.bz2 nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar.lz nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar.xz nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.tar.zst nixpkgs-d947944d70649573fb305264fc84a31d23fc748d.zip |
Merge pull request #53962 from elseym/sonarr
sonarr service: add more options to module
Diffstat (limited to 'nixos/modules')
-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 97b67a0b503..a99445a268d 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; + }; }; } |