vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / networking / freenet.nix
blob4323b98d67075fcacd0f16cceabca943b96365d2
1 # NixOS module for Freenet daemon
2 { config, lib, pkgs, ... }:
3 let
5   cfg = config.services.freenet;
6   varDir = "/var/lib/freenet";
8 in
12   ### configuration
14   options = {
16     services.freenet = {
18       enable = lib.mkOption {
19         type = lib.types.bool;
20         default = false;
21         description = "Enable the Freenet daemon";
22       };
24       nice = lib.mkOption {
25         type = lib.types.int;
26         default = 10;
27         description = "Set the nice level for the Freenet daemon";
28       };
30     };
32   };
34   ### implementation
36   config = lib.mkIf cfg.enable {
38     systemd.services.freenet = {
39       description = "Freenet daemon";
40       after = [ "network.target" ];
41       wantedBy = [ "multi-user.target" ];
42       serviceConfig.ExecStart = "${pkgs.freenet}/bin/freenet";
43       serviceConfig.User = "freenet";
44       serviceConfig.UMask = "0007";
45       serviceConfig.WorkingDirectory = varDir;
46       serviceConfig.Nice = cfg.nice;
47     };
49     users.users.freenet = {
50       group = "freenet";
51       description = "Freenet daemon user";
52       home = varDir;
53       createHome = true;
54       uid = config.ids.uids.freenet;
55     };
57     users.groups.freenet.gid = config.ids.gids.freenet;
58   };