diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 043b0470edf..ea6809f540a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -333,6 +333,7 @@ ./services/networking/wicd.nix ./services/networking/wpa_supplicant.nix ./services/networking/xinetd.nix + ./services/networking/zerotierone.nix ./services/networking/znc.nix ./services/printing/cupsd.nix ./services/scheduling/atd.nix diff --git a/nixos/modules/services/networking/zerotierone.nix b/nixos/modules/services/networking/zerotierone.nix new file mode 100644 index 00000000000..886ea18d980 --- /dev/null +++ b/nixos/modules/services/networking/zerotierone.nix @@ -0,0 +1,32 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.zerotierone; +in +{ + options.services.zerotierone.enable = mkEnableOption "ZeroTierOne"; + + config = mkIf cfg.enable { + systemd.services.zerotierone = { + description = "ZeroTierOne"; + path = [ pkgs.zerotierone ]; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + preStart = + '' + mkdir -p /var/lib/zerotier-one + chmod 700 /var/lib/zerotier-one + chown -R root:root /var/lib/zerotier-one + ''; + serviceConfig = { + Type = "forking"; + User = "root"; + PIDFile = "/var/lib/zerotier-one/zerotier-one.pid"; + ExecStart = "${pkgs.zerotierone}/bin/zerotier-one -d"; + }; + }; + environment.systemPackages = [ pkgs.zerotierone ]; + }; +}