forked from mirrors/nixpkgs
zerotier module: add option to join networks and open port
This commit is contained in:
parent
decfd44b19
commit
0a9d7f0809
|
@ -7,6 +7,16 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
|
options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
|
||||||
|
|
||||||
|
options.services.zerotierone.joinNetworks = mkOption {
|
||||||
|
default = [];
|
||||||
|
example = [ "a8a2c3c10c1a68de" ];
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = ''
|
||||||
|
List of ZeroTier Network IDs to join on startup
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
options.services.zerotierone.package = mkOption {
|
options.services.zerotierone.package = mkOption {
|
||||||
default = pkgs.zerotierone;
|
default = pkgs.zerotierone;
|
||||||
defaultText = "pkgs.zerotierone";
|
defaultText = "pkgs.zerotierone";
|
||||||
|
@ -22,12 +32,13 @@ in
|
||||||
path = [ cfg.package ];
|
path = [ cfg.package ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
preStart =
|
preStart = ''
|
||||||
''
|
mkdir -p /var/lib/zerotier-one/networks.d
|
||||||
mkdir -p /var/lib/zerotier-one
|
|
||||||
chmod 700 /var/lib/zerotier-one
|
chmod 700 /var/lib/zerotier-one
|
||||||
chown -R root:root /var/lib/zerotier-one
|
chown -R root:root /var/lib/zerotier-one
|
||||||
'';
|
'' + (concatMapStrings (netId: ''
|
||||||
|
touch "/var/lib/zerotier-one/networks.d/${netId}.conf"
|
||||||
|
'') cfg.joinNetworks);
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${cfg.package}/bin/zerotier-one";
|
ExecStart = "${cfg.package}/bin/zerotier-one";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
|
@ -38,6 +49,9 @@ in
|
||||||
# ZeroTier does not issue DHCP leases, but some strangers might...
|
# ZeroTier does not issue DHCP leases, but some strangers might...
|
||||||
networking.dhcpcd.denyInterfaces = [ "zt0" ];
|
networking.dhcpcd.denyInterfaces = [ "zt0" ];
|
||||||
|
|
||||||
|
# ZeroTier receives UDP transmissions on port 9993 by default
|
||||||
|
networking.firewall.allowedUDPPorts = [ 9993 ];
|
||||||
|
|
||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue