Selbstgehostete Installation hinter einer IP, die nicht „full-stack" ist

Hallo,

zu Test- und Validierungszwecken installiere ich Discourse auf einem Ubuntu-Computer bei mir zu Hause, dessen lokale IP-Adresse festgelegt wurde, sagen wir 192.168.1.200.
Er befindet sich hinter einem Router mit einer öffentlichen IP-Adresse, sagen wir A.B.C.D, die kein Full-Stack ist. :roll_eyes:

Aus Gründen, die nicht in meiner Macht stehen, kann ich diese nicht auf ein Full-Stack-Modell ändern. Ich bin daher beim NAT auf dem Router auf einen Portbereich beschränkt, der nur sehr hohe Portnummern zulässt, also weder 443 noch 80.

Im Beispiel öffne ich den eingehenden Port 50000 (TCP/UDP) und leite ihn auf 192.168.1.200:443 weiter.

Theoretisch sollte also eine Anfrage, die an die öffentliche IP A.B.C.D auf Port 50000 gerichtet ist, auf 192.168.1.200:443 weitergeleitet werden.

Ich habe einen Subdomain-Namen, sagen wir: forum.mondomaine.me, mit A- und AAAA-Einträgen, die auf die öffentliche IP A.B.C.D zeigen (für IPv4).

Ich habe eine Umleitung auf https://forum.mondomaine.me zu meiner öffentlichen IP A.B.C.D:50000 eingerichtet.

Wenn ich versuche, auf die oben genannte URL zuzugreifen, sehe ich zwar die Weiterleitung zu A.B.C.D:50000, aber natürlich wird die Verbindung abgelehnt, da (noch) kein Dienst auf 192.168.1.200:443 lauscht.

Das Problem ist, dass beim Installationsvorgang (im Docker-Modus) von Discourse auf meinem Rechner die Überprüfung der Domain-Konfiguration fehlschlägt:

/!\ Port 443 dieses Computers scheint über den Hostnamen: forum.mondomaine.me nicht erreichbar zu sein.
/!\ Die Verbindung zu http://forum.mondomaine.me (Port 80) schlägt ebenfalls fehl.

Es muss eine Lösung oder einen Workaround geben, aber im Moment sehe ich keinen…

Ist es ein Heimnetzwerk? Könnte sein, dass dein ISP den Datenverkehr blockiert. Warum nicht stattdessen einen VPS nutzen?

(EDIT: Verwende einen Cloudflare Tunnel, wie in dem oben verlinkten Dokument empfohlen)

Vielen Dank für die Antworten.

Ist es ein Heimnetzwerk?

Da ich Discourse auf einer Ubuntu-Maschine bei mir zu Hause installiere, wie ich ursprünglich schrieb, ja, es ist tatsächlich ein Heimnetzwerk.

Ist es möglich, dass Ihr ISP den Datenverkehr blockiert?

Genau das ist der Fall, wenn die öffentliche IP nicht full-stack ist. Und in diesem Stadium kann ich nichts daran ändern.

Warum nicht stattdessen einen VPS verwenden?

Weil ich für diesen Test nicht den Kauf eines VPS in Betracht ziehe. Aber ich stimme zu: Ein VPS wäre die Lösung, wenn ich bereits einen zur Hand hätte. Und ich hätte nicht gezögert.

Was die Verwendung eines Cloudflare-Tunnels angeht, scheint es mir basierend auf dem, was ich gerade festgestellt habe, für so wenig Aufwand eine zu komplizierte Lösung zu sein… Und dann noch Cloudflare…

Wenn es nur so einfach und schnell wäre, Discourse in einem isolierten (oder nicht isolierten) lokalen Netzwerk zu installieren…

Ich habe gesehen, dass es irgendwo einen Leitfaden (dessen URL ich bereits verloren habe) für ein Intranet gibt, der mir ebenfalls ziemlich aufwendig erschien, besonders im Vergleich zu einer Standardinstallation!

