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 ExecStart = "${pkgs.zerotierone}/bin/zerotier-one";
25 Restart = "always";
26 KillMode = "process";
27 };
28 };
29 environment.systemPackages = [ pkgs.zerotierone ];
30 };
31}