Find a file
Jesko Anschütz 158a7efb72 initial
2025-10-20 14:25:11 +02:00
binaries initial 2025-10-20 14:25:11 +02:00
.gitignore initial 2025-10-20 14:25:11 +02:00
compile_all.sh initial 2025-10-20 14:25:11 +02:00
go.mod initial 2025-10-20 14:25:11 +02:00
LICENSE initial 2025-10-20 14:25:11 +02:00
main.go initial 2025-10-20 14:25:11 +02:00
README.md initial 2025-10-20 14:25:11 +02:00

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)

# 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