Dieses Skript konfiguriert einen Traefik Reverse -Proxy mit LetSencrypt -Zertifikaten für Ihre öffentlichen WebApps. In meinem Beispiel habe ich ein Dokuwiki (ausgezeichnete einfache Text mit Markdown -Wiki -App) eingerichtet. Dabei hatte ich das Gefühl, dass es keinen wirklich einfachen Leitfaden gab, um dieses Ergebnis zu erzielen, und für andere Menschen möglicherweise ein wenig verwirrend sein, also hier gehen Sie.
Hinweis: Dies funktioniert derzeit mit Traefik V1. Unterstützung für V2 in Kürze.
Ich habe meine Domain über Namecheap gekauft. Unabhängig von dem Domain -Registrar müssen Sie DNS -Datensätze ordnungsgemäß durch sie einrichten. Ich empfehle Namecheap, weil es einfach war, aber sie sind alle ungefähr. Solange der Anbieter Wildcard -DNS -Platten zulässt, sollten Sie gut gehen. In der Registerkarte "Advanced DNS" von Namecheap habe ich dies nur hinzugefügt. Ändern Sie den Wert der IP-Addesse in die öffentliche IP-Adresse Ihres Servers:
| Typ | Gastgeber | Wert | Ttl |
|---|---|---|---|
| Ein Rekord | * | IP-Addesse | Automatisch |
Klon The Repo: git clone https://github.com/Starttoaster/docker-traefik.git
Verzeichnis ändern: cd docker-traefik
Führen Sie das Skript aus: ./docker-traefik.sh
Verzeichnis ändern: cd /opt/traefik
Sobald Sie ein paar Fragen beantwortet haben, sollte das Skript abgeschlossen werden. Wenn Sie auf einem VPS (Cloud -Server) ausgeführt werden, sollten Sie docker-compose up -d ausführen und Ihre Apps ansprechen. Wenn Sie sich von zu Hause aus selbst veranstalten, gehen Sie zu den nächsten Abschnitten für Heimnetzwerke. Wenn Sie der Docker-Compose-Datei mehr oder andere Apps hinzufügen möchten, müssen Sie den Abschnitt Beschriftungen einfach zu jedem Dienst hinzufügen und einfach die Subdomain in das ändern, was die URL sein soll.
Wenn Sie diese Anleitung auf einem Server mit einer privaten IP -Adresse (hinter einer Art Router) durchgeführt haben, öffnen Sie auch die Konfigurationsseite Ihres Routers und leiten Sie die Ports 80 und 443 an die private IP -Adresse Ihres Servers. Ich kann nicht anweisen, wie dies zu tun ist, da jeder Router unterschiedliche Konfigurationsseiten hat, sondern nur Google nach Ihrem Router + "Portweiterleitung" durchsuchen. Stellen Sie während der Zeit sicher, dass Ihr Server über eine statisch zugewiesene private IP verfügt. Dies spart viel Kopfschmerzen, wenn Ihr Server jemals neu gestartet und eine neue IP von Ihrem DHCP -Pool zugewiesen wird.
Das Einrichten dynamischer DNS ist völlig optional. Internetdienstanbieter weisen in der Regel keine statischen öffentlichen IP -Adressen an Wohnheimbenutzer zu. Sie können eines Tages feststellen, dass Ihr Kabelmodem/Router aus irgendeinem Grund zurückgesetzt wurde. Nachdem das Modem/Router wieder online gekommen war, wurde ihm möglicherweise von dem DHCP Ihres ISP eine neue öffentliche IP -Adresse zugewiesen. In diesem Fall haben Sie zwei Optionen:
Finden Sie manuell Ihre neue öffentliche IP-Adresse (gehen Sie zu: https://diagnostic.opendns.com/myip) und ändern Sie die IP-Address-Abschnitte, um Ihre neue IP-Adresse auf Ihrem DNS A-Aufzeichnungen zu entsprechen, wobei Ihr DNS-Anbieter auch immer Ihr DNS-Anbieter ist. Meins ist Namecheaps grundlegende DNS.
Richten Sie dynamische DNS (DDNs) ein. DDNS führt eine minimale Webanwendung in Ihrem Heimserver aus, die regelmäßig eine Aktualisierung der IP -Adresse sendet, die Sie derzeit an Ihren DNS -Anbieter verwenden. Es authentifiziert sich dem DNS -Anbieter über einen vom DNS -Anbieter zugewiesenen PassKey (en). Wenn Ihre IP -Adresse jemals ändert, aktualisiert der DNS -Anbieter ihre A -Datensätze automatisch. Ich empfehle hier den Setup-Anweisungen hier: https://github.com/qdm12/ddns-updater
Der Container unterstützt Namecheap, Cloudflare, GoDaddy, Duckdns und DreamHost. Stellen Sie sicher, dass Sie über alle erforderlichen Parameter verfügen, wenn das Skript nach ihnen die Anweisungen mit dem Containerbesitzer befolgt. Wenn Sie CloudFlare einrichten, finden Sie hier meine GIST auf Cloudflare -API -Aufrufen hier.
Dies ist völlig optional. Das Traefik Dashboard bietet einige Informationen zu den Anwendungen hinter Ihrem Web -Proxy. Ich habe eine Bedingung hinzugefügt, mit der Sie die Konfiguration des Web -Dashboards automatisieren können. Sie benötigen eine "htpasswd", die ich unten einen Abschnitt zum Erhalten eines Abschnitts beigefügt habe. Ein HTPasswd ist nur ein Benutzername mit einem Hashed -Passwort. Siehe 'So generieren Sie eine htpasswd "unten. Wenn das Traefik https://dash.YOUR-DOMAIN.TLD Dashboard konfiguriert ist
Dies ist völlig optional. Wenn Sie möchten, dass alle Ihre Apps eine zusätzliche Schutzebene haben, können Sie eine htpasswd in der Datei Traefik.toml konfigurieren. Ein HTPasswd ist nur ein Benutzername mit einem Hashed -Passwort. Ich habe eine Bedingung im Skript hinzugefügt, die dies für Sie konfiguriert. Alles, was Sie brauchen, ist ein "htpasswd", um einzugeben, wenn das Skript darum fragt. Wenn Sie einen Ihrer WebApps besuchen möchten, müssen Sie den Benutzernamen und das Passwort eingeben, das Sie im Dialogfeld ausgewählt haben, das auftaucht.
htpasswd -nb user passwordStellen Sie sicher, dass der Benutzer durch den gewünschten Benutzernamen und das Kennwort durch das gewünschte Passwort ersetzt wird. oder
http://www.htaccesstools.com/htpasswd-generator/Geben Sie einfach Ihren gewünschten Benutzernamen und Passwort ein, kopieren Sie diese Zeichenfolge und geben Sie sie in das Skript ein, wenn Sie danach gefragt werden.
In GitHub User QDM12 für das leichte dynamische DNS -DNS -Docker -Image. qdm12/ddns-updater
An GitHub User Szepeviktor für ihre Beiträge zu diesem Skript.
An Miroslav Prasil für das beste Dokuwiki -Docker -Bild auf Docker Hub.