Instalando Discourse em um VPS auto-hospedado. Um processo com FAQs

Um processo específico passo a passo para iniciantes na instalação do Discourse. Desde a escolha de um servidor adequado até a configuração, SMTP, DNS e fazendo tudo na ordem certa. Por se tratar de um processo manual com muitas ramificações e opções, tenho muitas dúvidas e já ouvi falar de muitas configurações que deram errado quando não foram feitas com cuidado. Quero fazer isso certo e ficaria grato se alguém pudesse me corrigir. Vou seguir com o máximo de passos possível e parar quando travar. Esta pode ser uma página útil com as principais dúvidas resumidas de forma abrangente em um só lugar

Objetivo: Instalar o Discourse em um VPS auto-hospedado para um fórum que começará com 100 usuários/mês

1) Entre os 2 guias oficiais disponíveis, estou escolhendo o mais simples. Quais problemas posso enfrentar? Isso não é bom para flexibilidade/expansão futura?
Instalação básica simples de 10 minutos: Guia de instalação Docker para iniciantes
Instalação poderosa, flexível, para servidores grandes ou múltiplos: Guia de instalação Docker avançado

2) Esta é uma boa ordem de configuração? i) Configurar e alugar um VPS > ii) SMTP > iii) Domínio e DNS > iv) Instalar o Discourse

3.1) Sobre Domínio e DNS, já tenho um site com meu domínio personalizado. Não tenho certeza do que devo fazer; Subdomínio ou Nameserver filho? Pesquisei, mas não entendi

3.2) Embora não seja agora, se necessário, um fórum Discourse pode ser conectado a um domínio puro como example.com, certo? (se não estiver sendo usado, é claro)? Não precisa ser um subdomínio como forum.example.com, certo? Por que o guia do Discourse diz apenas “Crie um registro DNS - A apontando seu subdomínio (por exemplo, forum.example.com) para o endereço IP do seu servidor”

4.1) Sobre SMTP: Estou completamente confuso aqui. Sobre logins de usuários, este é meu objetivo Connect User logins from my Wix site for my Discourse forum Para garantir isso, o que devo fazer?
4.2) Ainda não configurei um e-mail comercial, mas posso fazer isso agora pelo Hostinger. Isso tem muita relação com SMTP? Sobre SMTP, já ouvi falar neste fórum sobre MailGun, MailJet e Brevo. O que significa isso?

5) Escolhendo e configurando o VPS: Contabo e Hetzner eram os mais baratos e pareciam bastante confiáveis. Se eu escolher o Contabo mais barato, vou perder algo útil? Eles são seguros, certo? (Queria comparar toda a configuração com a da Hetzner, mas nem parece que eles permitem ver as opções de configuração sem fornecer seus dados, cartão de débito e revisar seus termos?? O máximo que tenho são as capturas de tela da @Lilly)
5.1) Painel: A Contabo mostra que Webmin e Webmin + LAMP estão incluídos. cPanel é mostrado como um complemento caro. Já ouvi falar do cPanel, não preciso disso, certo?
5.2) SO: A Contabo mostra Ubuntu incluído sem nenhum detalhe sobre isso, isso é suficiente? (A configuração da Digital Ocean mostra opções ao lado do Ubuntu, por exemplo, 24.04 (LTS) x64

5.3) Uma série de aplicativos são mostrados como incluídos. Se você encontrar problemas com algum, me avise

5.4) As seguintes seleções padrão estão ok? Consigo me virar sem complementos, certo?

5.5) IPv6 não é mostrado na configuração, embora na página do plano de VPS deles seja anunciado o seguinte: ‘Endereços IPv4 e IPv6 dedicados vêm com todos os planos’. Me pergunto se isso tem ou não
5.6) Ouvi algumas críticas negativas sobre a Contabo, o que pensam as pessoas aqui que já usaram a Contabo?

5.7) As boas especificações a seguir são as mínimas disponíveis e por preços excelentes! Só para saber, (caso precise trocar de VPS) como o Discourse recomenda 2GB, não seria 4GB desnecessário? O que é um snapshot?

Screenshot 2026-07-18 004447

Se você é iniciante, siga o guia de instalação para iniciantes. Não se antecipe.

