Lange Pause bei der Standardinstallation von Befehl: cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'

Nun, es ist tatsächlich ein Netzwerkproblem, da mein Server in China ist.
Ich habe die Lösungen gefunden, hier sind sie auf Chinesisch:


Installation von Discourse in einer chinesischen Umgebunghttps://mypre.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/

Die Versionsaktualisierung und -wartung von Discourse erfolgt über GitHub, und Discourse selbst ist in Ruby geschrieben.

Die Verwendung von CVM, Lightweight-Servern von Tencent Cloud und ECS von Alibaba Cloud birgt Probleme beim langsamen Zugriff auf ausländische Websites, hauptsächlich aufgrund von Ratenbegrenzungsoperationen zur Unterstützung chinesischer Git-Repositories.

Beim Klonen von Discourse, das auf GitHub gehostet wird, können Sie den Zugriff auf GitHub beschleunigen, indem Sie github.com im Klon-Link durch github.com.cnpmjs.org ersetzen. Zum Beispiel:

Ersetzen Sie git clone https://github.com/discourse/discourse_docker.git durch git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git

Darüber hinaus installiert das Installationsprogramm beim Ausführen von ./discourse-setup auch einige zusätzliche Projekte in Docker.

Zum Beispiel: gem update erfordert ebenfalls das Hinzufügen eines Ruby-Spiegels.

Sie können die Ruby-Spiegeladresse durch Ändern der Konfigurationsdatei hinzufügen. Die Hauptdateien, die betroffen sind, sind docker.git

Darüber hinaus installiert das Installationsprogramm beim Ausführen von ./discourse-setup auch einige zusätzliche Projekte in Docker.

Zum Beispiel: gem update erfordert ebenfalls das Hinzufügen eines Ruby-Spiegels.

Sie können die Ruby-Spiegeladresse durch Ändern der Konfigurationsdatei hinzufügen. Die Hauptdateien, die betroffen sind, sind

discourse/templates/web.template.yml
discourse/containers/app.yml

Suchen Sie nach Stellen, an denen gem update in den oben genannten Dateien aufgerufen wird, und fügen Sie die folgende Anweisung zum Hinzufügen eines Spiegel-Websites hinzu:

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem update bundler

Für Bundles können Sie bundle config mirror.https://rubygems.org https://gems.ruby-china.com verwenden, um eine Spiegel-Website hinzuzufügen.

Hauptänderungen wie folgt:

diff --git a/templates/web.template.yml b/templates/web.template.yml
index 28fb22d..bb0010c 100644
--- a/templates/web.template.yml
+++ b/templates/web.template.yml
@@ -86,6 +86,9 @@ run:
       cd: $home
       hook: code
       cmd:
+        - git remote -v
+        - git remote set-url origin https://github.com.cnpmjs.org/discourse/discourse.git
+        - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
         - git reset --hard
         - git clean -f
         - git remote set-branches --add origin master
@@ -145,6 +148,7 @@ run:
       hook: web
       cmd:
         # ensure we are on latest bundler
+        - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
         - gem update bundler
         - find $home ! -user discourse -exec chown discourse {} \\+

@@ -152,6 +156,9 @@ run:
       cd: $home
       hook: bundle_exec
       cmd:
+        - su discourse -c 'gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/'
+        - su discourse -c 'gem update bundler'
+        - su discourse -c 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com'
         - su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test developme

   - exec:
...skipping...

Probleme mit der E-Mail-Einrichtung
Foren benötigen normalerweise einen E-Mail-Server, um verschiedene Verifizierungs-Codes, Anmeldebenachrichtigungen oder Passwort-Wiederherstellungen und Benachrichtigungen zu senden.

Der kostenlose Unternehmens-E-Mail-Dienst von NetEase (ym.163.com) kann diese Anforderung erfüllen. Sie können auch den SMTP-Dienst von QQ-E-Mail aktivieren oder kostenpflichtige E-Mail-Dienste erwerben.

Der kostenlose Unternehmens-E-Mail-Dienst von NetEase aktiviert den SMTP-Dienst standardmäßig. Hier ist ein Beispiel für die Einstellung von app.yml: Discourse scheint keine Verbindungen mit SSL zu unterstützen, daher wird hier direkt der SMTP-Dienst verwendet. Beachten Sie, dass die start_tls-Funktion hier explizit deaktiviert werden muss.

  DISCOURSE_SMTP_ADDRESS: smtp.ym.163.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: mail@getblog.cn
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: getblog.cn    # (required by some providers)

Darüber hinaus darf die E-Mail-Adresse des Website-Administrators nicht mit DISCOURSE_SMTP_USER_NAM identisch sein, da Sie sonst möglicherweise keine Registrierungs-E-Mails erhalten.

Installation des Discourse-Forums/BBS-Systems mit Docker (Nginx)

Wenn Sie sich in China befinden, müssen Sie eine Spiegelbeschleunigung durchführen. Suchen Sie den templates-Block in der Konfigurationsdatei und fügen Sie die chinesische Spiegelvorlage templates/web.china.template.yml hinzu:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml"