Wenn lokale Anmeldungen deaktiviert sind

Hallo,

ich starte ein Forum und bin mit Discourse völlig neu. Es wird auf DO gehostet und hat aus irgendeinem Grund Probleme mit SMTP oder dem Port. Ich wollte nun wissen, ob du dich für Google-Logins oder Social-Logins entschieden hast und ob es ein Problem darstellt, wenn keine lokalen Anmeldungen/Logins im Forum möglich sind.

SMTP ist auf DO standardmäßig blockiert. Wenn Sie E-Mails nutzen möchten, müssen Sie einen Proxy irgendwo einrichten. Viele haben gesagt, dass Mailgun für Discourse in der Cloud gut funktioniert, aber damit habe ich keine Erfahrung.

Das könnte das sein, wonach Sie suchen:

Ja, Sie können Social Login (Discord, Google, …) oder Discourse ID (ohne Einrichtung) ohne SMTP verwenden. Sie verlieren jedoch Digests und E-Mail-Benachrichtigungen, aber wenn Ihr Ziel nur eine Community ist, wird es auch mit geringerer Beteiligung funktionieren (Digests sollen die Bindung fördern).

Super, ich habe SendGrid, Mailgun und Resend ausprobiert. Das gleiche Problem tritt auf – es könnte ein Port-Problem sein, ich habe alle Ports getestet. Für den Moment möchte ich prüfen, ob die Social-Logins funktionieren, und die lokalen Logins abschaffen.

Sie können die Site-Einstellung „Lokale Anmeldungen aktivieren

Hallo @abeen, willkommen :wave:
Ich habe zahlreiche selbst gehostete Installationen mit Mailgun und Resend auf DigitalOcean (und anderen Cloud-Servern) durchgeführt – kannst du bitte mehr Informationen zu dem Problem geben, das du hast? Bearbeitest du deine app.yml mit den entsprechenden Einstellungen? Ich nehme an, es handelt sich um eine Standardinstallation?

Für Resend:

  DISCOURSE_HOSTNAME: <forum.deinesforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <deine-email@adresse.com>
  DISCOURSE_SMTP_ADDRESS: smtp.resend.com
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: resend
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Für Mailgun:

  DISCOURSE_HOSTNAME: <forum.deinesforum.etc>
  DISCOURSE_DEVELOPER_EMAILS: <deine-email@adresse.com>
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 2525
  DISCOURSE_SMTP_USER_NAME: <deine.mailgun.kontoe-mail>
  DISCOURSE_SMTP_PASSWORD: "xxxx"

Die DO gibt an: „Bitte beachten Sie, dass ab dem 6. März 2025 zusätzlich zu dem bereits blockierten Port 25 auch die Ports 465 und 587 auf Droplets blockiert wurden. Dies dient dazu sicherzustellen, dass DigitalOcean-Server nicht zum Versenden von Spam-E-Mails missbraucht werden.“

Im Admin-Bereich sehe ich:
Es sind 30 E-Mail-Jobs fehlgeschlagen. Überprüfen Sie Ihre app.yml und stellen Sie sicher, dass die Einstellungen für den Mailserver korrekt sind. Siehe die fehlgeschlagenen Jobs in Sidekiq.

Ich habe die Resend-API neu erstellt, den Port auf 587 geändert und es auch mit 2525 versucht. Bei mir funktioniert nichts.

Das ist meine YAML-Datei:

LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: „mein Passwort hier"
DISCOURSE_SMTP_PORT: 2525
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
  • Dies ist wahrscheinlich das Hauptproblem, das deine Schwierigkeiten verursacht: Du verwendest geschweifte Anführungszeichen. YAML-Dateien mögen diese nicht und brechen meist ab. Du musst einfache oder doppelte gerade Anführungszeichen verwenden, wie 'passwort' oder "passwort".
  • Hast du eine Standardinstallation auf einer Subdomain durchgeführt oder handelt es sich um eine Installation auf der Stammdomain? Im ersten Fall sollte es so etwas wie forum.dobato.au oder discourse.dobato.au sein (prüfe, was in deinem Nameserver eingetragen ist). Falls du nicht beabsichtigt hast, eine Installation auf der Stammdomain durchzuführen, muss dies korrigiert werden.
  • Diese Zeile ist überflüssig; lösche sie.
  • Obwohl Resend dies unterstützt und es funktionieren sollte, ist der Standard 587.
  • Diese Zeile wird nicht benötigt; es bringt nichts, den Mailer zu zwingen, STARTTLS zu starten – der zugrunde liegende Ruby-Mailer (ActionMailer) verwendet enable_starttls_auto: true, was bedeutet, dass er die Verbindung automatisch auf TLS aktualisiert, wenn der Server (Resend) dies unterstützt. Lösche diese Zeile.

