Beispieldateien für Traefik als Reverse-Proxy und Bitwarden als zu nutzender Dienst. Traefik nutzt die DNS-Challenge, um ein Wildcard-Zertifikat zu beantragen und um keinen Port im Heimnetzwerk nach außen öffnen zu müssen. In diesem Beispiel wird davon ausgegangen, dass Netcup als DNS-Provider genutzt wird.
Einträge mit sub.domain.tld
müssen mit der eigenen Domain ersetzt werden.
Alle Keys und Logins müssen ebenfalls mit den eigenen Daten ersetzt werden.
Traefik unterstützt viele weitere Anbieter für die DNS-Challenge. Eine Liste gibt es in der Dokumentation: https://doc.traefik.io/traefik/https/acme/#dnschallenge
Wird ein anderer Provider eingesetzt, müssen in der docker-compose.yml
von Traefik die Variablen, die mit "NETCUP_" beginnen, entfernt und stattdessen die Variablen für den jeweiligen Provider (siehe Traefik Doku) eingesetzt werden.
├── /home/USERNAME/docker/
│ ├── traefik
│ │ ├── docker-compose.yml
│ │ ├── config/
│ │ │ ├── traefik.yml
│ │ │ ├── dynamic/
│ │ │ │ ├── simpleAuth_middleware.yml
│ ├── bitwarden/
│ │ ├── docker-compose.yml
- Konfigs für Traefik anlegen
- Traefik: docker-compose.yml erstellen und Container starten (
docker compose up -d
) - Es dauert bis zu 15 Minuten, bis das Wildcard Zertifikat beantragt wurde, dies abwarten.
- Prüfen, ob die Traefik Weboberfläche funktioniert (unter der Domain, die bei Traefik angegeben wurde). Wenn ok:
- Bitwarden: docker-compose.yml erstellen und Container starten (
docker compose up -d
)
In der Datei simpleAuth_middleware.yml
müssen ein Benutzername und ein Passwort hinterlegt werden, mit denen man sich an der Traefik Weboberfläche anmelden möchte. Diese werden nicht im Klartext hinterlegt, sondern über folgenden Befehl erzeugt (den Wert "benutzername" mit dem gewünschten Wert ersetzen):
echo $(htpasswd -nB benutzername)
New password:
Re-type new password:
benutzername:$2y$05$Wz.GxsiC37w/CBVKTOpBjO8mdHND1G0duWj6l8f5G5S5u1oh94OKi
Nach Ausführung des ersten Befehls werdet ihr zur Eingabe eines gewünschten Passworts aufgefordert und am Ende wird eine Zeichenkette ausgegeben, die in der Datei "simpleAuth_middleware.yml" eingesetzt werden muss.
Use traefik proxy to manage the ingress.
Use haproxy in pfsense to manage the ingress
There are many other ways