# Tailscale-Bind DDNS Configuration # This file can be used to configure the application. # You can also use environment variables (prefixed with TSBD_) or command line flags. # Tailscale configuration tailscale: # API Key for Tailscale (alternative to OAuth) #api_key: "your-tailscale-api-key-here" # OAuth credentials (recommended approach) client_id: "your-oauth-client-id" client_secret: "your-oauth-client-secret" # Your Tailscale tailnet name (e.g., "example.com") tailnet: "your-tailnet.example.com" # How often to poll Tailscale for machine updates poll_interval: "30s" # Bind DNS server configuration bind: # DNS server address server: "dns.example.com" # DNS server port (usually 53) port: 53 # DNS zone to update (e.g., "tailscale.example.com.") zone: "tailscale.example.com." # TSIG key configuration key_name: "tailscale-bind-ddns-key" key_secret: "your-tsig-key-secret-here" # TSIG algorithm (hmac-md5, hmac-sha1, hmac-sha256, hmac-sha384, hmac-sha512) algorithm: "hmac-sha256" # DNS record TTL ttl: "60s" # How often to send DNS updates update_interval: "60s" # How often to refresh DNS inventory from Bind (set to 0 to disable) inventory_refresh_interval: "30m" # PTR record (Reverse DNS) configuration (optional) ptr: # Enable PTR record creation enabled: false # IPv4 PTR zone name (e.g., "64.100.in-addr.arpa" for 100.64.0.0/10) ipv4_zone: "64.100.in-addr.arpa" # IPv4 subnet for PTR records (default: 100.64.0.0/10) ipv4_subnet: "100.64.0.0/10" # IPv4 subnet size for PTR zones (8, 16, or 24) # /8: Creates zones like 100.in-addr.arpa # /16: Creates zones like 64.100.in-addr.arpa (default) # /24: Creates zones like 0.64.100.in-addr.arpa ipv4_subnet_size: 16 # Enable IPv6 PTR records ipv6_enabled: false # IPv6 PTR zone name (e.g., "0.e.1.a.1.c.5.1.1.a.7.d.f.ip6.arpa" for fd7a:115c:a1e0::/64) ipv6_zone: "0.e.1.a.1.c.5.1.1.a.7.d.f.ip6.arpa" # IPv6 subnet for PTR records (required when ipv6_enabled is true) # ipv6_subnet: "fd7a:115c:a1e0::/64" # IPv6 subnet size for PTR zones (32, 48, or 64) # /32: Creates zones with 8 nibbles # /48: Creates zones with 12 nibbles # /64: Creates zones with 16 nibbles (default) #ipv6_subnet_size: 64 # General application configuration general: # Log level (debug, verbose, info) (WARNING: debug level may leak secrets into output) log_level: "info" # Run in dry-run mode (don't actually update DNS) dry_run: false # Prometheus metrics configuration metrics: # Expose the metrics HTTP endpoint enabled: false # Address to bind for the metrics server listen_address: ":9729" # Emit per-endpoint gauges labeled by FQDN/IP per_endpoint_metric: false