at 25.11-pre 1.1 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8let 9 cfg = config.services.freenet; 10 varDir = "/var/lib/freenet"; 11in 12{ 13 options = { 14 services.freenet = { 15 enable = lib.mkEnableOption "Freenet daemon"; 16 17 nice = lib.mkOption { 18 type = lib.types.int; 19 default = 10; 20 description = "Set the nice level for the Freenet daemon"; 21 }; 22 }; 23 }; 24 25 config = lib.mkIf cfg.enable { 26 systemd.services.freenet = { 27 description = "Freenet daemon"; 28 after = [ "network.target" ]; 29 wantedBy = [ "multi-user.target" ]; 30 serviceConfig = { 31 ExecStart = lib.getExe pkgs.freenet; 32 User = "freenet"; 33 UMask = "0007"; 34 WorkingDirectory = varDir; 35 Nice = cfg.nice; 36 }; 37 }; 38 39 users.users.freenet = { 40 group = "freenet"; 41 description = "Freenet daemon user"; 42 home = varDir; 43 createHome = true; 44 uid = config.ids.uids.freenet; 45 }; 46 47 users.groups.freenet.gid = config.ids.gids.freenet; 48 }; 49 50 meta.maintainers = with lib.maintainers; [ nagy ]; 51}