# az-dns Kleines Go-Tool zum Aktualisieren von Hetzner DNS-A/AAAA-Records auf die aktuelle öffentliche IPv4/IPv6-Adresse. ## Konfiguration Folgende Environment-Variablen müssen gesetzt werden: - `HETZNER_TOKEN`: Hetzner Cloud API Token mit DNS-Schreibrechten. - `HOSTNAME`: Der Hostname innerhalb der Zone, z. B. `@` für den Zonen-Apex oder `vpn`. - `DOMAIN`: Die Zonendomain, z. B. `example.com`. - `TTL`: TTL des Records als Ganzzahl (Sekunden). Optionale Variablen: - `LOG_LEVEL`: `debug`, `info` oder `warn` (Standard). - `DRY_RUN`: Bei `true`/`1` werden nur die geplanten Änderungen geloggt, aber nicht ausgeführt. ## Build & Ausführung Entweder einfach das richtige Binary verwenden (in ./binaries) oder selber compilieren (das dauert 3 Sekunden) ```bash # Installieren/kompilieren GOCACHE=$(pwd)/.gocache go build -o az-dns # ausführen (setzt beide Records falls Adressen ermittelt werden können) HETZNER_TOKEN=... HOSTNAME=... DOMAIN=... TTL=300 LOG_LEVEL=info ./az-dns ``` Das Programm versucht, sowohl die IPv4- als auch die IPv6-Adresse zu ermitteln. Gelingt nur eine der beiden Erkennungen, wird nur der entsprechende Record geschrieben. Fehlt ein Record, wird er neu angelegt, ansonsten aktualisiert. ## Hinweise - Der `HOSTNAME` wird automatisch auf Hetzners Darstellung normalisiert (`@` für den Apex). - Das Tool nutzt `https://api.ipify.org` bzw. `https://api6.ipify.org` zur Adressfeststellung. - DNS-Updates erfolgen über die neue Hetzner Cloud DNS-API unter `https://api.hetzner.cloud/v1`. - Im Dry-Run-Modus werden nur Logausgaben erzeugt, was sich gut für Cronjobs/CI eignet. ## LIZENZ The MIT License (MIT) --> siehe LICENSE-File