From acf17b3b4b2d42707078a6aedf9e3822b30fb7a9 Mon Sep 17 00:00:00 2001 From: Oleksandr Chupryna Date: Fri, 4 Nov 2022 13:36:45 +0100 Subject: [PATCH] nixos/twingate: init module --- nixos/modules/module-list.nix | 1 + .../modules/services/networking/twingate.nix | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 nixos/modules/services/networking/twingate.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index c25450167075..dd5829bc8a5a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -965,6 +965,7 @@ ./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 diff --git a/nixos/modules/services/networking/twingate.nix b/nixos/modules/services/networking/twingate.nix new file mode 100644 index 000000000000..17140bffd218 --- /dev/null +++ b/nixos/modules/services/networking/twingate.nix @@ -0,0 +1,28 @@ +{ 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" ]; + }; +}