Ein Reverse Proxy fürs Heimnetz
- Matt
Ab dem vierten selbst betriebenen Dienst kennt niemand mehr die Portnummern. Der Zettel mit :3000, :8080 und :9000 ist der Punkt, an dem ein Reverse Proxy anfängt, sich zu lohnen.
Was ich benutze
Caddy, aus einem einzigen Grund: Es kümmert sich selbst um Zertifikate, ohne dass man eine Zeile über ACME schreibt.
git.heim.lan {
reverse_proxy gitea:3000
}
status.heim.lan {
reverse_proxy uptime:3001
}
ki.heim.lan {
reverse_proxy ollama:11434
}
Das ist die vollständige Konfiguration. Kein Vergleich zu dem, was dieselbe Aufgabe in nginx bedeutet.
Zertifikate ohne offenen Port
Der Teil, der die meisten abschreckt: Für ein gültiges Zertifikat auf einer internen Adresse braucht man normalerweise einen aus dem Internet erreichbaren Server. Braucht man nicht, wenn man die DNS-Prüfung nutzt.
Dabei legt Caddy einen Eintrag bei der DNS-Verwaltung der eigenen Domain an, statt eine Datei auszuliefern. Voraussetzung ist eine eigene Domain und ein Anbieter mit API. Danach hat man gültige Zertifikate für Adressen, die von außen nie erreichbar sind.
Der Aufwand ist einmalig, und danach hört das Klicken durch die Browserwarnung auf.
Was man dabei nicht vergessen sollte
Ein Reverse Proxy ist keine Zugangskontrolle. Er macht die Dienste bequemer erreichbar, auch für alles andere im Netz. Bei Diensten ohne eigene Anmeldung, und dazu gehört Ollama, sollte davor noch eine Absicherung stehen. Caddy bringt für den einfachen Fall eine Basis-Authentifizierung mit.
Und der Klassiker: Wer den Proxy im selben Docker-Netz betreibt, erreicht die Dienste über ihren Containernamen. Die Ports müssen dann gar nicht mehr nach außen veröffentlicht werden. Das ist die eigentliche Verbesserung, nicht die schöne Adresse.