Lassen wir es sein, es ist nicht lebenswichtig, ich habe keine Lust, Stunden damit zu verbringen. :laughing:

Nochmals vielen Dank für die Antworten.

Kann man diesen Schritt überspringen, wenn die Einrichtung nicht funktioniert?

Wie in diesem Beitrag von Jay erklärt, kann die Port-Prüfung mit folgendem Parameter übersprungen werden:

--skip-connection-test

Benötigst du eine Verbindung von außerhalb deines LANs zum Testen oder im Rahmen deiner Entwicklung?

Entschuldige, falls ich das Problem missverstanden habe.

Für die Zeit, die man damit verbringt, alles zwischen dem eigenen Netzwerk, der korrekten Weiterleitung des Datenverkehrs durch den Internetdienstanbieter und der Sicherstellung, dass keine Türen für verdächtige Akteure offenstehen, die Ihr Heimnetzwerk übernehmen könnten, ist die Verwendung von Cloudflare-Tunnels meiner Meinung nach ziemlich einfach und unkompliziert. Besonders in einem Heimnetzwerk.

Discourse erfordert HTTPS. Wenn Sie nicht wissen, wie Sie ein Zertifikat erhalten und wie Sie es wie anderswo beschrieben installieren, ist es am besten, Discourse über einen Cloudflare Tunnel in einem privaten Internetnetzwerk zu installieren

Ich denke, so installieren Sie Ihr eigenes Zertifikat: SSL/HTTPS für Ihre Discourse-Docker-Installation aktivieren

Danke @Andrew_Rowe für den Tipp!

Nein, ich brauche keine Verbindung von außerhalb meines LANs zum Testen.

Ich habe also install-discourse mit --skip-connection-test ausgeführt, und wie erwartet lief die Installation weiter, ohne bei der Domänenprüfung stecken zu bleiben.

Man muss daran denken, nginx zu stoppen, falls er bereits läuft (außerhalb von Docker).

Aber es funktioniert! Discourse läuft jetzt in seinem Container!

Aber… scheinbar haben wir jetzt ein Zertifikatsproblem.

nginx: [emerg] cannot load certificate “/shared/ssl/forum.mondomaine.me.cer”: PEM_read_bio_X509_AUX() failed (SSL: error:0480006C:PEM routines::no start line:Expecting: TRUSTED CERTIFICATE)

Ich habe natürlich diesen Thread befolgt und die Existenz von /var/discourse/shared/ssl/forum.mondomaine.me.cer überprüft – alles in Ordnung, ebenso wie bei der .key-Datei und den beiden anderen Dateien mit .me_ecc.cer|key.

Ich habe den Container neu erstellt, aber es ist dasselbe.

Ich bestätige: Discourse auf einem lokalen Testserver zu installieren, ist ein wahrer Kampf! :joy:

Offensichtlich wird das nicht empfohlen.

Und da es keine einfache Lösung gibt (nein, ich werde nicht CloudFlare verwenden, bitte nicht in diese Richtung gehen, danke), denke ich, wird dies meine letzte Nachricht zu diesem Thema sein. :grinning_face_with_smiling_eyes:

Man kauft ihn nicht wirklich. Man mietet ihn.

Wahrscheinlich @merefield, danke für die Präzisierung. Ich werde auch noch einmal klarstellen, was ich sagen wollte: Ich plane nicht, Geld für einen VPS auszugeben.

Nur noch eine Sache: Ich habe bemerkt, dass der Befehl docker run die Option DISCOURSE_FORCE_HTTPS=true enthielt. Ich habe sie daher auf false geändert und den Container nach dem Neuaufbau erneut gestartet.

Es hat sich nichts geändert.

Wenn Sie keinen Tunnel im Cloudflare-Stil verwenden möchten und sich nur umsehen wollen, nutzen Sie eine dev-install.

Vielen Dank! Ich werde mir das tatsächlich ansehen.