1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6 cfg = config.services.zerotierone;
7in
8{
9 options.services.zerotierone.enable = mkEnableOption "ZeroTierOne";
10
11 config = mkIf cfg.enable {
12 systemd.services.zerotierone = {
13 description = "ZeroTierOne";
14 path = [ pkgs.zerotierone ];
15 after = [ "network.target" ];
16 wantedBy = [ "multi-user.target" ];
17 preStart =
18 ''
19 mkdir -p /var/lib/zerotier-one
20 chmod 700 /var/lib/zerotier-one
21 chown -R root:root /var/lib/zerotier-one
22 '';
23 serviceConfig = {
24 Type = "forking";
25 User = "root";
26 PIDFile = "/var/lib/zerotier-one/zerotier-one.pid";
27 ExecStart = "${pkgs.zerotierone}/bin/zerotier-one -d";
28 };
29 };
30 environment.systemPackages = [ pkgs.zerotierone ];
31 };
32}