Usando configuraciones ocultas del sitio

:bookmark: Esta es una guía #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 opciones de configuración que no son fácilmente visibles o accesibles a través de la interfaz estándar del panel de administración. Estas configuraciones forman parte de la configuración del backend que puede controlar varias funciones avanzadas o potencialmente impactantes del sitio.

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

La configuración oculta se oculta de la interfaz de configuración predeterminada para evitar una mala configuración accidental por parte de administradores que no comprendan completamente sus implicaciones. Están destinadas a:

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

Los administradores que deseen modificar la configuración oculta suelen 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 varios 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 comprender 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 Rails

Para modificar la configuración oculta del sitio, normalmente necesitarás usar la consola 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 Rails, puedes seguir estos pasos:

  1. Accede a la Consola Rails:

    cd /var/discourse
    ./launcher enter app
    rails c
    
  2. Cambia una configuración:

    SiteSetting.your_setting_name = new_value
    

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

  3. Sal 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 implementaciones basadas en Docker de Discourse. Normalmente se encuentra en el directorio /containers de tu instalación de Discourse. Aquí te explicamos cómo añadir o modificar variables de entorno:

  1. Accede al archivo app.yml:
    Abre el archivo app.yml en tu editor de texto preferido:

    nano /var/discourse/containers/app.yml
    
  2. Añade variables de entorno:
    Las variables de entorno se pueden configurar en la sección env del archivo app.yml. Siguen el patrón DISCOURSE_SETTING_NAME: value. 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
    
  3. Reconstruye 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 la configuración oculta

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:

  • SQL de insignias: Habilitar enable badge sql permite a los administradores del sitio crear consultas SQL personalizadas para los criterios de las insignias, ofreciendo flexibilidad en la asignación de insignias basadas en condiciones complejas.
  • Eliminación permanente de publicaciones: Habilitar can permanently delete permite la eliminación permanente de publicaciones por motivos de cumplimiento o privacidad.
  • Configuración de copias de seguridad S3: Incluir cargas S3 en las copias de seguridad con include_s3_uploads_in_backups se puede utilizar para estrategias de copia de seguridad mejoradas.
  • Límites de tasa de búsqueda: Ajustar los límites de tasa 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 configurables directamente 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. Información adicional sobre algunas configuraciones también está disponible en los foros de Discourse Meta.

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

P: ¿Cómo sé qué configuraciones se pueden controlar a través de variables de entorno?
R: Normalmente, cualquier configuración del sitio de Discourse puede prefijarse con 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 la configuración. Sin embargo, asegúrate de que no estén expuestas en entornos compartidos o inseguros.

P: ¿Necesito reconstruir si cambio una configuración del sitio?
R: En la mayoría de los casos, cambiar una configuración del sitio a través de la consola Rails no requiere reconstruir tu configuración de Discourse. Estos cambios suelen tener efecto inmediato o al actualizar tu instancia. Sin embargo, algunas configuraciones específicas, especialmente aquellas que influyen en los aspectos fundamentales del sistema, pueden requerir un reinicio o reconstrucción para que los cambios surtan efecto. 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