From a6f0d984fed1888590c21d33754baec337b3727b Mon Sep 17 00:00:00 2001 From: Domen Kozar Date: Sun, 24 Feb 2013 17:33:48 +0100 Subject: [PATCH] Add deluge and deluge web services --- modules/misc/ids.nix | 2 + modules/module-list.nix | 1 + modules/services/torrent/deluge.nix | 62 +++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 modules/services/torrent/deluge.nix diff --git a/modules/misc/ids.nix b/modules/misc/ids.nix index 218bd0ed47a..998cf59927d 100644 --- a/modules/misc/ids.nix +++ b/modules/misc/ids.nix @@ -75,6 +75,7 @@ in wwwrun = 54; spamd = 56; nslcd = 58; + deluge = 60; # When adding a uid, make sure it doesn't match an existing gid. @@ -132,6 +133,7 @@ in networkmanager = 57; nslcd = 58; scanner = 59; + deluge = 60; # When adding a gid, make sure it doesn't match an existing uid. diff --git a/modules/module-list.nix b/modules/module-list.nix index 208abb4ffaf..ba57c092c1e 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -172,6 +172,7 @@ ./services/system/kerberos.nix ./services/system/nscd.nix ./services/system/uptimed.nix + ./services/torrent/deluge.nix ./services/ttys/gpm.nix ./services/ttys/agetty.nix ./services/web-servers/apache-httpd/default.nix diff --git a/modules/services/torrent/deluge.nix b/modules/services/torrent/deluge.nix new file mode 100644 index 00000000000..78e352e40e2 --- /dev/null +++ b/modules/services/torrent/deluge.nix @@ -0,0 +1,62 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + uid = config.ids.uids.deluge; + gid = config.ids.gids.deluge; + cfg = config.services.deluge; + cfg_web = config.services.deluge.web; +in { + options = { + services.deluge = { + enable = mkOption { + default = false; + example = "true"; + description = '' + Start Deluge daemon. + ''; + }; + }; + + services.deluge.web = { + enable = mkOption { + default = false; + example = "true"; + description = '' + Start Deluge Web daemon. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + systemd.services.deluged = { + after = [ "network.target" ]; + description = "Deluge Daemon"; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.pythonPackages.deluge ]; + script = "deluged -d"; + }; + + systemd.services.delugeweb = mkIf cfg_web.enable { + after = [ "network.target" "deluged.service" ]; + description = "Deluge Web"; + wantedBy = [ "multi-user.target" ]; + wants = [ "deluged.service" ]; + path = [ pkgs.pythonPackages.deluge ]; + script = "deluge --ui web"; + }; + + environment.systemPackages = [ pkgs.pythonPackages.deluge ]; + + users.extraUsers.deluge = { + inherit uid; + group = "deluge"; + description = "Deluge Daemon user"; + }; + + users.extraGroups.deluge.gid = gid; + }; +}