Bien, c’est bien un problème de réseau, car mon serveur est en Chine.
J’ai trouvé les solutions, je les copie ici en chinois.
Installation de Discourse dans un environnement national
La mise à niveau et la maintenance des versions de Discourse sont effectuées sur GitHub, et Discourse lui-même est écrit en Ruby.
L’accès lent aux sites Web étrangers est un problème avec les serveurs CVM, les serveurs légers de Tencent Cloud et les ECS d’Alibaba Cloud, principalement en raison des limitations de débit mises en place pour soutenir les dépôts Git nationaux.
Lors du clonage de Discourse hébergé sur GitHub, vous pouvez accélérer l’accès à GitHub en remplaçant le lien de clonage github.com par github.com.cnpmjs.org, par exemple :
Remplacez git clone https://github.com/discourse/discourse_docker.git par git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git
En outre, lors de l’exécution de ./discourse-setup, le programme d’installation installera également des projets supplémentaires dans Docker,
Par exemple : gem update, qui nécessite également l’ajout d’un miroir Ruby.
Vous pouvez ajouter l’adresse du miroir Ruby en modifiant le fichier de configuration, les fichiers principalement concernés sont docker.git
En outre, lors de l’exécution de ./discourse-setup, le programme d’installation installera également des projets supplémentaires dans Docker,
Par exemple : gem update, qui nécessite également l’ajout d’un miroir Ruby.
Vous pouvez ajouter l’adresse du miroir Ruby en modifiant le fichier de configuration, les fichiers principalement concernés sont
discourse/templates/web.template.yml
discourse/containers/app.yml
Avant de rechercher les endroits où gem update est appelé dans les fichiers ci-dessus, ajoutez la déclaration suivante pour configurer le site miroir :
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem update bundler
Pour bundle, vous pouvez ajouter un site miroir avec bundle config mirror.https://rubygems.org https://gems.ruby-china.com.
Modifications principales comme suit :
--- 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...
Concernant la configuration de la messagerie
Les forums ont généralement besoin d’un serveur de messagerie pour envoyer divers codes de vérification, messages de connexion, récupération de mot de passe, notifications, etc.
La messagerie d’entreprise gratuite de NetEase (ym.163.com) peut répondre à ce besoin. L’activation du service SMTP pour la messagerie QQ est également possible, et bien sûr, vous pouvez également acheter une messagerie payante.
La messagerie d’entreprise gratuite de NetEase active le service SMTP par défaut. Voici un exemple de configuration de app.yml : Discourse ne semble pas prendre en charge les connexions SSL, nous utilisons donc directement le service SMTP ici. Notez qu’il faut désactiver explicitement la fonction start_tls.
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)
De plus, l’adresse e-mail de l’administrateur du site ne doit pas être identique à DISCOURSE_SMTP_USER_NAM, sinon vous pourriez ne pas recevoir les e-mails d’inscription.
Installation de Discourse Forum/BBS System avec Docker (Nginx)
Si vous êtes en Chine continentale, vous devrez accélérer le miroir. Trouvez le bloc templates dans le fichier de configuration et ajoutez le miroir national templates/web.china.template.yml :
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/sshd.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml"