Este guia explica os vários modos de somente leitura disponíveis no Discourse, como ativá-los e desativá-los, e os cenários em que você pode querer usar cada um.
Nível de usuário necessário: Administrador
Gerenciar uma comunidade online vibrante no Discourse ocasionalmente exige que os administradores limitem temporariamente as atividades dos usuários. Essas situações podem variar desde a realização de manutenção do servidor, facilitação de backups ou migração de servidores. Durante esses períodos, é crucial restringir as atividades do fórum sem desligar completamente o acesso dos usuários.
O Discourse oferece vários Modos de Somente Leitura que os administradores podem ativar para congelar temporariamente diferentes tipos de interação dentro de um site.
Este guia explora esses modos, focando especificamente em como ativá-los e desativá-los, incluindo o tratamento de situações em que certos modos se sobrepõem.
Entendendo os Modos de Somente Leitura
O Discourse suporta dois níveis diferentes de modos de somente leitura, adaptados para atender a diversas necessidades administrativas. Eles são:
- Modo Somente Leitura Completo
- Restringe todas as operações de escrita no fórum, impedindo que qualquer usuário crie ou modifique conteúdo, como postar, comentar ou curtir.
- Permite que o fórum seja essencialmente “congelado” em seu estado atual, permitindo que os usuários ainda leiam e naveguem pelo conteúdo existente sem impactar o banco de dados.
- Desabilita a alteração de qualquer configuração do site ou personalizações do site, para que o estado atual do banco de dados seja preservado.
- Desabilita novos logins no fórum para usuários comuns. Os administradores ainda podem fazer login usando o fluxo de login por e-mail de administrador (
/u/admin-login).
- Modo Apenas Escrita para Equipe
- Restringe usuários padrão de operações de escrita no fórum, como postar, comentar ou curtir. Usuários padrão ficam limitados a operações de somente leitura, mas ainda podem fazer login em suas contas.
- Permite que as atividades de Administrador e Moderador continuem normalmente. Administradores podem alterar configurações do site, e usuários da equipe podem realizar operações de escrita, como postar, curtir ou modificar perfis.
Esses modos garantem flexibilidade na gestão da operabilidade do fórum durante períodos administrativos críticos.
Como Ativar/Desativar Modos de Somente Leitura
Os administradores devem gerenciar cuidadosamente a transição entre diferentes modos de somente leitura. Antes de ativar qualquer modo de somente leitura, certifique-se de que qualquer um ativado anteriormente foi desativado.
Modo Somente Leitura Completo
Via Rails Console
Se você tiver acesso à sua instalação do Discourse, use a interface de linha de comando do Rails do Discourse para executar o seguinte comando após entrar no seu contêiner Docker com ./launcher enter app e depois no console do Rails com rails c:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Via Painel Administrativo
Se você tiver acesso administrativo através da interface web, pode navegar para Admin > Backups > Enable Read-Only Mode para ativar o modo de somente leitura.
Para desativar o Modo de Somente Leitura, execute o seguinte comando do Rails:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Ou, use o painel administrativo navegando para Admin > Backups > Disable Read-Only Mode.
Modo Apenas Escrita para Equipe
O modo Apenas Escrita para Equipe só pode ser ativado/desativado pelo console do Rails do Discourse. Se seu site é hospedado pelo Discourse, entre em contato com team@discourse.org se desejar ativar ou desativar qualquer um desses modos.
Para ativar o Modo Apenas Escrita para Equipe, use o seguinte comando no console do Rails:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Para desativar:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Melhores Práticas
- Comunicação Pontual: Informe sua comunidade sobre períodos de somente leitura agendados com antecedência para definir expectativas adequadas.
- Testes: Antes de implementar esses modos durante operações críticas, realize testes em períodos de baixo tráfego para entender seu impacto.
- Documentação: Mantenha registros detalhados de quando e por que cada modo foi ativado ou desativado para auxiliar no planejamento operacional futuro.
Perguntas Frequentes (FAQs)
-
Quanto tempo leva para ativar/desativar o Modo de Somente Leitura?
- A alteração é imediata. No entanto, a experiência do usuário pode variar ligeiramente dependendo de suas ações durante o período de transição.
-
Ajuda! Estou bloqueado fora do meu site por causa do modo de somente leitura - o que posso fazer para acessar meu site novamente?
-
Notei que existem outros modos
READ-ONLYlistados em discourse/lib/discourse.rb, o que esses modos fazem?READONLY_MODE_KEYé usado principalmente para o processo de backup e restauração e é acionado pelo próprio aplicativo. Este modo também pode ser ativado ou desativado pela interface de linha de comando do Discourse comdiscourse enable_readonlyediscourse disable_readonly. No entanto, essa chave não sobreviverá a uma reinicialização do contêiner.USER_READONLY_MODE_KEYé usado quando um administrador clica no botão de somente leitura na interface administrativa. O especial sobre esta chave é que não a definimos como uma chave expirável, pois o modo de somente leitura ativado por um usuário precisa sobreviver a reinicializações do contêiner. Outras chaves são definidas com um TTL (60 segundos paraREADONLY_MODE_KEY, 300 segundos paraPG_READONLY_MODE_KEY) e temos uma thread para estender a expiração a cada 30 segundos para garantir que um aplicativo nunca fique preso no modo de somente leitura.PG_READONLY_MODE_KEYePG_FORCE_READONLY_MODE_KEYsão usados para failover do PostgreSQL. O primeiro é definido como uma chave expirável, enquanto o último é não expirável.

