{ config, lib, ... }: let cfg = config.homelab.networking.tailscale; in { config = lib.mkIf cfg.enable { services.tailscale = { enable = true; openFirewall = true; extraSetFlags = [ "--operator=${cfg.user}" ]; }; networking.firewall = { trustedInterfaces = [ config.services.tailscale.interfaceName ]; allowedUDPPorts = [ config.services.tailscale.port ]; }; systemd.services.tailscaled.serviceConfig.Environment = [ "TS_DEBUG_FIREWALL_MODE=nftables" ]; systemd.network.wait-online.enable = false; boot.initrd.systemd.network.wait-online.enable = false; users.users.${cfg.user}.extraGroups = [ "tailscale" ]; }; }