Pessoalmente, eu garanto que meu SMTP está funcionando corretamente (tenho as chaves de API e tal) com o DNS apontando para meu IP e então vou terminar de configurar o Discourse, porque o assistente de configuração vai reclamar se o DNS não estiver 100% correto e você fica sem sorte.

Não tenho certeza do que seu provedor quer dizer aqui. Talvez eles queiram dizer “subdomínio”? Nesse caso, adicione o IPv4 do seu VPS a ele.

Sim, um endereço é um endereço. Pode ser x.example.com, example.com, x.y.example.com ou até mesmo example.com/x/ (com alguma configuração avançada).

Você precisará de SMTP para resumos, alertas de administrador, etc., independentemente do DiscourseConnect.

Parece okay para mim

Se você estiver usando Cloudflare, o IPv6 provavelmente é irrelevante. Se você não estiver usando nenhuma forma de proxy e alguém que tenha rede apenas IPv6, então eles não poderão visitar seu site, mas isso é relativamente incomum hoje em dia (muitos ISPs dão um IPv6 “dedicado” e um IPv4 compartilhado pelo qual ainda podem rotear tráfego)

200Mbps não é muito rápido, mas o resto disso é perfeito para um fórum de pequeno a médio porte. A recomendação de 2GB é relativa por alguma razão, então 8GB vai servir bem. Eu executo meu site pequeno em um LXC (menor sobrecarga) com 8GB/6vCPUs e meu uso de recursos é baixo, picos de CPU de cerca de 50-60% durante reconstruções.

Snapshots são basicamente apenas pontos de restauração para sua VM, então se algo der errado, você pode reverter. Não muito útil quando você tem backups frequentes fora do site do Discourse (via R2 ou algo assim), mas ainda é um “desejável” apenas por precaução.

por favor, não use @ para mencionar pessoas. realmente não preciso desse barulho extra nas minhas notificações, e isso é uma má etiqueta em fóruns em geral. se quiser usar nomes de usuário sem mencioná-los ativamente, coloque crases invertidas (backticks) ao redor deles para que não enviem notificações. deixe as pessoas responderem se lerem suas postagens e quiserem responder. obrigado.

boa sorte com sua nova empreitada.

Não se aproxime disso agora. Fique no básico.

  1. Obtenha um nome de domínio com um nameserver, como a Namecheap. Ou, como você já tem um que deseja usar:

Use um subdomínio — esta é a maneira padrão de instalar o Discourse, para que fique algo como forum.seusite.com

  1. Se você não quiser usar o DiscourseID, obtenha um serviço de e-mail transacional com SMTP (como Mailgun ou Resend). O Resend é gratuito e eu o uso.

  1. Configure um servidor VPS (droplet) com acesso SSH pelo fornecedor de VPS de sua escolha.
  2. Instale o Discourse de acordo com o script do guia.

Como já foi dito em outro lugar, provavelmente você não poderá fazer isso porque não possui uma conta empresarial da Wix. Por favor, faça sua pesquisa e informe-se primeiro. Ler é um requisito para ser um bom administrador do Discourse.

Single Sign On (SSO) não é algo sobre o qual você deveria estar pensando agora, já que ainda está aprendendo a configurar a instalação auto-hospedada mais básica.

Para editar seu arquivo app.yml após a execução da configuração inicial, no prompt quando você entrar no servidor via SSH, faça:

cd /var/discourse
nano containers/app.yml

Há um arquivo de exemplo app.yml aqui:

Eu diria para não chegar exatamente ao limite inferior de 2 GB, a menos que você esteja executando um fórum pequeno com poucos usuários.

Não, o cPanel não é necessário.

O e-mail corporativo oferece um serviço de e-mail transacional? Sei que alguns não oferecem. É mais seguro usar serviços como Mailgun, Brevo, Amazon SES, etc.

Outros já detalharam isso, mas estou linkando a documentação sobre o assunto: Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com)

Dito isso, eu sugeriria que você simplesmente optasse pela opção padrão e normal de usar um subdomínio. Além disso, se você já tiver seu site principal no domínio raiz, fica claro que o fórum pertence àquela organização e não é algo aleatório na internet.

