Longa pausa na instalação padrão do comando: cd /var/www/discourse su discourse -c 'bundle install --retry 3 --jobs 4'

Bem, é realmente um problema de rede, porque meu servidor está na China
Encontrei as resoluções, copio aqui em chinês


Instalação do Discourse em ambiente chinêshttps://mypre.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/

A atualização e manutenção do Discourse são feitas com base no github, e o próprio Discourse é escrito em ruby.

Tanto o CVM da Tencent Cloud, servidores leves quanto o ECS da Alibaba Cloud têm problemas de acesso lento a sites estrangeiros, principalmente devido a operações de limitação de fluxo para apoiar repositórios git domésticos.

Ao clonar o discourse hospedado no github, você pode acelerar o acesso ao github substituindo o link de clone github.com por github.com.cnpmjs.org, por exemplo:

Substitua git clone https://github.com/discourse/discourse_docker.git por git clone https://github.com.cnpmjs.org/discourse/discourse_docker.git

Além disso, ao executar ./discourse-setup, o programa de instalação também instalará alguns projetos adicionais no docker,

Por exemplo: gem update, que também requer a adição de um espelho ruby.

Você pode adicionar o endereço do espelho ruby modificando o arquivo de configuração, os arquivos envolvidos são docker.git

Além disso, ao executar ./discourse-setup, o programa de instalação também instalará alguns projetos adicionais no docker,

Por exemplo: gem update, que também requer a adição de um espelho ruby.

Você pode adicionar o endereço do espelho ruby modificando o arquivo de configuração, os arquivos envolvidos são

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

Antes de encontrar o local onde o gem update é chamado nos arquivos acima, adicione a seguinte declaração de espelhamento de site:

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

Para o bundle, você pode adicionar um site espelho com bundle config mirror.https://rubygems.org https://gems.ruby-china.com.

Modificações principais são as seguintes:

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...

Sobre a configuração de e-mail

O fórum geralmente precisa de um servidor de e-mail para enviar vários códigos de verificação, mensagens de login, recuperação de senha, notificações e outras funções.

O e-mail corporativo gratuito da NetEase (ym.163.com) pode atender a essa necessidade, e o uso do e-mail QQ com o serviço SMTP ativado também é possível, claro, você também pode comprar e-mails pagos.

O e-mail corporativo gratuito da NetEase tem o serviço SMTP ativado por padrão. Abaixo está um exemplo de configuração de app.yml: O Discourse parece não oferecer suporte a conexões SSL, então o serviço SMTP é usado diretamente aqui. Observe que a função start_tls deve ser explicitamente desativada.

  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)

Além disso, o e-mail do administrador do site não deve ser o mesmo que DISCOURSE_SMTP_USER_NAM, caso contrário, você pode não receber e-mails de registro.

Instalação do sistema de fórum/BBS Discourse com Docker (Nginx)

Se você estiver na China continental, precisará de aceleração de espelho. Encontre o bloco templates no arquivo de configuração e adicione o espelho doméstico 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"