Como instalar o Discourse localmente?

Estou avaliando o Discourse como candidato para um fórum no meu projeto.

Estou um pouco surpreso com o quão complicado é executar a pilha na prática.

No GitHub, há esta instrução — ela exige um servidor SMTP e um domínio.

Também vi outro guia que detalha a instalação da pilha diretamente no host. Preferiria confiar no Docker para configurar todas essas dependências :slight_smile:

O que também me confundiu foi que o primeiro guia enfatizou bastante a necessidade de um servidor SMTP e DNS. Este outro não menciona isso de forma alguma.

Pareceu-me que, como tudo está em contêineres Docker, eu deveria ser capaz de apenas executar algum Docker Compose para ter os contêineres do Discourse e do banco de dados (como vejo que é PostgreSQL) em execução (+ possivelmente alguns outros contêineres, como cache, se o Discourse precisar). Depois, em produção, provavelmente hospedaria em Kubernetes (parece não ser tão fácil, conforme li em algum fórum).

Estou esquecendo algo?

1 curtida

E sem Docker (caso haja interesse ou você ache o método acima muito lento):

2 curtidas

Você deseja uma instalação de desenvolvimento ou uma instalação de produção? Se for esta última, consulte Instalação Padrão Oficial do Discourse. É possível executar sob k8s, mas não é direto, pois você precisa usar ./launcher para construir o contêiner. E fazer uma atualização completa sem tempo de inatividade exige alguns passos que não são imediatamente óbvios. Se você quiser que seja fácil, basta criar uma VM (um pouco mais fácil se rodar Ubuntu ou Debian).

Sim, você precisa ser capaz de enviar e-mails para produção. Para desenvolvimento, obviamente, você não precisa disso.

1 curtida

@merefield Obrigado pelo link do Docker. Isso funciona e está próximo do que imaginei que o processo seria. Embora seja um pouco estranho que tudo esteja empacotado em um único container. E sim, é lento.
O que me surpreendeu foi que, ao fazer git clone do Discourse e cd discourse, meu shell ficou muito lento — é a primeira vez que vejo isso :slight_smile:. Esse repositório deve conter muitos arquivos ou algo assim, embora eu não tenha certeza do motivo de isso impactar meu shell.

@pfaffman Também gostaria de tentar uma instalação mais próxima da produção, para ter uma ideia de como é o processo. Estou bem com a instalação em uma VM. No entanto, e quanto ao servidor SMTP e ao domínio? O guia é muito rígido quanto a isso e diz que eu DEVO ter esses elementos.
E tudo bem, mas é só que não entendo completamente algumas coisas:

  • por que o domínio é realmente necessário? Por que localhost não é suficiente?
  • o servidor de e-mail precisa apontar para o mesmo domínio que eu uso para o Discourse?
  • o guia também fala sobre subdomínios — por que subdomínio? Ou seja, estou configurando uma VM no Azure, e a VM tem algum DNS atribuído a ela (como myvm.westeurope.cloudapp.azure.com) — esse domínio não seria suficiente?
1 curtida

É para produção e requer HTTPS, então você precisa de um nome de domínio. O da Azure funcionará.

Você não precisa usar o mesmo nome de domínio para o servidor de e-mail que para o hostname. Há algum tempo, alterei o discourse-setup para solicitar o endereço de e-mail de notificação.

Subdomínio significa apenas não usar x.com, mas sim y.x.com. Essa é uma prática bastante estabelecida.

Olá Marcin,

Tenho a mesma preocupação que você sobre os nomes de domínio para o Discourse. POR QUE O LOCALHOST NÃO É SUFICIENTE?

Instalei o Discourse apenas para minha equipe brincar, mas não consegui sem DNS. Tentamos adicionar um recurso DNS com localhost ao arquivo hosts no nosso servidor para resolver, mas sem sucesso.

Alguém já tentou rodar o Discourse sem um domínio público?

Não. Se você quiser executar uma instalação de desenvolvimento, não precisa de um nome de host, mas ela funcionará apenas para localhost. Se quiser que sua equipe a utilize, será necessário um nome de host. Se você tem uma equipe, certamente tem um nome de domínio? Basta criar algum subdomínio do que sua empresa utiliza, pagar US$ 12 por um nome de host ou fazer o teste gratuito.

Bem, para nós — não queremos que o discurso seja público. Queremos um fórum de discussão interno. Concordo com os outros: localhost falha, a instalação falha quando você está apenas tentando fazer um teste. É realmente desanimador, e os scripts malucos, em vez do bem conhecido e padrão ‘docker-compose up -d --build’, são, no mínimo, alarmantes. Não sei se quero usar este produto porque ele se leva muito a sério… ou pelo menos alguém que escreveu o lançador.

1 curtida

Ou talvez tenha sido escrito antes que o docker-compose se tornasse uma utilidade viável, e ainda funciona em milhares de sites, e uma mudança poderia correr o risco de quebrá-los todos por um caso de borda.

Se o servidor tem acesso ao mundo externo, não é tão difícil desativar as funcionalidades de HTTPS, embora eu não tenha feito isso há algum tempo.

1 curtida

@pfaffman Isso é exatamente o que aconteceu quando o docker-compose foi lançado em 2015. Foi recebido ceticismo saudável.

Minha organização não possui servidores públicos. Posso obter o Discourse, que, francamente, é a melhor solução disponível sem um .com?

Você precisa de um nome de domínio, mas ele não precisa estar em um IP público. Se o seu servidor tiver acesso à internet (para baixar o Discourse e seus componentes), você pode desativar o Let’s Encrypt e tudo deve funcionar. Acredito que você só precise excluir os modelos de SSL e Let’s Encrypt no arquivo YAML, mas não poderá usar o discourse-setup. Copie o exemplo standalone e edite-o manualmente.

Você ainda precisará de um servidor de e-mail.

Eu gostaria de poder fazer isso facilmente no Mac M1

2 curtidas

Tenho o Discourse rodando em modo de desenvolvimento no meu M1 Pro localmente, sem problemas.

3 curtidas

É necessário por vários motivos. Embora você possa obter um domínio gratuitamente em FreeNom, no entanto, tem havido muita controvérsia sobre como o FreeNom lida com dados e informações do usuário, portanto, tenha cuidado se você optar por seguir esse caminho.

2 curtidas