Esta guía explica los diversos modos de solo lectura disponibles en Discourse, cómo activarlos y desactivarlos, y los escenarios en los que podrías querer utilizar cada uno.
Nivel de usuario requerido: Administrador
Gestionar una comunidad en línea vibrante en Discourse a veces requiere que los administradores limiten temporalmente las actividades de los usuarios. Estas situaciones pueden ir desde realizar mantenimiento del servidor, facilitar copias de seguridad o realizar la transición de servidores. Durante estos momentos, es crucial restringir las actividades del foro sin cerrar por completo el acceso de los usuarios.
Discourse ofrece varios Modos de Solo Lectura que los administradores pueden activar para congelar temporalmente diferentes tipos de interacciones dentro de un sitio.
Esta guía explora estos modos, centrándose específicamente en cómo activarlos y desactivarlos, incluyendo el manejo de situaciones donde ciertos modos se superponen.
Comprender los Modos de Solo Lectura
Discourse admite dos niveles diferentes de modos de solo lectura adaptados a diversas necesidades administrativas. Estos son:
- Modo de Solo Lectura Completo
- Restringe todas las operaciones de escritura en el foro, impidiendo que cualquier usuario cree o modifique contenido, como publicar, comentar o dar “me gusta”.
- Permite que el foro esté esencialmente “congelado” en su estado actual, de modo que los usuarios aún puedan leer y navegar por el contenido existente sin afectar la base de datos.
- Deshabilita el cambio de cualquier configuración del sitio de administración o personalizaciones del sitio para preservar el estado actual de la base de datos.
- Deshabilita los nuevos inicios de sesión en el foro para usuarios regulares. Los administradores aún pueden iniciar sesión utilizando el flujo de inicio de sesión con correo electrónico de administrador (
/u/admin-login).
- Modo Solo Escritura para Personal
- Restringe las operaciones de escritura en el foro para usuarios estándar, como publicar, comentar o dar “me gusta”. Los usuarios estándar están limitados a operaciones de solo lectura, pero aún pueden iniciar sesión en sus cuentas.
- Permite que las actividades de administración y moderación continúen con normalidad. Los administradores pueden cambiar la configuración del sitio, y los usuarios del personal pueden realizar operaciones de escritura como publicar, dar “me gusta” o modificar perfiles.
Estos modos aseguran flexibilidad en la gestión de la operatividad del foro durante períodos administrativos críticos.
Cómo Activar/Desactivar Modos de Solo Lectura
Los administradores deben gestionar cuidadosamente la transición entre los diferentes modos de solo lectura. Antes de activar cualquier modo de solo lectura, asegúrese de que cualquier modo previamente activado esté desactivado.
Modo de Solo Lectura Completo
Vía Consola de Rails
Si tiene acceso a su instalación de Discourse, utilice la interfaz de línea de comandos de Discourse rails para ejecutar el siguiente comando después de ingresar a su contenedor Docker con ./launcher enter app y luego a la consola de rails con rails c:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
Vía Panel de Administración
Si tiene acceso administrativo a través de la interfaz web, puede navegar a Admin > Backups > Enable Read-Only Mode para activar el modo de solo lectura.
Para desactivar el Modo de Solo Lectura, ejecute el siguiente comando de rails:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
O, utilice el panel de administración navegando a Admin > Backups > Disable Read-Only Mode.
Modo Solo Escritura para Personal
El modo Solo Escritura para Personal solo se puede activar/desactivar desde la consola de rails de Discourse. Si su sitio está alojado por Discourse, póngase en contacto con team@discourse.org si desea activar o desactivar cualquiera de estos modos.
Para activar el Modo Solo Escritura para Personal, utilice el siguiente comando de consola de rails:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Para desactivar:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
Mejores Prácticas
- Comunicación Oportuna: Informa a tu comunidad sobre los períodos de solo lectura programados con anticipación para establecer expectativas adecuadas.
- Pruebas: Antes de implementar estos modos durante operaciones críticas, realiza pruebas durante períodos de bajo tráfico para comprender su impacto.
- Documentación: Mantén registros detallados de cuándo y por qué se activó o desactivó cada modo para ayudar en la planificación operativa futura.
Preguntas Frecuentes (FAQ)
-
¿Cuánto tiempo tarda en activarse/desactivarse el Modo de Solo Lectura?
- El cambio es inmediato. Sin embargo, la experiencia del usuario puede variar ligeramente dependiendo de sus acciones durante el período de transición.
-
¡Ayuda! Estoy bloqueado fuera de mi sitio debido al modo de solo lectura, ¿qué puedo hacer para acceder a mi sitio nuevamente?
-
Noté que hay otros modos
READ-ONLYlistados en discourse/lib/discourse.rb, ¿qué hacen estos modos?READONLY_MODE_KEYse utiliza principalmente para el proceso de copia de seguridad y restauración y es activado por la propia aplicación. Este modo también se puede activar o desactivar desde la interfaz de línea de comandos de Discourse condiscourse enable_readonlyydiscourse disable_readonly. Sin embargo, esta clave no sobrevivirá a un reinicio del contenedor.USER_READONLY_MODE_KEYse utiliza cuando un administrador hace clic en el botón de solo lectura en la interfaz de administración. Lo especial de esta clave es que no la establecemos como una clave con fecha de caducidad, ya que el modo de solo lectura activado por un usuario debe sobrevivir a los reinicios del contenedor. Otras claves se establecen con un TTL (60 segundos paraREADONLY_MODE_KEY, 300 segundos paraPG_READONLY_MODE_KEY) y tenemos un hilo para extender la caducidad cada 30 segundos para asegurar que una aplicación nunca quede atrapada en modo de solo lectura.PG_READONLY_MODE_KEYyPG_FORCE_READONLY_MODE_KEYse utilizan para la conmutación por error de PG. La primera se establece como una clave con fecha de caducidad, mientras que la segunda no caduca.

