Remove n0emis as direct maintainer (#365023)
[NixPkgs.git] / nixos / modules / services / networking / wg-netmanager.nix
blobeb13d35ccccbda7ad7be0258433c32b536b4141e
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
8 with lib;
10 let
11   cfg = config.services.wg-netmanager;
15   options = {
16     services.wg-netmanager = {
17       enable = mkEnableOption "Wireguard network manager";
18     };
19   };
21   ###### implementation
22   config = mkIf cfg.enable {
23     # NOTE: wg-netmanager runs as root
24     systemd.services.wg-netmanager = {
25       description = "Wireguard network manager";
26       wantedBy = [ "multi-user.target" ];
27       after = [ "network.target" ];
28       path = with pkgs; [
29         wireguard-tools
30         iproute2
31         wireguard-go
32       ];
33       serviceConfig = {
34         Type = "simple";
35         Restart = "on-failure";
36         ExecStart = "${pkgs.wg-netmanager}/bin/wg_netmanager";
37         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
38         ExecStop = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
40         ReadWritePaths = [
41           "/tmp" # wg-netmanager creates files in /tmp before deleting them after use
42         ];
43       };
44       unitConfig = {
45         ConditionPathExists = [
46           "/etc/wg_netmanager/network.yaml"
47           "/etc/wg_netmanager/peer.yaml"
48         ];
49       };
50     };
51   };
53   meta.maintainers = with maintainers; [ gin66 ];