python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / sabnzbd.nix
blob8486be1bc66c10232523dddf72e8ae5bd916a299
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.services.sabnzbd;
8   inherit (pkgs) sabnzbd;
14   ###### interface
16   options = {
17     services.sabnzbd = {
18       enable = mkEnableOption (lib.mdDoc "the sabnzbd server");
20       package = mkOption {
21         type = types.package;
22         default = pkgs.sabnzbd;
23         defaultText = "pkgs.sabnzbd";
24         description = lib.mdDoc "The sabnzbd executable package run by the service.";
25       };
27       configFile = mkOption {
28         type = types.path;
29         default = "/var/lib/sabnzbd/sabnzbd.ini";
30         description = lib.mdDoc "Path to config file.";
31       };
33       user = mkOption {
34         default = "sabnzbd";
35         type = types.str;
36         description = lib.mdDoc "User to run the service as";
37       };
39       group = mkOption {
40         type = types.str;
41         default = "sabnzbd";
42         description = lib.mdDoc "Group to run the service as";
43       };
44     };
45   };
48   ###### implementation
50   config = mkIf cfg.enable {
52     users.users.sabnzbd = {
53           uid = config.ids.uids.sabnzbd;
54           group = "sabnzbd";
55           description = "sabnzbd user";
56           home = "/var/lib/sabnzbd/";
57           createHome = true;
58     };
60     users.groups.sabnzbd = {
61       gid = config.ids.gids.sabnzbd;
62     };
64     systemd.services.sabnzbd = {
65         description = "sabnzbd server";
66         wantedBy    = [ "multi-user.target" ];
67         after = [ "network.target" ];
68         serviceConfig = {
69           Type = "forking";
70           GuessMainPID = "no";
71           User = "${cfg.user}";
72           Group = "${cfg.group}";
73           ExecStart = "${lib.getBin cfg.package}/bin/sabnzbd -d -f ${cfg.configFile}";
74         };
75     };
76   };