Dein korrekter app.yml-Abschnitt sollte wie folgt aussehen:

DISCOURSE_HOSTNAME: dobato.au # (Überprüfe dies – es könnte falsch sein!)
DISCOURSE_DEVELOPER_EMAILS: meine_email@outlook.com
DISCOURSE_SMTP_ADDRESS: smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: "re_tatsaechlicher_api_key_hier" # Beachte die geraden Anführungszeichen!
DISCOURSE_SMTP_PORT: 587
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au

YAML-Dateien sind sehr streng bei Syntax und Abständen, daher ist es wichtig, die Formatierung der vorhandenen Vorlagendatei beizubehalten (siehe discourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub)

Aber DigitalOcean hat den Port 587 blockiert, weshalb 2525 verwendet wird.

Oh, ich habe DO vergessen, haha. :woman_facepalming:t2: Ich bin vor einiger Zeit von ihnen weggezogen. In meinem Kopf dachte ich an Resend und Hetzner. Also ja, benutze 2525 (ich erinnere mich jetzt, dass ich das beim Migrieren auch umgestellt habe).
Edit: Ich habe meinen Beitrag korrigiert. Danke, Jakee.

Zusammen mit den hervorragenden Ratschlägen oben wird das Ausführen von rake emails:test (siehe Troubleshoot email on a new Discourse install), um den Fehler sofort anzuzeigen, wahrscheinlich helfen.

Meine Website ist jetzt abgestürzt. Es ist eine neue Website mit wenigen Mitgliedern, und ich bin mir nicht sicher, wie ich meine benutzerdefinierten Seiten und Mitglieder herunterladen kann. Ich möchte überhaupt kein SMTP verwenden.

Es tut mir leid, dass dir das passiert.

Ja, deine yml-Datei ist wahrscheinlich fehlerhaft. Poste sie hier komplett (ohne E-Mail-Adressen und Passwörter). Das sollte wirklich nicht so schwierig sein, um es zum Laufen zu bringen.

Nur aus Neugier: Welche Droplet-Größe bei DigitalOcean nutzt du?

Konntest du bereits überprüfen, ob dein Nameserver korrekt konfiguriert ist?

Hallo,

ich habe Basic / 1 vCPU / 2 GB RAM / 50 GB Festplatte

env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_HOSTNAME: dobato.au
DISCOURSE_DEVELOPER_EMAILS: ``myemail@outlook.com
DISCOURSE_SMTP_ADDRESS: ``smtp.resend.com
DISCOURSE_SMTP_USER_NAME: resend
DISCOURSE_SMTP_PASSWORD: „re_mypassword“
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_NOTIFICATION_EMAIL: noreply@dobato.au
DISCOURSE_SMTP_DOMAIN: dobato.au
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_FROM_ADDRESS: noreply@dobato.au
UNICORN_WORKERS: 4

Ich möchte kein SMTP. Bei der Google-Suche nach dem Problem mit einigen Befehlen wird angezeigt, dass Nginx und Unicorn nicht ausgeführt werden.

Bitte lies meinen vorherigen Beitrag hier sorgfältig durch. Deine YAML-Datei ist falsch.

Das sollte für ein nicht überlastetes Forum funktionieren. Hast du überhaupt eine Swap-Datei? Führe free -h in der Kommandozeile aus und poste die Ausgabe hier.

curl: (52) Leere Antwort vom Server
root@dobato:~# free -h
gesamt benutzt frei geteilt buff/cache verfügbar
Mem: 1,9Gi 201Mi 1,2Gi 4,0Mi 507Mi 1,6Gi
Swap: 2,0Gi 0B 2,0Gi

Wie wäre es mit Discourse auf Amazon Lightsail? Dort gibt es auch Amazon SES SMTP-E-Mail.

@abeen Hast du diese auf gerade Anführungszeichen umgestellt?

Versuche stattdessen diese zu verwenden:

"

ich habe ein „ “, ein doppeltes Anführungszeichen

Ich verstehe. Es ist möglich, Discourse auf Lightsail mit SES zu hosten (einige Nutzer hier tun das). Oder du könntest Port 2525 ausprobieren, falls du das noch nicht getan hast. Aber wenn du diese Port-Probleme vermeiden möchtest, könntest du zu einem anderen Anbieter wechseln, wie etwa Hetzner oder Lightsail.

Der Neuaufbau endet damit zu schnell .. weiß nicht warum?