v0.1.0
🎉 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