binaries | ||
.gitignore | ||
az-dns | ||
compile_all.sh | ||
go.mod | ||
LICENSE | ||
main.go | ||
README.md |
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 odervpn
.DOMAIN
: Die Zonendomain, z. B.example.com
.TTL
: TTL des Records als Ganzzahl (Sekunden).
Optionale Variablen:
LOG_LEVEL
:debug
,info
oderwarn
(Standard).DRY_RUN
: Beitrue
/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)
# 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