Um snapshot é essencialmente um backup completo de todo o VPS. Você ainda pode fazer backups regulares do Discourse caso algo dê errado, se estiver hospedando apenas o Discourse no VPS.

Ah… isso era bastante importante para mim e foi um dos motivos para escolher a auto-hospedagem. Se isso puder ser resolvido depois sem muita dificuldade, tudo bem, mas me pergunto se essa configuração regular será uma barreira para isso no futuro? Devo fazer algo diferente agora para permitir essa funcionalidade, mesmo que não a implemente agora?
O fórum é apenas uma extensão do meu site principal, e eles precisam estar unificados. Se estiverem segregados, isso criaria muitos problemas no meu caso.
Não sei se o SSO é a única solução, mas quero ter a menor separação possível entre meu site Wix e o fórum Discourse.

como eu disse acima:

e aqui você postou:

o que você sabe sobre o MiniOrange? o plano gratuito parece ser limitado a apenas alguns usuários, e assim pode ficar caro para você a $49/mês para o plano básico:

pesquisa e leitura cuidadosa são essenciais ao planejar o que você deseja alcançar.

você sabe como escrever um script Velo para o Wix?

talvez uma solução em JavaScript

eu acho que você precisará configurar um endpoint de API personalizado diretamente no seu site Wix para receber as solicitações de login do Discourse. parece que isso exigirá código JavaScript em um módulo Velo com um arquivo chamado http-functions.js.

isso interceptará o usuário do Discourse, redirecionará e verificará sua sessão de login no Wix, gerará uma carga útil assinada e, esperançosamente, os enviará de volta com segurança ao fórum.

algo como isso talvez:

import { ok, redirect, badRequest } from 'wix-http-functions';
import { currentMember } from 'wix-members-backend';
import crypto from 'crypto';

// escolha uma string aleatória segura para o segredo 

const DISCOURSE_SECRET = "YOUR_SUPER_SECRET_STRING_HERE"; 

export async function get_discourseSso(request) {
    const query = request.query;
    const payload = query.sso;
    const sig = query.sig;

    if (!payload || !sig) {
        return badRequest({ body: "Parâmetros SSO ausentes" });
    }

    // valide a assinatura recebida do Discourse

    const computedSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(payload).digest('hex');
    if (computedSig !== sig) {
        return badRequest({ body: "Assinatura criptográfica inválida" });
    }

    // verifique se o usuário está logado no Wix

    const member = await currentMember.getMember({ fieldsets: ['FULL'] });
    
    // analise a carga útil recebida para recuperar o nonce de rastreamento exclusivo

    const decodedPayload = Buffer.from(payload, 'base64').toString('ascii');
    const params = new URLSearchParams(decodedPayload);
    const nonce = params.get('nonce');

    if (!member) {
        // Se não estiver logado, force-o a fazer login no Wix primeiro, depois retorne aqui
        const loginUrl = `https://yourwixsite.com{encodeURIComponent(request.url)}`;
        return redirect(loginUrl);
    }

    // construa a carga útil do usuário para o Discourse

    const userPayload = `nonce=${nonce}&email=${encodeURIComponent(member.loginEmail)}&external_id=${member._id}&username=${encodeURIComponent(member.profile.nickname || member._id)}&name=${encodeURIComponent(member.contactDetails.firstName + ' ' + member.contactDetails.lastName)}`;

    // criptografe e assine a carga útil do usuário
    const base64Payload = Buffer.from(userPayload).toString('base64');
    const returnSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(base64Payload).digest('hex');

    // redirecione-os de volta ao Discourse como um usuário logado
    const discourseReturnUrl = `https://yourforum.com{encodeURIComponent(base64Payload)}&sig=${returnSig}`;
    return redirect(discourseReturnUrl);
}

você também precisará substituir a URL do seu fórum lá

também haverá alguma configuração do DiscourseConnect, mas não faça nenhuma dessas coisas até que você tenha um fórum auto-hospedado funcionando sem erros.

eu não sou especialista em nenhuma dessas coisas e mal sei algo sobre o Wix, então não há garantias de que essa seja a solução funcional. eu só estou dando um exemplo de um método proposto para demonstrar a complexidade.

