IONOS-DDNS

command module
v2.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2026 License: MIT Imports: 34 Imported by: 0

README

🌐 IONOS DynDNS Dual-Stack (Go)

GitHub Release GitHub Pre-Release License GitHub Downloads (all assets, all releases) GitHub Activity


Docker Image Version Docker Pulls Docker Stars Docker Last Updated


Go Report Card

Ein hochperformanter, in Go geschriebener Dynamic DNS Client für IONOS. Optimiert für moderne Dual-Stack Anschlüsse (IPv4 & IPv6) mit integriertem Web-Dashboard.

✨ Highlights

  • Web-Dashboard: Behalte deine IP-Historie, API-Performance und System-Logs in Echtzeit via WebSockets im Blick.
  • Dual-Stack Ready: Gleichzeitige Aktualisierung von A (IPv4) und AAAA (IPv6) Records.
  • Intelligente Erkennung: Erkennt IPv6-Adressen direkt am Interface oder über externe DNS-Validierung.
  • Parallele Verarbeitung: Schnelle Updates durch Go-Routines mit einstellbarem Worker-Limit (ideal für viele Subdomains).
  • Multi-Architektur: Native Unterstützung für amd64 und arm64 (perfekt für Raspberry Pi, NAS & Server).
  • Robust: Automatisches Retrying bei API-Fehlern und ordnungsgemäßes Beenden (Graceful Shutdown).

🚀 Quick Start (Docker Compose)

services:
  ionos-ddns:
    image: crazyus3r/ionos-ddns:latest
    container_name: ionos-ddns
    environment:
      - API_PREFIX=dein_ionos_prefix
      - API_SECRET=dein_ionos_secret
      - DOMAINS=meine-domain.de,sub.andere-domain.com
      - IP_MODE=BOTH # IPV4, IPV6 oder BOTH
    ports:
      - "8080:8080" # Dashboard & Healthcheck
    volumes:
      - ./config:/config # Speichert Logs, Historie und Übersetzungen
    restart: unless-stopped

🛠 Konfiguration (Umgebungsvariablen)

Variable Beschreibung Standard
API_PREFIX Dein IONOS API Public Key (erforderlich)
API_SECRET Dein IONOS API Secret (erforderlich)
DOMAINS Kommagetrennte Liste der Domains (erforderlich)
IP_MODE Modus: IPV4, IPV6 oder BOTH BOTH
INTERVAL Intervall zwischen den Prüfungen (Sekunden) 300
INTERFACE Netzwerk-Interface für IPv6 (z.B. eth0) eth0
DNS_SERVERS Externe DNS-Server zur Validierung 1.1.1.1:53,8.8.8.8:53
HEALTH_PORT Port für Dashboard und Health-Check 8080
LANG Sprache der Logs & UI (DE oder EN) DE
LOG_MAX_LINES Maximale Zeilenanzahl pro Logdatei 5000
MAX_CONCURRENT Maximale parallele API-Updates 5
HOURLY_RATE_LIMIT Max. API-Anfragen pro Stunde 1200
DRY_RUN Wenn true, wird nichts bei IONOS geändert false
DEBUG Aktiviert erweitertes Logging false
PROVIDER ionos, cloudflare, ipv64 ionos
CLOUDFLARE_TOKEN Dein Cloudflare Token (erforderlich für CF)
CLOUDFLARE_ZONE_ID Dein Cloudflare Zone Id für CF) (erforderlich für CF)
IPV64_TOKEN Dein IPV64 Token für IPV64) (erforderlich für IPV64)
IPV64_DOMAIN_TOKEN Dein IPV64 Domain Token (erforderlich für IPV64)
TELEGRAM_BOT_TOKEN Telegram Token (erforderlich für Telegram)
RELEGRAM_CHAT_ID Erlaubte Chat ID (erforderlich für Telegram)
GOTIFY_URL Gotify Server URL (erforderlich für Gotify)
GOTIFY_TOKEN Gotify Token (erforderlich für Gotify)
NOTIFY_ON Welche Aktionen Gesendet werden UPDATE,CREATE,ERROR

Example DOMAINS_CONFIG Multi-Provider

DOMAINS_CONFIG=[{"fqdn": "domainA, subdomainA, domainB","provider": "IPV64","ipv64_token": "${IPV64_TOKEN}"},{"fqdn": "domainA, subdomainA, domainB","provider": "IONOS","API_PREFIX": "${API_PREFIX}", "API_SECRET": "${API_SECRET}"}]

📊 Dashboard & Monitoring

​Das Dashboard ist unter http://server-ip:8080 erreichbar. Es zeigt den aktuellen Status der API-Verbindung, die Performance-Metriken und ein Echtzeit-Log der Systemereignisse.

​Logs & Historie

​Das Tool nutzt das Verzeichnis /config (im Docker-Container) zur Speicherung: ​/config/logs/dyndns.json: Detailliertes Ereignis-Log im JSON-Format. ​/config/logs/update.json: Kompakte Historie deiner IP-Wechsel pro Domain.

​Beispiel update.json:

{
  "meine-domain.de": {
    "ips": [
      {
        "time": "18.01.2026 13:22:00",
        "ipv4": "x.x.x.x",
        "ipv6": "x:x:x:x:248:1893:25c8:1946"
      }
    ]
  }
}

🏗 Manuelle Installation (Binaries)

​Du kannst die vorkompilierten Binaries für Linux (AMD64/ARM64) und Windows direkt aus den GitHub Releases herunterladen.

  1. ​Lade die passende Datei für dein System herunter.
  2. ​Setze die Umgebungsvariablen (z. B. via .env Datei oder export).
  3. ​Starte das Programm: ./ionos-ddns

​🔐 API-Keys erstellen

​Logge dich in die IONOS Developer Konsole ein. ​Erstelle einen neuen Key (Typ: Public). ​Kopiere das Prefix und das Secret in deine Konfiguration.

​⚖️ Lizenz

​Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Documentation

Overview

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Package main

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL