Guia oficial de instalação do Discourse | Instalação na plataforma Cloud Discourse

Este documento é uma tradução do conteúdo da página discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.

A versão original em chinês foi publicada em: Discourse 云平台安装 - Discourse - iSharkFly. Sinta-se à vontade para participar da discussão.

Instalação em Plataforma de Nuvem

A instalação do Discourse em plataformas de nuvem geralmente leva menos de 30 minutos, mesmo que você não tenha nenhum conhecimento sobre Rails ou shell do Linux. Abaixo, realizamos os testes de instalação usando o provedor de serviços DigitalOcean, mas todos os passos de instalação podem ser realizados em qualquer plataforma de computação em nuvem compatível com Docker, bem como em servidores locais.

:bell: Não tem nem 30 minutos? Você pode entrar em contato com a comunidade Discourse para ajudá-lo a concluir a instalação. A comunidade Discourse cobrará uma taxa única de $150 (dólares americanos). Clique aqui para comprar o serviço.

Preparativos antes de começar

Nome de Domínio

:bell: O Discourse não pode funcionar com um endereço IP; você deve possuir um nome de domínio ou um subdomínio para realizar a instalação, por exemplo, example.com.

  • Se você já possui um nome de domínio, pode escolher qualquer subdomínio para a instalação, como discourse.example.com, talk.example.com ou forum.example.com, para instalar sua instância do Discourse.
  • Se ainda não tem um domínio, visite o site NameCheap para pesquisar domínios que lhe agradem, ou faça uma pesquisa no Google por melhores registradores de nomes de domínio para escolher seu registrador favorito.
  • Seu console de DNS deve ser acessível. Após comprar o domínio, você precisará acessar sua configuração de DNS para configurá-lo. Para o site do Discourse que você está instalando, você precisará criar um registro A em seu DNS. Este registro A deve apontar o domínio que você deseja instalar para um endereço IP específico. Este endereço IP geralmente é o IP do servidor que você comprou na primeira etapa.

E-mail

:warning: O sistema de e-mail é extremamente importante no processo de criação de usuários do Discourse. Se você não criar um servidor SMTP de e-mail antes de instalar o Discourse, sua instalação do Discourse não poderá acessar nem fazer login (SEU SITE ESTÁ QUEBRADO)!

  • Se você já possui seu próprio servidor de e-mail SMTP, pode usar diretamente as informações de configuração do seu servidor de e-mail existente.
  • Ainda não tem um servidor de e-mail? Acesse Servidores de e-mail recomendados pelo Discourse.
  • Para garantir que seus e-mails sejam entregues normalmente, você deve adicionar registros SPF e DKIM válidos em seu DNS. Consulte a documentação do seu provedor de serviços de e-mail sobre como configurar essas informações.

Com base em nossa experiência prática, a instalação do Discourse exige um domínio válido e um servidor de e-mail configurados. Para situações na China, você pode usar e-mails corporativos fornecidos pela Alibaba Cloud ou Tencent Cloud. Geralmente, recomendamos o uso de servidores de e-mail fora da China, como o SES da AWS ou o MailGun, que são serviços excelentes. Você pode precisar de um cartão de crédito internacional para verificação. No entanto, esta etapa é obrigatória; caso contrário, seu Discourse não poderá concluir a instalação.

Instalação

Criar um novo servidor em nuvem

Crie um novo servidor em nuvem, por exemplo: DigitalOcean. Claro, você também pode usar servidores fornecidos por outras plataformas.

Se você escolher um servidor localizado dentro da China continental, é muito provável que enfrente problemas de rede. Esta tradução adicionou uma seção extra para resolver problemas de rede.

  • A configuração padrão do sistema operacional Ubuntu LTS da versão atual funciona muito bem. No mínimo, é necessário um sistema operacional Linux de 64 bits, e o kernel desse sistema operacional deve estar atualizado para a versão mais recente.
  • A configuração padrão de 1 GB de memória geralmente funciona bem para comunidades pequenas do Discourse. No entanto, recomendamos o uso de 2 GB de memória para comunidades grandes.
  • A configuração padrão do New York (Nova York) é uma boa região geográfica para a América do Norte e Europa. Se a maioria dos usuários do seu Discourse estiver localizada em outras regiões geográficas, você pode escolher um data center mais próximo de você.
  • Insira o domínio discourse.example.com para criar um Droplet no DigitalOcean (Droplet é o nome que o DigitalOcean dá aos servidores). Claro, você também pode comprar e usar seu próprio domínio. Geralmente, a instalação do Discourse requer um domínio real; não é possível instalar via endereço IP. Portanto, recomendamos que você primeiro compre um domínio ou use um subdomínio do seu domínio existente.

Crie seu novo Droplet. Este processo equivale a criar um servidor no DigitalOcean, o mesmo que criar um VPS ou servidor em outras plataformas. Após concluir a criação, você receberá um e-mail contendo a senha do usuário Root. No entanto, recomendamos que você configure o uso de chaves SSH para aumentar a segurança do acesso ao seu servidor.

Acessar seu servidor em nuvem

Use o endereço IP e o SSH para se conectar e acessar o servidor que você criou. Para a plataforma Windows, você pode instalar o Putty e executar o comando abaixo para se conectar:

ssh root@192.168.1.1

Se você não configurou uma chave SSH, pode usar a senha contida no e-mail enviado pelo DigitalOcean para fazer login, ou usar sua chave SSH local para se conectar.

Instalar Docker / Git (Opcional)

sudo apt install docker.io
sudo apt install git

Se você deseja usar sua própria versão do Docker, pode instalá-la agora no seu servidor recém-configurado. Se o Docker não estiver instalado por padrão no seu servidor, o discourse-setup fará o download e a instalação automaticamente a partir do get.docker.com.

Instalar o Discourse

Clone o código do repositório Instalação oficial do Docker do Discourse para o diretório /var/discourse no seu computador local.

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

Você só precisa executar os comandos acima. A instalação do Discourse requer privilégios de root.

Adicionar espelhos do Docker (Apenas para servidores na China continental)

Se seu servidor estiver localizado na China continental, é muito provável que você fique travado na etapa do Docker. Tente adicionar espelhos do Docker.

Tomando a Tencent Cloud como exemplo, use seu editor preferido para editar /etc/docker/daemon.json no Linux e adicione o seguinte conteúdo. Você pode tentar alterar https://mirror.ccs.tencentyun.com para a URL do espelho do Docker fornecida pelo seu provedor de servidores em nuvem:

{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}

Após adicionar o espelho do Docker, reinicie o aplicativo Docker para aplicar as alterações usando sudo systemctl restart docker.

Editar a configuração do Discourse

Execute a ferramenta de configuração com o seguinte comando:

./discourse-setup

Você precisa configurar todos os parâmetros conforme as instruções abaixo:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 

As entradas acima criarão um arquivo app.yml para sua instância do Discourse, que configurará sua instância após a instalação. Todo o processo de inicialização da instalação pode levar de 2 a 8 minutos para configurar seu Discourse. Se ocorrer um erro de instalação ou se você precisar modificar sua configuração após a conclusão da instalação, você pode executar novamente o comando ./discourse-setup (este comando recarregará o arquivo app.yml existente). Ou você pode editar manualmente o conteúdo do arquivo /containers/app.yml e, em seguida, executar novamente ./launcher rebuild app; caso contrário, suas modificações não terão efeito.

Otimização para ambiente de rede na China

Se seu servidor em nuvem estiver na China continental, é muito provável que você enfrente problemas de rede ao executar ./discourse-setup ou ./launcher rebuild app. O Discourse já configurou serviços de espelho para todas as imagens, exceto o Docker. Você só precisa adicionar uma linha aqui no seu containers/app.yml:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml" # Adicione esta linha para configurar espelhos para gerenciadores de pacotes como npm e rubygems

Isso resolverá o problema.

Iniciar o Discourse

Após a conclusão da configuração de instalação inicial, sua instância do Discourse deve ser acessível no navegador através do domínio configurado discourse.example.com.

Para servidores localizados na China continental, você pode precisar primeiro realizar o registro (ICP filing) conforme as instruções do provedor de servidores em nuvem antes de prosseguir.

Registrar uma nova conta de administrador

Use o endereço de e-mail que você inseriu durante o processo de configuração de inicialização para registrar uma conta de administrador.

(Se você não conseguir registrar sua conta de administrador, verifique os logs no caminho /var/discourse/shared/standalone/log/rails/production.log ou acesse a Lista de verificação de problemas de e-mail.)

Após concluir o registro da conta de administrador, o assistente de configuração será iniciado e guiará você na configuração de sua instância do Discourse.

Ao concluir todo o assistente de configuração, você verá os tópicos da equipe (Staff topics) e LEIA PRIMEIRO: Guia Rápido de Início para Administradores. Este assistente de configuração conterá sugestões para configurações futuras e como personalizar sua instalação do Discourse.

Manutenção após a instalação

  • Recomendamos fortemente ativar as atualizações automáticas de segurança para seu sistema operacional. No Ubuntu, use o comando dpkg-reconfigure -plow unattended-upgrades. No CentOS/RHEL, use o pacote yum-cron.
  • Se você estiver usando login por senha para acessar seu sistema operacional em vez de uma chave SSH, certifique-se de usar uma senha forte. No Ubuntu, use o pacote apt-get install libpam-cracklib. Recomendamos o uso de fail2ban, que bloqueará endereços IP que falharem em fazer login 3 vezes por 10 minutos.
    • Ubuntu: apt-get install fail2ban
    • CentOS/RHEL: sudo yum install fail2ban (requer EPEL)
  • Se desejar instalar um firewall por padrão, ative o ufw no Ubuntu configurando um firewall ou use o firewalld no CentOS/RHEL 7 e versões posteriores.