Qualquer que seja a IA que escreveu isso, claramente não entende que OpenID/SAML e Discourse Connect são coisas completamente diferentes, então eu não confiaria nas outras coisas que ela está dizendo também.

Obrigado a todos por todas essas respostas até agora​:folded_hands:

Com mais de 2 representantes, verifiquei e confirmei isso. O e-mail corporativo deles atende às necessidades de SMTP do Discourse, sem necessidade de um provedor como MailGun. Eles fizeram uma ressalva também, afirmando que não é para marketing ou envio em massa.
Principais limites do plano Business Starter deles (contrato de 1 ano a 0,79/m):

  • Limite de envio diário: 500 e-mails por dia.
  • Máximo de destinatários por e-mail: 200 destinatários.
  • Limite de envio mensal: Nenhum, apenas o limite diário
    Especificações completas deles, incluindo limites de IMAP/SMTP: Parâmetros e limites do E-mail Hostinger
Um resumo do chat sobre isso👆 com detalhes caso alguém queira verificar mais

Vejo que você está considerando o plano de E-mail Corporativo da Hostinger para suas necessidades de SMTP no Discourse e quer garantir que cubra tudo sem precisar do Mailgun. Fico feliz em investigar isso…
Você pode usar o SMTP do E-mail Corporativo da Hostinger para sua configuração do Discourse, e para comunicação empresarial regular e notificações padrão do fórum, você não precisará de um provedor separado como o MailGun.
No entanto, é importante ter em mente que nosso SMTP não foi projetado para marketing ou envio em massa. Ele é principalmente destinado à comunicação empresarial. Se você planeja enviar campanhas de marketing de alto volume ou correspondências transacionais em grande escala, um serviço dedicado como o MailGun ainda seria a melhor opção para essas necessidades específicas.

Se eu configurar o e-mail corporativo com a Hostinger, mas no futuro precisar de envio em massa, posso simplesmente usar, por exemplo, o MailGun sem ter que migrar/cadastrar um novo e-mail no MailGun?

Dependerá da configuração necessária para o Mailgun. Deixe-me confirmar…
Se você fosse enviar e-mails usando apenas o SMTP do Mailgun, precisaria adicionar registros TXT adicionais. Os registros MX não mudariam, então você pode continuar recebendo e-mails no plano de e-mail da Hostinger enquanto o usa.

Não entendi muito bem isso, você pode explicar melhor para mim?

Pense no seu e-mail como uma caixa postal física:
Recebimento (A própria caixa): Seus e-mails chegam à Hostinger por causa dos seus registros MX. Você manterá esses exatamente como estão, então continuará recebendo toda sua correspondência na sua caixa de entrada da Hostinger.
Envio (Carteiro): Você pode ter mais de uma maneira de enviar correspondência. Ao adicionar um registro TXT (especificamente para SPF e DKIM) ao seu domínio, você essencialmente dá ao Mailgun “permissão” para enviar e-mails em seu nome.
Isso significa que você não precisa migrar/cadastrar um novo endereço de e-mail no Mailgun. Você pode manter sua caixa postal profissional na Hostinger para chats empresariais diários e simplesmente usar o Mailgun como um “motor de envio” para notificações de fórum de alto volume ou e-mails de marketing quando estiver pronto.


Sim.. O MiniOrange provavelmente não é o que estou procurando, com base no site deles, parece ser um IdP de terceiros. Estou tentando usar meu banco de dados existente do Wix como meu IdP.

[quote=“Lilly, post:8, topic:407922”]
você sabe como escrever um script Velo para o Wix?
[/quote]\nNão tenho certeza do que você quer dizer com script, mas fiz muita codificação Velo de front-end e back-end no Wix, construí muitos recursos usando código Velo sozinho e com IA e tutoriais, mas sou iniciante. Dei uma olhada no seu código, adoraria tentar após a instalação. Sobre o fórum do Wix, é bom (embora não tão dinâmico quanto aqui), e essa pergunta ainda não foi respondida.

Até agora eu; :check_mark: configurei o e-mail com a Hostinger para SMTP (atualizei os registros de DNS para isso, como MX, CNAME e TXT no meu Wix) :check_mark: Encomendei um VPS e estou esperando que seja provisionado.

Não é como instalar algum aplicativo móvel, haha.

