Usando ajustes ocultos del sitio

:bookmark: Esta es una guía de #cómo-hacer sobre la Configuración Oculta del Sitio, cómo habilitarla y por qué podrías querer ajustarla.

:person_raising_hand: Nivel de usuario requerido: Administrador
:warning: Importante: Se requiere acceso a la consola para algunos pasos.

En Discourse, la configuración oculta del sitio se refiere a las opciones de configuración que no son visibles ni accesibles de inmediato a través de la interfaz estándar del panel de administración. Estas configuraciones forman parte de la configuración de backend que puede controlar diversas funciones avanzadas o potencialmente impactantes del sitio.

Estas configuraciones ocultas vienen con valores predeterminados preconfigurados, establecidos para garantizar un rendimiento óptimo y seguridad basados en casos de uso comunes y mejores prácticas.

Las configuraciones ocultas están ocultas de la interfaz de configuración predeterminada para evitar una mala configuración accidental por parte de administradores que podrían no comprender plenamente sus implicaciones. Están destinadas a:

  • Administradores con un conocimiento profundo del funcionamiento interno de Discourse.
  • Casos específicos donde sea necesaria una configuración inusual o muy particular del sitio.
  • Pruebas o funciones experimentales que aún no están listas para su uso general.

Los administradores que deseen modificar configuraciones ocultas generalmente necesitan hacerlo porque la configuración predeterminada no se alinea perfectamente con sus necesidades.

:warning: Notas importantes sobre la configuración oculta:

¡Ajustar la configuración oculta del sitio en Discourse puede provocar diversos problemas, como vulnerabilidades de seguridad, impacto negativo en el rendimiento, degradación de la experiencia del usuario o pérdida de datos si no se hace con cuidado!

La configuración oculta del sitio solo debe ser modificada por administradores de Discourse con conocimientos. Antes de cambiar una configuración, asegúrate de entender qué hace y las implicaciones del cambio. Cuando sea posible, implementa cambios de configuración significativos en un entorno de staging o desarrollo. Antes de realizar cambios amplios o críticos, asegúrate de que las copias de seguridad estén actualizadas para restaurar el estado del foro si algo sale mal.

Cómo editar la configuración oculta del sitio

Opción 1: Consola de Rails

Para modificar la configuración oculta del sitio, generalmente necesitas usar la consola de Rails, una herramienta de línea de comandos que te permite interactuar directamente con el backend de tu instalación de Discourse. Para ajustar la configuración a través de la consola de rails, puedes seguir estos pasos:

  1. Acceder a la consola de Rails:
cd /var/discourse
./launcher enter app
rails c
  1. Cambiar una configuración:
SiteSetting.tu_nombre_de_configuracion = nuevo_valor

Reemplaza tu_nombre_de_configuracion con el nombre de la configuración que deseas modificar y nuevo_valor con el valor que deseas establecer.

  1. Salir de la consola:
exit

Opción 2: Configuración de variables de entorno en app.yml

También puedes usar variables de entorno para ajustar la configuración oculta del sitio. El archivo app.yml es un archivo de configuración utilizado en las implementaciones de Discourse basadas en Docker. Generalmente se encuentra en el directorio /containers de tu instalación de Discourse. Así es como puedes agregar o modificar variables de entorno:

  1. Acceder al archivo app.yml:
    Abre el archivo app.yml en tu editor de texto preferido:
nano /var/discourse/containers/app.yml
  1. Agregar variables de entorno:
    Las variables de entorno se pueden configurar en la sección env del archivo app.yml. Siguen el patrón DISCOURSE_NOMBRE_DE_CONFIGURACION: valor. Por ejemplo, para establecer la configuración max_category_nesting en 3 a través de una variable de entorno, usarías:
env:
  DISCOURSE_MAX_CATEGORY_NESTING: 3
  1. Reconstruir el contenedor:
    Después de guardar los cambios en el archivo app.yml, reconstruye el contenedor Docker de Discourse para aplicar los cambios:
cd /var/discourse
./launcher rebuild app

Por qué habilitar configuraciones ocultas

Habilitar o ajustar la configuración oculta del sitio en Discourse permite a los administradores personalizar profundamente la configuración de su foro para cumplir con requisitos técnicos específicos, mejorar el rendimiento o garantizar la seguridad y el cumplimiento, apoyando así una experiencia de usuario y una eficiencia operativa finamente adaptadas.

Ejemplos de configuración oculta del sitio incluyen:

  • Badge SQL: Habilitar enable_badge_sql permite a los administradores del sitio crear consultas SQL personalizadas para los criterios de insignias, ofreciendo flexibilidad en la asignación de insignias basadas en condiciones complejas.
  • Configuración de copias de seguridad en S3: Incluir las cargas en S3 en las copias de seguridad con include_s3_uploads_in_backups puede utilizarse para estrategias de copia de seguridad mejoradas.
  • Límites de velocidad de búsqueda: Ajustar los límites de velocidad de búsqueda con configuraciones como rate_limit_search_user para evitar la limitación en escenarios de alto uso.

Preguntas frecuentes

P: ¿Se pueden hacer visibles las configuraciones ocultas en la interfaz de usuario?
R: Las configuraciones ocultas en Discourse no son directamente configurables a través de la interfaz de usuario por razones de seguridad y complejidad.

P: ¿Dónde puedo encontrar información sobre cada configuración oculta?
R: La información detallada sobre cada configuración se puede encontrar en la Guía de referencia de configuración oculta del sitio y en el código fuente de Discourse, específicamente en el archivo site_settings.yml en el repositorio de GitHub. También hay información adicional sobre algunas configuraciones disponible en los foros de Discourse Meta.

P: ¿Los cambios realizados a través de variables de entorno persisten en las actualizaciones?
R: Sí, si se establecen en app.yml o en el perfil permanente del sistema, estas configuraciones persistirán en las actualizaciones a menos que sean sobrescritas por otras configuraciones.

P: ¿Cómo sé qué configuraciones se pueden controlar a través de variables de entorno?
R: Típicamente, cualquier configuración del sitio de Discourse puede tener el prefijo DISCOURSE_ y establecerse como una variable de entorno.

P: ¿Es seguro configurar información sensible a través de variables de entorno?
R: Las variables de entorno generalmente se consideran seguras para la gestión de configuraciones. Sin embargo, asegúrate de que no estén expuestas en entornos compartidos o inseguros.

P: ¿Necesito reconstruir si activo o desactivo una configuración del sitio?
R: En la mayoría de los casos, activar o desactivar una configuración del sitio a través de la consola de rails no requiere una reconstrucción de tu configuración de Discourse. Estos cambios suelen tener efecto inmediatamente o tras una actualización de tu instancia. Sin embargo, algunas configuraciones específicas, especialmente aquellas que influyen en los aspectos fundamentales del sistema, podrían requerir un reinicio o una reconstrucción para que los cambios se apliquen. Para los cambios realizados en el archivo app.yml, se requiere una reconstrucción de tu contenedor de Discourse para que esos cambios surtan efecto.

P: ¿Puedo revertir un cambio de configuración fácilmente?
R: Sí, la mayoría de las configuraciones se pueden revertir a menos que impliquen la eliminación de datos.

Recursos adicionales

8 Me gusta