Discourse auf einem privaten Internet mit Cloudflare Tunnel installieren

Hallo,

Ich habe gerade Discourse und Cloudflared auf meinem R-Pi 4 installiert und die Anweisungen im ursprünglichen Beitrag befolgt, bin mir aber nicht sicher, was ich als Host für Discourse eingeben soll. Soll ich einfach localhost eingeben, da der Cloudflared-Tunnel es weiterleiten wird?
Vielleicht könnte @Falco helfen?

Entschuldigung, dass ich den Thread hochhole.

2 „Gefällt mir“

Sie benötigen für diese Anleitung immer noch eine Domain. Der Hostwert ist daher entweder der Domain-Apex oder die Subdomain, die Sie für Discourse und den Tunnel konfiguriert haben.

2 „Gefällt mir“

Sollte der Hostwert also die Subdomain sein, in der ich Discourse haben möchte?

2 „Gefällt mir“

Ja, das sollte die URL sein, an der Sie Discourse haben möchten.

3 „Gefällt mir“

Bist du sicher?
Wenn ich das tue, erhalte ich diese Fehlermeldung:


Glaubst du, ich habe etwas falsch gemacht?

Ich habe den Discourse-Hostnamen auf die exakte Subdomain gesetzt, auf der ich Discourse haben möchte.
Ich habe Cloudflared auf R-Pi4 über die CLI installiert (wie hier geschrieben: Set up your first tunnel · Cloudflare One docs) und ich führe es als Dienst aus.
Und ich habe Discourse wie in deinem ursprünglichen Beitrag erwähnt installiert, da bin ich mir ziemlich sicher.

2 „Gefällt mir“

Können Sie die Domain teilen?

Könnte ich es dir per DM schicken? Ich möchte nicht, dass zufällige Leute es sehen.

1 „Gefällt mir“

Funktioniert es jetzt, da Sie die richtige Domain eingerichtet haben?

2 „Gefällt mir“

Ja! Habe es gerade gestartet! Danke für deine Hilfe! Ich habe nur ein Problem mit MailJet (dem E-Mail-Anbieter, den ich für STMP verwende), der Spaß daran hat, meine Verifizierungs-E-Mails vorab zu blockieren.

2 „Gefällt mir“

Ein Beitrag wurde in ein neues Thema aufgeteilt: Gibt es Alternativen zu MailJet?

Ein Beitrag wurde in ein bestehendes Thema zusammengeführt: Any MailJet alternatives?

Hallo, ich habe es geschafft, eine funktionierende Installation zu haben! Ich habe nur eine kleine Frage: Wie viele Aktivitäten/Mitglieder glaubst du, kann ein R-Pi 4 Model B mit 4 GB RAM verarbeiten?

2 „Gefällt mir“

Das ist eine gute Frage. Da es schwierig ist, eine direkte Korrelation zwischen der Anzahl der Benutzer und der Serverauslastung in einem komplexen System wie Discourse herzustellen, ist es fair anzuerkennen, dass der Hauptengpass in einem RaspberryPi-System die Speicher-IOPS sind.

Solange die meisten Ihrer benötigten Ressourcen im RAM liegen, zwischen den Prozessen RSS und dem Linux-Caching, sollten Sie eine reibungslose Erfahrung haben. Die Tatsache, dass Cloudflare wie ein Caching-CDN fungiert, wird ebenfalls erheblich helfen, und Sie können die Langlebigkeit des Pi-Setups sogar noch verlängern, indem Sie nach einer Weile Object Storage für Uploads verwenden (S3 & Klone) verwenden.

5 „Gefällt mir“

Ich habe diesen Fehler in Docker-Teilen erhalten


FEHLGESCHLAGEN
--------------------
Pups::ExecError: /usr/local/bin/ruby -e 'if ENV[\"DISCOURSE_HOSTNAME\"] == \"discourse.example.com\"; puts \"Aborting! Domain is not configured!\"; exit 1; end' ist mit Rückgabewert fehlgeschlagen #<Process::Status: pid 115 exit 1>
Fehlerstelle: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec fehlgeschlagen mit den Parametern "/usr/local/bin/ruby -e 'if ENV[\\\"DISCOURSE_HOSTNAME\\\"] == \\\"discourse.example.com\\\"; puts \\\"Aborting! Domain is not configured!\\\"; exit 1; end'"
bootstrap fehlgeschlagen mit Exit-Code 1
** BOOTSTRAP FEHLGESCHLAGEN ** bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.
9ba0db264ae559f3f748cc1e42a8683ea0b4e355b0d45da0f472afea7ff7c472

