nixos/twingate: init module

Changed files
+29
nixos
modules
services
networking
+1
nixos/modules/module-list.nix
···
./services/networking/tox-node.nix
./services/networking/toxvpn.nix
./services/networking/tvheadend.nix
+
./services/networking/twingate.nix
./services/networking/ucarp.nix
./services/networking/unbound.nix
./services/networking/unifi.nix
+28
nixos/modules/services/networking/twingate.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.services.twingate;
+
+
in {
+
+
options.services.twingate = {
+
enable = mkEnableOption (lib.mdDoc "Twingate Client daemon");
+
};
+
+
config = mkIf cfg.enable {
+
+
networking.firewall.checkReversePath = lib.mkDefault false;
+
networking.networkmanager.enable = true;
+
+
environment.systemPackages = [ pkgs.twingate ]; # for the CLI
+
systemd.packages = [ pkgs.twingate ];
+
+
systemd.services.twingate.preStart = ''
+
cp -r -n ${pkgs.twingate}/etc/twingate/. /etc/twingate/
+
'';
+
+
systemd.services.twingate.wantedBy = [ "multi-user.target" ];
+
};
+
}