Estou trabalhando em um pequeno projeto no qual estamos personalizando o Discourse para levar o usuário diretamente a “um tópico”, com muitas customizações no lado do cliente. O usuário aterrissa diretamente no tópico e pode apenas postar/responder ao thread do tópico. O Discourse está carregado em um WebView no aplicativo móvel. Também removi o editor original e criei um editor personalizado com algumas opções removidas. Esse editor personalizado fica sempre fixado na parte inferior da página aberta para respostas rápidas às postagens dos usuários.
Utilizamos uma configuração mínima de 2 GB (sem Docker). Quando o usuário se cadastra no fórum, estamos redirecionando (no lado do cliente) para um tópico; às vezes, esse redirecionamento leva entre 10 e 25 segundos. Testei outros sites, como o swift.org, e o Discourse deles é realmente rápido o suficiente para carregar as páginas, levando entre 3 e 6 segundos. Analisei as abas de rede e percebi que são exatamente os mesmos arquivos JS e CSS sendo carregados; a única diferença é que o móvel carrega a versão “mobile.css”.
O que poderia estar causando esse problema em nosso Discourse personalizado? Alguma direção para otimizá-lo? Vocês acham que as especificações do servidor precisam ser aumentadas? Nossa base de clientes é de apenas algumas centenas; atualmente, temos apenas alguns usuários (desenvolvedores), e estamos enfrentando esse problema.
Você não fez uma Instalação Padrão Oficial do Discourse, mas sim uma instalação de desenvolvimento? O que você descreve parece ser o desempenho esperado para uma instalação de desenvolvimento.
Você fez suas alterações em um plugin ou fez um fork?
Sim, fiz um fork. Não usei Docker; fiz algumas customizações no lado do servidor e, principalmente, alterações no lado do cliente, como JS e CSS. A documentação oficial de instalação não estava clara sobre a configuração de código personalizado. Você poderia me dizer onde posso encontrar a configuração do Docker com código personalizado? Basicamente, quero apenas puxar o código do meu repositório. [Sou novo no Docker]
Seu código personalizado deve ser sempre construído como um plugin, não como um fork do núcleo.
Concordo, você não tem uma instalação de produção. Configure uma instalação de desenvolvimento adequada, crie seu plugin e coloque-o em uma instalação de produção adequada.
Ao dizer “código personalizado”, quero dizer não alterar o núcleo do Discourse. Apenas alguns ajustes de CSS e mudanças em JS para atender às nossas necessidades. Queríamos apenas redirecionar os usuários (com base em algum tipo de configuração) diretamente para a tela de discussão do tópico (como esta).
Pelo menos em certa medida, se você estiver alterando apenas JavaScript e CSS, provavelmente conseguirá fazer todas as suas alterações com Componentes de Tema. Se precisar fazer alterações no backend do Rails, será necessário um plugin.
Recomendo que você comece pelo link de Desenvolvedor de Temas acima e veja se consegue fazer suas alterações nos componentes do tema.