{lib, ...}: { resource.tailscale_acl.default = { acl = toString (builtins.toJSON { tagOwners = let me = ["getchoo@github"]; tags = map (name: "tag:${name}") ["server" "personal"]; in lib.genAttrs tags (_: me); acls = let mkAcl = action: src: dst: {inherit action src dst;}; in [ (mkAcl "accept" ["tag:personal"] ["*:*"]) (mkAcl "accept" ["tag:server"] ["tag:server:*"]) ]; ssh = let mkSshAcl = action: src: dst: users: {inherit action src dst users;}; in [ (mkSshAcl "accept" ["tag:personal"] ["tag:server" "tag:personal"] ["autogroup:nonroot" "root"]) ]; }); }; }