Exibindo configurações diferentes de acordo com o domínio

Olá,

Tenho vários produtos online, cada um com sua própria comunidade online. No entanto, como esses produtos são interoperáveis, muitos dos meus clientes usam vários produtos simultaneamente.

Com isso em mente, quero usar uma única instância do Discourse para todos os meus produtos, mas exibir um tema diferente para a comunidade com base no domínio usado para acessá-la.

Por exemplo:

  • app1 → mostra o logotipo e as cores do App1
  • app2 → mostra o logotipo e as cores do App2

Além disso, como todos os tópicos são obrigatórios para serem marcados com base no nome do produto, gostaria de ocultar tópicos com tags de outros produtos. Por exemplo, ocultar #app1 se você estiver acessando app2.com.

Isso deve ocorrer, a menos que o usuário opte por navegar em várias comunidades ao mesmo tempo.

Posso usar qualquer ajuda; no entanto, entendo que algo assim pode não estar disponível nativamente. Como desenvolvedor, posso criar um plugin e escrever código JavaScript adicional para fazer isso acontecer.

Suponho que o primeiro obstáculo seja permitir que a mesma instância do Discourse seja executada em vários domínios. Como começo com isso?

Ter as mesmas informações em vários sites é um erro de SEO. Não recomendo. Tenho um componente de tema (acho que quebrado, mas vou consertar em breve) que alterará a página inicial dependendo do grupo em que alguém está, para que você possa definir o grupo de acordo com um campo personalizado que obtém quando eles criam sua conta para definir sua página inteira para a categoria de seu produto favorito.

Se você não se importa em ter seu site indexado, pode olhar o template web_only que redireciona e adicionar ao seu yml para desfazer isso. Acho que Configurar configuração multissite com Let’s Encrypt e sem proxy reverso oferece um exemplo.