Update zerotierone.nix

Added option to write zerotier's local.conf in nix.
This commit is contained in:
Yonghan Ching 庄勇翰
2023-12-19 12:34:03 +00:00
committed by Emery Hemingway
parent 9a9873567d
commit 097f2b6737
@@ -28,7 +28,20 @@ in
};
options.services.zerotierone.package = mkPackageOption pkgs "zerotierone" { };
options.services.zerotierone.localConf = mkOption {
default = { };
description = mdDoc ''
Configuration to be written to the zerotier JSON-based local.conf.
The configuration will be symlinked to /var/lib/zerotier-one/local.conf at build time.
To understand the configuration format, refer to https://docs.zerotier.com/config/#local-configuration-options.
'';
example = {
settings.allowTcpFallbackRelay = false;
};
type = types.attrs;
};
config = mkIf cfg.enable {
systemd.services.zerotierone = {
description = "ZeroTierOne";
@@ -45,7 +58,9 @@ in
chown -R root:root /var/lib/zerotier-one
'' + (concatMapStrings (netId: ''
touch "/var/lib/zerotier-one/networks.d/${netId}.conf"
'') cfg.joinNetworks);
'') cfg.joinNetworks) + ''
ln -s ${conf} /var/lib/zerotier-one/local.conf
'';
serviceConfig = {
ExecStart = "${cfg.package}/bin/zerotier-one -p${toString cfg.port}";
Restart = "always";