Files
nix/modules/nih/services/tailscale.nix
Gustavo "Guz" L. de Mello 5ce99497d7 refactor!: I went too close into the sun
Simlified everything, things were getting out of control
2024-04-08 16:37:29 -03:00

55 lines
1.1 KiB
Nix

{
config,
lib,
...
}: let
cfg = config.services.tailscale;
in {
imports = [];
options.services.tailscale = with lib;
with lib.types; {
exitNode = mkOption {
type = bool;
default = false;
};
tailnetName = mkOption {
type = str;
};
};
config = with lib;
mkIf cfg.enable {
services.tailscale = {
extraUpFlags = [
(
if cfg.exitNode
then "--advertise-exit-node"
else null
)
(
if cfg.exitNode
then "--exit-node"
else null
)
];
useRoutingFeatures = mkDefault (
if config.nih.type == "server" || cfg.exitNode
then "server"
else "client"
);
};
networking.firewall.allowedTCPPorts = [80 433];
systemd.services."tailscaled" = mkIf config.services.caddy.enable {
serviceConfig = {
Environment = ["TS_PERMIT_CERT_UID=caddy"];
};
};
nih.networking = mkIf cfg.exitNode {
portForwarding = mkDefault true;
nameservers = ["100.100.100.100"];
};
};
}