at 17.09-beta 1.1 kB view raw
1{ config, pkgs, lib, ... }: 2 3with lib; 4 5let 6 cfg = config.services.couchpotato; 7 8in 9{ 10 options = { 11 services.couchpotato = { 12 enable = mkEnableOption "CouchPotato Server"; 13 }; 14 }; 15 16 config = mkIf cfg.enable { 17 systemd.services.couchpotato = { 18 description = "CouchPotato Server"; 19 after = [ "network.target" ]; 20 wantedBy = [ "multi-user.target" ]; 21 22 preStart = '' 23 mkdir -p /var/lib/couchpotato 24 chown -R couchpotato:couchpotato /var/lib/couchpotato 25 ''; 26 27 serviceConfig = { 28 Type = "simple"; 29 User = "couchpotato"; 30 Group = "couchpotato"; 31 PermissionsStartOnly = "true"; 32 ExecStart = "${pkgs.couchpotato}/bin/couchpotato"; 33 Restart = "on-failure"; 34 }; 35 }; 36 37 users.extraUsers = singleton 38 { name = "couchpotato"; 39 group = "couchpotato"; 40 home = "/var/lib/couchpotato/"; 41 description = "CouchPotato daemon user"; 42 uid = config.ids.uids.couchpotato; 43 }; 44 45 users.extraGroups = singleton 46 { name = "couchpotato"; 47 gid = config.ids.gids.couchpotato; 48 }; 49 }; 50}