Skip to content

v0.1.0

Choose a tag to compare

@duczz duczz released this 23 Sep 14:55
· 24 commits to main since this release

🎉 Initial Release: Welcome!

Die erste Veröffentlichung von DNSmith - ein zentraler DDNS-Hub für HomeAssistant. Statt einer eigenen App pro Anbieter: Einmal installieren, Anbieter aus über 60 vorbereiteten Manifesten wählen, Zugangsdaten eintragen, fertig. Beliebig viele Einträge über beliebig viele Anbieter, alles über die Ingress-Oberfläche, keine YAML-Datei.

✨ Features

  • 🗂️ Über 60 Anbieter - von DuckDNS und Dynu bis Cloudflare, Route 53, Google Cloud DNS und Aliyun. 54 davon rein deklarativ über ein Manifest, ohne eine Zeile Code; 10 als Python-Modul, wo die API eine Sitzung, eine Signatur oder mehrere Schritte verlangt (Porkbun, DreamHost, DNSPod, Hetzner, netcup, OVH, Route 53, Aliyun, Google Cloud DNS).
  • 🧩 Zwei generische Einträge für alles, was nicht in der Liste steht: Generisches DynDNS2 für jeden Dienst mit dem klassischen Protokoll, und ein eigener HTTP-Provider mit frei einstellbarer Methode, Authentifizierung, Parameternamen und Erfolgskriterium.
  • 🌐 IPv4 und IPv6 gleichberechtigt - ein Eintrag pflegt A, AAAA oder beides.
  • 📡 Vier IP-Quellen je Adressfamilie - automatisch übers Internet, aus einer HomeAssistant-Entität (der Regelfall bei DS-Lite), feste Adresse, oder gar nicht. Liefert eine Entität keinen brauchbaren Wert, bleibt der Eintrag unangetastet statt falsch gesetzt zu werden.
  • 🩺 CGNAT- und DS-Lite-Erkennung - die Oberfläche sagt, warum der Anschluss trotz erfolgreichem Update nicht erreichbar ist.
  • 🔌 Verbindung testen mit einem echten lesenden Aufruf gegen den Anbieter, wo die API das zulässt.
  • 💬 Fehler mit nächstem Schritt statt reiner HTTP-Codes - die Originalmeldung bleibt aufklappbar.
  • ⏱️ Schonender Umgang mit Anbietern - aktualisiert nur bei tatsächlicher IP-Änderung, mit Abklingzeit und Backoff; Sperren werden erkannt und abgewartet.

🛡️ Reliability

  • 🔒 Kein offener Port - die Oberfläche läuft ausschließlich über Ingress.
  • 🛡️ Kein Sprungbrett ins Heimnetz - jede vom Nutzer angegebene Adresse wird vor dem Aufruf aufgelöst und gegen lokale Netze geprüft (inklusive Schutz vor DNS-Rebinding), Weiterleitungen werden nicht verfolgt.
  • 🧯 Zugangsdaten werden konsequent aus Logs herausgefiltert - auch nach einem Fund im Redaktor selbst gegengeprüft und nachgezogen.
  • 📋 Eine unlesbare Konfiguration beendet den Prozess nicht mehr: DNSmith startet, zeigt den Grund, lässt die Datei unangetastet und speichert nichts.

🔧 Under the Hood

  • ✅ Eigener Python-Executor statt der früheren Go-Engine - ein Prozess, kein übersetzter Fremdcode im Image.
  • ✅ 330 Tests, CI prüft Manifeste, generierte Doku und den App-Build bei jeder Änderung.
  • ✅ Eigenes AppArmor-Profil.

📄 Vollständiges Änderungsprotokoll: CHANGELOG.md
📖 Doku: README.md