# Hetzner DynDNS Weboberfläche für mehrere Hetzner-DNS-Zonen, Subdomains und Benutzer. Aktivierte A- und AAAA-Records werden regelmäßig auf die aktuelle öffentliche IP gesetzt. ## Starten Die Datei [`compose.yml`](compose.yml) in Portainer, Dockge oder einem anderen Docker-Webinterface als Stack einfügen und starten. Alternativ im ausgecheckten Repository: ```bash docker compose up -d ``` Danach aufrufen: ```text http://IP-DES-DOCKER-HOSTS:8080 ``` Beim ersten Start werden Datenbank und Verschlüsselungsschlüssel automatisch in getrennten Docker-Volumes angelegt. Es werden keine `.env`-Datei und kein manuell erzeugtes Secret benötigt. ## Das Compose ```yaml services: dyndns: image: git.j-mahler.de/admin/domain-control-webinterface-prod:v1.1.0 restart: unless-stopped ports: - "8080:8080" volumes: - dyndns-data:/data - dyndns-secrets:/secrets security_opt: - no-new-privileges:true cap_drop: - ALL volumes: dyndns-data: dyndns-secrets: ``` Soll ein anderer Port verwendet werden, muss nur die linke Zahl geändert werden, beispielsweise `9000:8080`. ## Aktualisieren In `compose.yml` die Versionsnummer beim Image ändern, anschließend das Image ziehen und den Stack neu bereitstellen. Auf der Kommandozeile: ```bash docker compose pull docker compose up -d ``` Benutzer, Domains und Einstellungen bleiben in `dyndns-data`. Der Schlüssel für gespeicherte API-Tokens liegt in `dyndns-secrets`. Für ein vollständiges Backup müssen beide Volumes gesichert werden. ## Funktionen - mehrere Domains und getrennt verschlüsselte Hetzner-API-Tokens - automatischer Import vorhandener A-/AAAA-Records - DynDNS pro Subdomain und IP-Familie aktivierbar - lokales Archiv statt Löschen von Hetzner-Records - frei einstellbares Update-Intervall mit Countdown - Admin- und Mitgliedskonten mit Domain- oder Subdomain-Rechten Port 8080 verwendet zunächst unverschlüsseltes HTTP. Den Port daher nur in einem vertrauenswürdigen Netz freigeben und nicht offen ins Internet stellen.