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.
Nivel de usuario requerido: Administrador
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 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 de backend que puede controlar varias características 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.
Las configuraciones ocultas se ocultan de la interfaz de configuración predeterminada para evitar una mala configuración accidental por parte de administradores que quizás no comprendan completamente sus implicaciones. Están destinadas a:
- Administradores que tienen un conocimiento profundo del funcionamiento interno de Discourse.
- Casos específicos en los que se requiere una configuración de sitio inusual o muy específica.
- Pruebas o características experimentales que aún no están listas para el uso general.
Los administradores que deseen modificar la configuración oculta generalmente necesitan hacerlo porque la configuración predeterminada no se alinea perfectamente con sus necesidades.
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 entender lo que 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, generalmente necesitas 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:
- Acceder a la Consola Rails:
cd /var/discourse
./launcher enter app
rails c
- Cambiar una Configuración:
SiteSetting.nombre_de_tu_configuracion = nuevo_valor
Reemplaza nombre_de_tu_configuracion con el nombre de la configuración que deseas modificar y nuevo_valor con el valor que deseas establecer.
- Salir de la Consola:
exit
Opción 2: Configurar 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 de Discourse basadas en Docker. Normalmente se encuentra en el directorio /containers de tu instalación de Discourse. A continuación, te mostramos cómo puedes agregar o modificar variables de entorno:
- Acceder al Archivo
app.yml:
Abre el archivoapp.ymlen tu editor de texto preferido:
nano /var/discourse/containers/app.yml
- Agregar Variables de Entorno:
Las variables de entorno se pueden configurar en la secciónenvdel archivoapp.yml. Siguen el patrónDISCOURSE_NOMBRE_DE_CONFIGURACION: valor. Por ejemplo, para establecer la configuraciónmax_category_nestingen3a través de una variable de entorno, usarías:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- Reconstruir el Contenedor:
Después de guardar los cambios en el archivoapp.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 configuraciones ocultas del sitio incluyen:
- SQL de Insignias (Badge SQL): Habilitar
enable_badge_sqlpermite 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. - Eliminación Permanente de Publicaciones: Habilitar
can_permanently_deletepermite la eliminación permanente de publicaciones por motivos de cumplimiento o privacidad. - Configuraciones de Copia de Seguridad S3: Incluir cargas S3 en las copias de seguridad con
include_s3_uploads_in_backupsse 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_userpara prevenir la limitación (throttling) 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 se pueden configurar 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 Meta de Discourse.
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 sobrescritas 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 ser prefijada con DISCOURSE_ y establecida 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 una reconstrucción de tu instalación de Discourse. Estos cambios generalmente surten efecto inmediatamente o al actualizar tu instancia. Sin embargo, algunas configuraciones específicas, especialmente aquellas que influyen en los aspectos fundamentales del sistema, podrían 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 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 pueden revertirse a menos que impliquen la eliminación de datos.