vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / networking / i2p.nix
blob5d7b339dc01b5130aaff56c54e79bdd1ef6eb054
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.i2p;
4   homeDir = "/var/lib/i2p";
5 in
7   ###### interface
8   options.services.i2p.enable = lib.mkEnableOption "I2P router";
10   ###### implementation
11   config = lib.mkIf cfg.enable {
12     users.users.i2p = {
13       group = "i2p";
14       description = "i2p User";
15       home = homeDir;
16       createHome = true;
17       uid = config.ids.uids.i2p;
18     };
19     users.groups.i2p.gid = config.ids.gids.i2p;
20     systemd.services.i2p = {
21       description = "I2P router with administration interface for hidden services";
22       after = [ "network.target" ];
23       wantedBy = [ "multi-user.target" ];
24       serviceConfig = {
25         User = "i2p";
26         WorkingDirectory = homeDir;
27         Restart = "on-abort";
28         ExecStart = "${pkgs.i2p}/bin/i2prouter";
29       };
30     };
31   };