Das bedeutet, dass Sie Ihre Domain nicht richtig konfiguriert haben. Sie benötigen eine gültige Domain, damit dies funktioniert. Führen Sie ./discourse-setup erneut aus oder bearbeiten Sie die Datei app.yml, um dies zu beheben.

1 „Gefällt mir“

Danke für die Antwort. Ich habe es erfolgreich auf RockPi4 bereitgestellt :+1:

3 „Gefällt mir“

Hallo @Falco,

ich bin ziemlich sicher, dass ich es genau wie in deiner Anleitung eingerichtet habe, aber ich bemerke etwas Seltsames.

In der Container-Konfiguration lade ich die SSL-Vorlagen nicht und habe die Umgebungsvariable DISCOURSE_FORCE_HTTPS auf true gesetzt. Ich bin mir nicht sicher, was das bewirkt, aber ich vermute, dass es SiteSetting.force_https auf true setzt und es dann im Admin-Dashboard ausblendet, um zu verhindern, dass es deaktiviert wird.

Meine CF-Tunnel-Konfiguration sieht so aus:

ingress:
  - hostname: dc.example.com
    service: http://dc:80 # dc ist mein Discourse-Standalone-App-Containername

Die Sache ist, dass ich http://dc.example.com besuchen kann und es nicht zu https weitergeleitet wird. Ist das das erwartete Verhalten?

Kannst du das reproduzieren? Ich frage mich, ob das ein Fehler ist.

Meine relevanten CF-Einstellungen sind:

  • SSL/TLS > Übersicht > SSL/TLS-Verschlüsselungsmodus: voll (nicht voll (strict))
  • SSL/TLS > Edge-Zertifikate > Immer HTTPS verwenden: aus

Ich weiß, dass ich CF die Weiterleitung durchführen lassen kann (entweder mit Immer HTTPS verwenden oder einer Bulk-Redirect-Regel), aber ich hätte angenommen, dass Discourse das handhabt und alle internen URIs weiterleitet, wenn force_https aktiviert ist. Gedanken dazu?

Abgesehen vom Weiterleitungsproblem funktioniert das Surfen auf https://dc.example.com unabhängig vom Wert von DISCOURSE_FORCE_HTTPS oder SiteSetting.force_https einwandfrei.

Bearbeitung: Obwohl ich nicht verstehe, was force_https für uns bewirkt (vielleicht tut es einfach nichts, wenn die SSL-Vorlagen nicht enthalten sind?), ist mir gerade eingefallen, dass die Tunnel-Konfiguration wahrscheinlich nicht wie vorgesehen funktionieren würde, wenn Discourse tatsächlich alles über HTTPS weiterleiten würde. Wenn es das täte, könnte argotunnel Discourse nicht über HTTP erreichen (wie service: http://dc:80), also sollte ich vielleicht:

  • mich darauf verlassen, dass CF meine Weiterleitungen vornimmt ODER
  • Discourse ein Zertifikat verwenden lassen und cloudflared mit HTTPS auf den Discourse-Ursprung zugreifen lassen (service: https://dc:443)

Vielleicht könnte deine Argotunnel-Anleitung aktualisiert werden, um dies zu berücksichtigen?

2 „Gefällt mir“

Sie haben Recht. Das ist mir nicht aufgefallen, meine Test-TLD .dev ist nur HTTPS:\n\nhttps://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/\n\nIch habe den Leitfaden aktualisiert und den Leuten gesagt, sie sollen dafür eine Page Rule verwenden. Danke für den Hinweis!

2 „Gefällt mir“

aber ich habe eine Frage..
Ich sehe viele anonyme Aufrufe bei Consolidated Pageviews, ich glaube, das liegt an DDoS, weil der CPU-Server bei 60 % war und der Crawler nur ein bisschen.. aber wie kann man sich vor DDoS schützen.. danke im Voraus für die Antwort

1 „Gefällt mir“

Wenn Sie Cloudflare als Reverse-Proxy verwenden (etwas anderes als Cloudflared/Argotunnel), sollten Sie standardmäßig einen gewissen DDoS-Schutz erhalten. Aktivieren Sie ihn mit der „orangen Wolke“ für Ihre DNS-Einträge.

1 „Gefällt mir“