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}