tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
zerotier module: add option to join networks and open port
obadz
7 years ago
0a9d7f08
decfd44b
+18
-4
1 changed file
expand all
collapse all
unified
split
nixos
modules
services
networking
zerotierone.nix
+18
-4
nixos/modules/services/networking/zerotierone.nix
···
7
in
8
{
9
options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
0
0
0
0
0
0
0
0
0
0
10
options.services.zerotierone.package = mkOption {
11
default = pkgs.zerotierone;
12
defaultText = "pkgs.zerotierone";
···
22
path = [ cfg.package ];
23
after = [ "network.target" ];
24
wantedBy = [ "multi-user.target" ];
25
-
preStart =
26
-
''
27
-
mkdir -p /var/lib/zerotier-one
28
chmod 700 /var/lib/zerotier-one
29
chown -R root:root /var/lib/zerotier-one
30
-
'';
0
0
31
serviceConfig = {
32
ExecStart = "${cfg.package}/bin/zerotier-one";
33
Restart = "always";
···
37
38
# ZeroTier does not issue DHCP leases, but some strangers might...
39
networking.dhcpcd.denyInterfaces = [ "zt0" ];
0
0
0
40
41
environment.systemPackages = [ cfg.package ];
42
};
···
7
in
8
{
9
options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
10
+
11
+
options.services.zerotierone.joinNetworks = mkOption {
12
+
default = [];
13
+
example = [ "a8a2c3c10c1a68de" ];
14
+
type = types.listOf types.str;
15
+
description = ''
16
+
List of ZeroTier Network IDs to join on startup
17
+
'';
18
+
};
19
+
20
options.services.zerotierone.package = mkOption {
21
default = pkgs.zerotierone;
22
defaultText = "pkgs.zerotierone";
···
32
path = [ cfg.package ];
33
after = [ "network.target" ];
34
wantedBy = [ "multi-user.target" ];
35
+
preStart = ''
36
+
mkdir -p /var/lib/zerotier-one/networks.d
0
37
chmod 700 /var/lib/zerotier-one
38
chown -R root:root /var/lib/zerotier-one
39
+
'' + (concatMapStrings (netId: ''
40
+
touch "/var/lib/zerotier-one/networks.d/${netId}.conf"
41
+
'') cfg.joinNetworks);
42
serviceConfig = {
43
ExecStart = "${cfg.package}/bin/zerotier-one";
44
Restart = "always";
···
48
49
# ZeroTier does not issue DHCP leases, but some strangers might...
50
networking.dhcpcd.denyInterfaces = [ "zt0" ];
51
+
52
+
# ZeroTier receives UDP transmissions on port 9993 by default
53
+
networking.firewall.allowedUDPPorts = [ 9993 ];
54
55
environment.systemPackages = [ cfg.package ];
56
};