From 25722bf5ba4aabcb462337a21b1012817005446b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Zahradn=C3=ADk?= Date: Tue, 18 Jul 2023 19:30:03 +0200 Subject: [PATCH 1/3] maintainers: add wexder --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index a7041571a97b..c192c1ae922b 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -18650,6 +18650,12 @@ fingerprint = "F844 80B2 0CA9 D6CC C7F5 2479 A776 D2AD 099E 8BC0"; }]; }; + wexder = { + email = "wexder19@gmail.com"; + github = "wexder"; + githubId = 24979302; + name = "Vladimír Zahradník"; + }; wheelsandmetal = { email = "jakob@schmutz.co.uk"; github = "wheelsandmetal"; From 202f059e7ddd843ea79b11e5392dd73adac30a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Zahradn=C3=ADk?= Date: Tue, 18 Jul 2023 19:30:46 +0200 Subject: [PATCH 2/3] netclient: init at 0.21.0 --- pkgs/by-name/ne/netclient/package.nix | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pkgs/by-name/ne/netclient/package.nix diff --git a/pkgs/by-name/ne/netclient/package.nix b/pkgs/by-name/ne/netclient/package.nix new file mode 100644 index 000000000000..33d72747be66 --- /dev/null +++ b/pkgs/by-name/ne/netclient/package.nix @@ -0,0 +1,34 @@ +{ buildGoModule +, fetchFromGitHub +, lib +, libX11 +, stdenv +, darwin +}: + +buildGoModule rec { + pname = "netclient"; + version = "0.21.0"; + + src = fetchFromGitHub { + owner = "gravitl"; + repo = "netclient"; + rev = "v${version}"; + hash = "sha256-68/BmVoAFaIg4vgjzhedSBqm6H9VDu3M7JemfPEcpjQ="; + }; + + vendorHash = "sha256-CsW4tW6+INw93A7uXtHeVnxRrE5unHXhm2SOmQkJwYA="; + + buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa + ++ lib.optional stdenv.isLinux libX11; + + hardeningEnabled = [ "pie" ]; + + meta = with lib; { + description = "Automated WireGuard® Management Client"; + homepage = "https://netmaker.io"; + changelog = "https://github.com/gravitl/netclient/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ wexder ]; + }; +} From 905349064876dcd7a762bd60d586591dc67556b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Zahradn=C3=ADk?= Date: Tue, 18 Jul 2023 23:27:34 +0200 Subject: [PATCH 3/3] nixos/netclient: init --- .../manual/release-notes/rl-2311.section.md | 2 ++ nixos/modules/module-list.nix | 1 + .../modules/services/networking/netclient.nix | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 nixos/modules/services/networking/netclient.nix diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 3a1ccfd6bc91..4fb038f476b8 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -91,6 +91,8 @@ - [ZITADEL](https://zitadel.com), a turnkey identity and access management platform. Available as [services.zitadel](#opt-services.zitadel.enable). +- [netclient](https://github.com/gravitl/netclient), an automated WireGuard® Management Client. Available as [services.netclient](#opt-services.netclient.enable). + ## Backward Incompatibilities {#sec-release-23.11-incompatibilities} - `network-online.target` has been fixed to no longer time out for systems with `networking.useDHCP = true` and `networking.useNetworkd = true`. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 811b82f28ce1..e94c5d906a6b 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -985,6 +985,7 @@ ./services/networking/ndppd.nix ./services/networking/nebula.nix ./services/networking/netbird.nix + ./services/networking/netclient.nix ./services/networking/networkd-dispatcher.nix ./services/networking/networkmanager.nix ./services/networking/nextdns.nix diff --git a/nixos/modules/services/networking/netclient.nix b/nixos/modules/services/networking/netclient.nix new file mode 100644 index 000000000000..124735fd716a --- /dev/null +++ b/nixos/modules/services/networking/netclient.nix @@ -0,0 +1,27 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.services.netclient; +in +{ + meta.maintainers = with lib.maintainers; [ wexder ]; + + options.services.netclient = { + enable = lib.mkEnableOption (lib.mdDoc "Netclient Daemon"); + package = lib.mkPackageOptionMD pkgs "netclient" { }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + systemd.services.netclient = { + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" ]; + description = "Netclient Daemon"; + serviceConfig = { + Type = "simple"; + ExecStart = "${lib.getExe cfg.package} daemon"; + Restart = "on-failure"; + RestartSec = "15s"; + }; + }; + }; +}