Este guia explica os vários modos somente leitura disponíveis no Discourse, como ativá-los e desativá-los, e os cenários em que você pode querer usar cada modo.
Nível de usuário necessário: Administrador
Gerenciar uma comunidade online vibrante no Discourse ocasionalmente requer que os administradores limitem temporariamente as atividades dos usuários. Essas situações podem variar desde a realização de manutenção de servidores, facilitação de backups ou transição de servidores. Durante esses períodos, é crucial restringir as atividades do fórum sem desligar completamente o acesso do usuário.
O Discourse oferece vários Modos Somente Leitura que os administradores podem ativar para congelar temporariamente diferentes tipos de interações em 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 cruzam.
Entendendo os Modos Somente Leitura
O Discourse suporta dois níveis diferentes de modos Somente Leitura, adaptados para atender a várias necessidades administrativas. São eles:
-
Modo Totalmente Somente Leitura
- 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, de modo que os usuários ainda possam ler e navegar pelo conteúdo existente sem impactar o banco de dados.
- Desabilita a alteração de quaisquer configurações do site de administração ou personalizações do site para que o estado atual do banco de dados seja preservado.
- Desabilita novos logins no fórum.
-
Modo Apenas Escrita da Equipe
- Restringe usuários padrão de operações de escrita no fórum, como postar, comentar ou curtir. Usuários padrão são limitados a operações somente leitura e não poderão fazer login em suas contas assim que este modo for ativado.
- Permite que as atividades de Administradores e Moderadores 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 no gerenciamento da operabilidade do fórum durante períodos administrativos críticos.
Como Ativar/Desativar Modos Somente Leitura
Os administradores devem gerenciar cuidadosamente a transição entre diferentes modos somente leitura. Antes de ativar qualquer modo somente leitura, certifique-se de que qualquer um previamente ativado esteja desativado.
Modo Totalmente Somente Leitura
Via Console Rails
Se você tiver acesso à sua instalação do Discourse, use a interface de linha de comando do Discourse rails para executar o seguinte comando após entrar em seu contêiner Docker com ./launcher enter app e, em seguida, no console rails com rails c:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Via Painel de Administração
Se você tiver acesso administrativo através da interface web, pode navegar para Admin > Backups > Enable Read-Only Mode para ativar o modo somente leitura.
Para desativar o Modo Somente Leitura, execute o seguinte comando rails:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Ou, use o painel de administração navegando para Admin > Backups > Disable Read-Only Mode.
Modo Apenas Escrita da Equipe
O modo Staff Writes Only só pode ser ativado/desativado a partir do console rails do Discourse. Se o seu site for 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 da Equipe, use o seguinte comando do console 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 Oportuna: Informe sua comunidade sobre os períodos programados de somente leitura 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
-
Quanto tempo leva para ativar/desativar o Modo 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 do meu site por causa do modo 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 pela própria aplicação. Este modo também pode ser ativado ou desativado a partir da interface de linha de comando do Discourse comdiscourse enable_readonlyediscourse disable_readonly. No entanto, esta chave não sobreviverá a uma reinicialização do contêiner.USER_READONLY_MODE_KEYé usado quando um administrador clica no botão somente leitura na interface de administração. A coisa especial sobre esta chave é que não a definimos como uma chave de expiração, pois a somente leitura habilitada por um usuário precisa sobreviver a reinicializações do contêiner. Outras chaves são definidas com um TTL de 60 segundos e temos um thread para estender a expiração a cada 30 segundos para garantir que um aplicativo nunca fique preso no modo somente leitura.PG_READONLY_MODE_KEYePG_FORCE_READONLY_MODE_KEYsão usados para failover PG. O primeiro é definido como uma chave de expiração, enquanto o último não expira.