E você realmente, realmente deve fazer seus próprios backups. E levar esses backups para fora do local. Isso faz parte de ser seu próprio administrador de sistemas. Se você deixar tudo por conta do provedor de hospedagem, corre o risco de perder tudo, e o valor do seu negócio para o provedor é mínimo. O valor dos seus dados para você e para sua comunidade é substancial, se você estiver construindo uma verdadeira comunidade onde as pessoas se importam com suas mensagens e relacionamentos.

Iniciar uma comunidade é assumir uma responsabilidade: se você não tiver as habilidades para essa responsabilidade, deve terceirizá-las. Isso significaria pagar para uma empresa respeitável cuidar das coisas por você: segurança, manutenção, continuidade, reparo e recuperação.

Com que frequência você acha que os snapshots deveriam ser feitos? Uma vez por mês, com backups semanais? Ou duas vezes por semana? Ou isso seria exagero?

Pessoalmente, nunca usei snapshots. (Acho que são itens de custo adicional, e não tenho certeza de sua utilidade quando há um banco de dados ativo em execução.)

A forma como penso na frequência de backups é: como eu me sentiria no momento em que precisasse restaurar o backup? Se eu tivesse perdido um mês de conversas e contribuições dos membros? Isso seria muito ruim. Eu tinha uma responsabilidade com a comunidade, e permiti que seu trabalho fosse perdido.

Por outro lado, se estou operando em uma situação de espaço em disco limitado, quero equilibrar o uso do disco. O que fiz na prática, e provavelmente devo revisar isso, é fazer backups a cada dois dias e manter quatro backups. Um dos moderadores da minha equipe automaticamente baixa uma cópia do diretório de backup todas as noites, então temos uma cópia fora do local. Em caso de desastre, corremos o risco de perder meio semana de contribuições.

Após uma experiência negativa com o serviço da Contabo, estou considerando uma alternativa VPS com a OVHcloud. Mas se isso não for adequado, terei que me contentar com a Contabo

1) Ao escolher uma distribuição com aplicativo, mostra apenas essa opção limitada. Docker sem Ubuntu como opção. Então, devo evitar isso e ir com a distribuição mostrando apenas Ubuntu? Isso significaria que posso instalar o Docker depois ou isso é muito complexo para mim? (se isso for um impeditivo, ignore as próximas perguntas)

2) Sobre os backups, é muito atraente: Backups diários gerenciados gratuitos? Ótimo, certo?

  1. Preocupações sobre as especificações da OVHcloud em comparação com a Contabo:
    3.1) Dois vCores são suficientes?
    3.2) Devo perguntar sobre a porta? (A da Contabo mostrava 200Mbit/s)
3.3) A largura de banda é adequada? Sobre isso, aqui está a comparação Contabo vs OVH:

Eu uso a OVHcloud com essas especificações exatas para executar meu pequeno fórum, uso o Debian e funciona perfeitamente.

Nossa! Que bom ouvir :slight_smile: Até agora, vi tanto o Ubuntu que parecia ser um requisito. O guia oficial também o recomenda, então me pergunto se o Debian poderia causar mais dificuldades para um iniciante como eu (em configurações/modificações/últimas atualizações/tornar as coisas compatíveis)? Ou isso não é um problema?

Simplifique sua vida. Use o Ubuntu.

A instalação padrão leva 30 minutos :slight_smile:

(postagem excluída pelo autor)

(postagem excluída pelo autor)

Não escolha uma com Docker pré-instalado. Vá de Ubuntu ou Debian padrão, o script fará o resto.

Eu detesto Ubuntu e, para ser honesto, não tenho certeza qual é a diferença com o Debian (além de ser muito mais inchado) e por que é tão fortemente recomendado para o Discourse em vez do Debian normal. Parece que você não tem muita experiência, então siga apenas o guia de instalação padrão do Ubuntu.

Obrigado por esclarecer. Vou ficar bem se eu

Só porque não veio pré-instalado, isso não vai me custar dinheiro extra ou me dar trabalho para gerenciar no futuro, certo?

Quase esqueci de outra coisa: diferentemente de outros VPSs, este não tem um painel. Isso pode ser resolvido de forma gratuita e fácil?