Quando houver uma nova versão do Discourse, seu endereço de e-mail receberá um aviso de atualização. Mantenha sua instância do Discourse atualizada para garantir que todas as questões de segurança sejam resolvidas. Você receberá lembretes por e-mail à medida que novas versões do Discourse forem lançadas. Mantenha-se atualizado para obter os recursos mais recentes e correções de segurança. Para atualizar o Discourse para a versão mais recente, acesse /admin/upgrade pelo seu navegador e clique no botão de atualização.

O comando launcher no diretório /var/discourse é usado para algumas manutenções em nível de sistema:

Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a container (Iniciar/inicializar um contêiner)
    stop:       Stop a running container (Parar um contêiner em execução)
    restart:    Restart a container (Reiniciar um contêiner)
    destroy:    Stop and remove a container (Parar e remover um contêiner)
    enter:      Use nsenter to get a shell into a container (Usar nsenter para acessar o shell dentro de um contêiner)
    logs:       View the Docker logs for a container (Visualizar os logs do Docker de um contêiner)
    bootstrap:  Bootstrap a container for the config based on a template (Inicializar um contêiner para a configuração com base em um modelo)
    rebuild:    Rebuild a container (destroy old, bootstrap, start new) (Reconstruir um contêiner, o que excluirá o antigo, inicializará um novo e o iniciará)
    cleanup:    Remove all containers that have stopped for > 24 hours (Remover todos os contêineres que pararam há mais de 24 horas)

Options:
    --skip-prereqs             Don't check launcher prerequisites (Não verificar pré-requisitos do launcher)
    --docker-args              Extra arguments to pass when running docker (Argumentos extras para passar ao executar o docker)
5 curtidas

A tradução está ótima, parabéns! Esperamos que o oficial tenha uma entrada multilíngue.

1 curtida

Obrigado.

Nós também percebemos que há muito pouco conteúdo em chinês ao usar o Discourse, mas a plataforma Discourse é realmente muito boa.

A instalação tem um pouco de dificuldade e alguns requisitos prévios; não é algo que possa ser instalado em qualquer máquina.

No entanto, é possível contornar esses obstáculos com relativa facilidade, então decidimos submeter ao projeto oficial algumas das contribuições que já haviam sido publicadas internamente.

O time oficial é bastante receptivo e aberto, mas não sabíamos exatamente como organizar as contribuições, o que acabou ficando um pouco desorganizado.

Gradualmente, também vamos submeter ao projeto oficial alguns dos artigos que já temos.

3 curtidas

Originalmente, havia um fórum em chinês, que parece ter fechado no início do ano.

Ainda me lembro de ter visto isso e de ter consultado alguns artigos deles durante a instalação.

Provavelmente, o antigo moderador também não tinha tempo para manter o site, já que manter um site exige bastante dedicação e recursos financeiros.

Como não estamos muito familiarizados com o Discourse, sempre usamos o Discuz. Desde que o Tencent adquiriu o DISCUZ, ele não recebe atualizações há anos, apresenta muitos problemas e não é possível mais atualizá-lo.

Foi então que decidimos procurar uma alternativa, descobrimos o Discourse, instalamos e começamos a usar, e a experiência foi bastante positiva.

Compartilhamos algumas de nossas experiências em nossa própria seção: iSharkFly - 飞鲨

Com o tempo, percebemos que há muito poucos materiais em chinês, então pensamos em compartilhar algo com a comunidade oficial.

Manter um site ativo não é nada fácil. :slight_smile:

Esperamos que mais pessoas utilizem o Discourse. Quanto mais usuários, mais animado fica o ambiente, e isso acaba gerando ainda mais interesse.

1 curtida

@fantasticfears Parece que esse é o dono do site em chinês… Mas a última visita foi em 2019. Não sei se ele esqueceu de renovar o servidor ou por outro motivo, mas o site em chinês sumiu de repente.

Provavelmente não tiveram tempo de lidar com isso.

Não tem problema, fique dando uma volta no fórum oficial. Hehe.

Para comunidades em chinês com usuários principalmente da China, a localização do Discourse ainda é insuficiente. Afinal, os hábitos de uso dos usuários são diferentes.

É a verdade, todos que usam o método de mapeamento de strings para tradução têm esse problema.

As strings traduzidas e a ordenação ficam um pouco estranhas.

Mas, acho o Discourse muito bom, especialmente o upload de anexos, que é extremamente conveniente.

O conteúdo está em formato Markdown; embora haja uma curva de aprendizado para usuários comuns, é suficiente.

O mais importante é que os dados e o armazenamento estão separados. Isso merece um elogio: espaço quase ilimitado para anexos, CDN incluso e backups que não precisam se preocupar com os anexos. Para quem gosta de fazer capturas de tela, é simplesmente perfeito.

1 curtida

A comunidade OSSEZ ajustou o nome de domínio, e este artigo foi publicado em: Discourse 云平台安装 - Discourse - iSharkFly.

1 curtida

Adicionei o capítulo Otimização para o ambiente de rede da China.

3 curtidas