diff options
| author | Domen Kožar <domen@dev.si> | 2022-09-20 13:44:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-20 13:44:22 +0100 |
| commit | caea6653b1acc4f3cf709830e4af32dbbb2b39f0 (patch) | |
| tree | b96b3bca08aaedb2c4cc824b9046f1b8690c6688 /modules | |
| parent | b3de9dded8476b85e0210c8deab17895180ad2c3 (diff) | |
| parent | bdd5d81b13cd5886eab49d23472233b9b6e7f606 (diff) | |
Merge pull request #531 from Enzime/fix-tailscale
Fix Tailscale module
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/services/tailscale.nix | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/modules/services/tailscale.nix b/modules/services/tailscale.nix index fb63af9..6e1a86d 100644 --- a/modules/services/tailscale.nix +++ b/modules/services/tailscale.nix @@ -29,20 +29,31 @@ in }; config = mkIf cfg.enable { - warnings = [ - (mkIf (cfg.magicDNS.enable && cfg.domain == "") "${showOption cfg.domain} isn't empty, Tailscale MagicDNS search path won't be configured.") - ]; + assertions = [ { + assertion = !cfg.magicDNS.enable || config.networking.dns != [ "100.100.100.100" ]; + message = '' + When MagicDNS is enabled, fallback DNS servers need to be set with `networking.dns`. + + Otherwise, Tailscale will take a long time to connect and all DNS queries + will fail until Tailscale has connected. + ''; + } ]; environment.systemPackages = [ cfg.package ]; - launchd.user.agents.tailscaled = { + + launchd.daemons.tailscaled = { # derived from # https://github.com/tailscale/tailscale/blob/main/cmd/tailscaled/install_darwin.go#L30 serviceConfig = { Label = "com.tailscale.tailscaled"; - ProgramArguments = [ "${lib.getBin cfg.package}/bin/tailscaled" ]; + ProgramArguments = [ + "/bin/sh" "-c" + "/bin/wait4path ${cfg.package} && ${cfg.package}/bin/tailscaled" + ]; RunAtLoad = true; }; }; + networking = mkIf cfg.magicDNS.enable { dns = [ "100.100.100.100" ]; search = |
