Este é um guia de #como-fazer sobre as Configurações Ocultas do Site, como habilitá-las e por que você pode querer ajustá-las.
Nível de usuário necessário: Administrador
Importante: O acesso ao console é necessário para algumas etapas.
No Discourse, as configurações ocultas do site referem-se a opções de configuração que não são prontamente visíveis ou acessíveis através da interface padrão do painel de administração. Essas configurações fazem parte da configuração de backend que pode controlar vários recursos avançados ou potencialmente impactantes do site.
Essas configurações ocultas vêm com valores padrão pré-configurados, definidos para garantir desempenho e segurança ideais com base em casos de uso comuns e melhores práticas.
As configurações ocultas são ocultadas da interface de configurações padrão para evitar a má configuração acidental por administradores que talvez não entendam totalmente suas implicações. Elas são destinadas a:
- Administradores que têm um profundo entendimento do funcionamento interno do Discourse.
- Casos específicos em que uma configuração de site incomum ou muito específica é necessária.
- Teste ou recursos experimentais que ainda não estão prontos para uso geral.
Os administradores que desejam modificar configurações ocultas geralmente precisam fazê-lo porque a configuração padrão não se alinha perfeitamente com suas necessidades.
Notas Importantes Sobre Configurações Ocultas:
Ajustar configurações ocultas do site no Discourse pode levar a vários problemas, como vulnerabilidades de segurança, impacto negativo no desempenho, degradação da experiência do usuário ou perda de dados, se não for feito com cuidado!
As configurações ocultas do site só devem ser modificadas por administradores do Discourse experientes. Antes de alterar uma configuração, certifique-se de entender o que ela faz e as implicações da mudança. Quando possível, implemente mudanças significativas de configuração em um ambiente de staging ou desenvolvimento. Antes de fazer alterações amplas ou críticas, certifique-se de que os backups estejam atualizados para restaurar o estado do fórum, caso algo dê errado.
Como Editar Configurações Ocultas do Site
Opção 1: Console Rails
Para modificar configurações ocultas do site, você geralmente precisa usar o console Rails, uma ferramenta de linha de comando que permite interagir diretamente com o backend da sua instalação do Discourse. Para ajustar as configurações via console rails, você pode seguir estas etapas:
- Acessar o Console Rails:
cd /var/discourse
./launcher enter app
rails c
- Alterar uma Configuração:
SiteSetting.nome_da_sua_configuracao = novo_valor
Substitua nome_da_sua_configuracao pelo nome da configuração que você deseja modificar e novo_valor pelo valor que deseja definir.
- Sair do Console:
exit
Opção 2: Configurar Variáveis de Ambiente em app.yml
Você também pode usar variáveis de ambiente para ajustar configurações ocultas do site. O arquivo app.yml é um arquivo de configuração usado em implantações do Discourse baseadas em Docker. Ele geralmente está localizado no diretório /containers da sua instalação do Discourse. Veja como você pode adicionar ou modificar variáveis de ambiente:
- Acessar o Arquivo
app.yml:
Abra o arquivoapp.ymlno seu editor de texto preferido:
nano /var/discourse/containers/app.yml
- Adicionar Variáveis de Ambiente:
Variáveis de ambiente podem ser configuradas na seçãoenvdo arquivoapp.yml. Elas seguem o padrãoDISCOURSE_NOME_DA_CONFIGURACAO: valor. Por exemplo, para definir a configuraçãomax_category_nestingcomo3por meio de uma variável de ambiente, você usaria:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- Reconstruir o Contêiner:
Após salvar as alterações no arquivoapp.yml, reconstrua o contêiner Docker do Discourse para aplicar as alterações:
cd /var/discourse
./launcher rebuild app
Por Que Habilitar Configurações Ocultas
Habilitar ou ajustar configurações ocultas do site no Discourse permite que os administradores personalizem profundamente a configuração do fórum para atender a requisitos técnicos específicos, melhorar o desempenho ou garantir segurança e conformidade, apoiando assim uma experiência de usuário e eficiência operacional finamente ajustadas.
Exemplos de configurações ocultas do site incluem:
- SQL de Emblemas (Badge SQL): Habilitar
enable_badge_sqlpermite que os administradores do site criem consultas SQL personalizadas para critérios de emblemas, oferecendo flexibilidade na atribuição de emblemas com base em condições complexas. - Exclusão Permanente de Posts: Habilitar
can_permanently_deletepermite a exclusão permanente de posts por motivos de conformidade ou privacidade. - Configurações de Backup S3: Incluir uploads S3 em backups com
include_s3_uploads_in_backupspode ser usado para estratégias de backup aprimoradas. - Limites de Taxa de Pesquisa (Search Rate Limits): Ajustar os limites de taxa de pesquisa com configurações como
rate_limit_search_userpara evitar throttling em cenários de alto uso.
Perguntas Frequentes (FAQs)
P: Configurações ocultas podem ser exibidas na interface do usuário?
R: Configurações ocultas no Discourse não são configuráveis diretamente através da interface do usuário por motivos de segurança e complexidade.
P: Onde posso encontrar informações sobre cada configuração oculta?
R: Informações detalhadas sobre cada configuração podem ser encontradas no Guia de Referência de Configurações Ocultas do Site e no código-fonte do Discourse, especificamente no arquivo site_settings.yml no repositório do GitHub. Informações adicionais sobre algumas configurações também estão disponíveis nos fóruns Meta do Discourse.
P: As alterações feitas por meio de variáveis de ambiente persistem após as atualizações?
R: Sim, se definidas em app.yml ou no perfil permanente do sistema, essas configurações persistirão após as atualizações, a menos que sejam substituídas por outras configurações.
P: Como sei quais configurações podem ser controladas por meio de variáveis de ambiente?
R: Normalmente, qualquer configuração de site do Discourse pode ser prefixada com DISCOURSE_ e definida como uma variável de ambiente.
P: É seguro configurar informações confidenciais por meio de variáveis de ambiente?
R: Variáveis de ambiente são geralmente consideradas seguras para gerenciamento de configuração. No entanto, certifique-se de que elas não sejam expostas em ambientes compartilhados ou inseguros.
P: Preciso reconstruir se eu alternar uma configuração do site?
R: Na maioria dos casos, alternar uma configuração do site por meio do console rails não requer a reconstrução da sua instalação do Discourse. Essas alterações geralmente entram em vigor imediatamente ou após uma atualização da sua instância. No entanto, algumas configurações específicas, especialmente aquelas que influenciam os aspectos fundamentais do sistema, podem exigir uma reinicialização ou reconstrução para que as alterações sejam aplicadas. Para alterações feitas no arquivo app.yml, uma reconstrução do seu contêiner Discourse é necessária para que essas alterações entrem em vigor.
P: Posso reverter uma alteração de configuração facilmente?
R: Sim, a maioria das configurações pode ser revertida, a menos que envolvam exclusão de dados.