# Longa pausa na instalação padrão do comando: cd /var/www/discourse 

su discourse -c 'bundle install --retry 3 --jobs 4'

**URL:** https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142
**Category:** Self-hosting
**Created:** [4 Junho , 2023 07:51 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142 "2023-06-04T07:51:28Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [4 Junho , 2023 07:51 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/1 "2023-06-04T07:51:28Z")

</div>

Olá pessoal! Sou um novo usuário do Discourse da China e encontrei um problema estranho na instalação padrão.

Após executar o comando `./discourse-setup`, meu terminal travou no comando por um longo tempo (mais de 20 minutos).

```plaintext
I, [2023-06-04T07:47:29.161469 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle config --local deployment true'
I, [2023-06-04T07:47:29.544117 #1] INFO -- : 
I, [2023-06-04T07:47:29.544260 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle config --local without "development test"'
I, [2023-06-04T07:47:29.725190 #1] INFO -- : Você está substituindo o valor local atual de without, que atualmente é "test:development"
I, [2023-06-04T07:47:29.725290 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4'

```

Já pesquisei perguntas semelhantes em nosso fórum, como [Local installation of discourse on Centos 7](https://meta.discourse.org/t/local-installation-of-discourse-on-centos-7/150548), que sugeriram que pode ser um problema de rede. Talvez seja apenas porque meu servidor está na China e estou enfrentando problemas de rede, mas testei via `wget https://rubygems.org/`, funcionou.

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/a/c/8ac9b08b1aefd34cea1aeece23e79c890e4e87bf.png)

Não sei o que fazer, obrigado pela sua resposta.

---

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [4 Junho , 2023 10:13 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/2 "2023-06-04T10:13:00Z")

</div>

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](http://github.com) por [github.com.cnpmjs.org](http://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

```plaintext
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:

```plaintext
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:

```plaintext
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](http://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.

```plaintext
  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)](https://www.bugcatt.com/archives/2529)

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`:

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

```

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [4 Junho , 2023 10:45 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/3 "2023-06-04T10:45:35Z")

</div>

Claramente isso é devido ao `bundle install`. Essa operação levará muito tempo mesmo que o servidor esteja em um país estrangeiro, sem mencionar que você terá que superar um muro.  
Tenha cuidado com o mesmo problema ao executar `yarn install` mais tarde.

É melhor não colocar o servidor na China, pois mesmo clonar o discourse do github pode gerar um erro…

* * *

Para desenvolvedores na China: Aparentemente, esse problema é devido ao `bundle install`. Mesmo que o servidor seja implantado em um país estrangeiro, essa operação levará muito tempo. Sem mencionar que você encontrará alguma resistência bem conhecida.  
Tenha cuidado com o mesmo problema ao executar `yarn install` mais tarde.

É melhor não colocar o servidor na China, pois mesmo clonar o discourse do github pode gerar um erro…

---

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [4 Junho , 2023 10:50 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/4 "2023-06-04T10:50:23Z")

</div>

Obrigado pela resposta!

O servidor tem um proxy e pode acessar o GitHub normalmente. O gem/bundle encontrou tutoriais sobre como mudar para um repositório doméstico e agora a implantação está funcionando (mas está travada novamente por falta de memória 🥹).

Eu também gostaria de ter um servidor externo, mas é muito caro 🥹

> **[在国内环境下安装Discourse - 主页 - 第 页 - IzIy's Files - MyPress - MyPre.Cn](https://mypre.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/)**
>
> 在国内环境下安装Discourse, 网络应用,应用技巧, DisCourse,Discourse的版本升级与维护都是基于github来完成的，而Discourse本身又是基于ruby编写。使用包括腾讯云的CVM、轻量服务器以及阿里云的ECS都存在国外网站访问慢的问题，主要是为了扶持国内git仓库做的限流操作。在clone托管在github上的discourse时，可以通过将clone链接替...

[https://www.bugcatt.com/archives/2529](https://www.bugcatt.com/archives/2529)

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [4 Junho , 2023 10:53 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/5 "2023-06-04T10:53:31Z")

</div>

> [@whitewaterdeu](#):
>
> Eu também quero configurar um servidor externo, é muito caro 🥹

Alguns servidores chineses são até mais caros que os estrangeiros (sim, estou falando de você, Alibaba Cloud), isso depende do fornecedor.  
Espere, você realmente escolheu Alibaba Cloud… ah, isso…

---

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [4 Junho , 2023 10:55 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/7 "2023-06-04T10:55:11Z")

</div>

Usei uma máquina de estudante (2 núcleos 2G) 😅  
Não consigo arcar com um servidor com configurações mais altas

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [4 Julho , 2023 10:55 UTC](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/8 "2023-07-04T10:55:35Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
