Configuración del Sistema - Raul125/PanelWiki GitHub Wiki

⚙️ Configuración del Sistema

La configuración del sistema permite a los administradores de nivel superior ajustar todos los parámetros globales del panel, incluyendo integraciones con servicios externos, autenticación, límites de usuario y configuración de servidores. Estos ajustes son fundamentales para el funcionamiento correcto de toda la plataforma.


🌐 Acceso a Configuración del Sistema

📍 Navegación

  • Ruta: /admin/panelsettings
  • Menú lateral: Administración → Configuración del Sistema
  • Icono: ⚙️ Settings

🔐 Requisitos de Acceso

  • Autenticación obligatoria → Usuario debe estar logueado
  • Permisos específicosPermissions.Admin.PanelSettings
  • Nivel máximo de administrador → Solo administradores superiores

🚫 Restricciones de Seguridad

  • Solo administradores principales → Acceso muy restrictivo
  • Cambios críticos del sistema → Requieren confirmación
  • Algunos cambios requieren reinicio → A las 5:00 AM automático

🖥️ Secciones de Configuración

🌐 Configuración de Servidores

📊 Puertos de Estado de Servidores

  • Monitoreo automático → Estado de servidores en tiempo real
  • Pares ID-Puerto → Cada servidor con su puerto específico
  • Gestión dinámica → Añadir/eliminar servidores
  • Validación → ID de servidor mínimo 1

🛠️ Gestión de Puertos

  • ➕ Añadir Puerto → Botón para nuevos servidores
  • 🗑️ Eliminar Puerto → Icono de papelera por entrada
  • 📋 Campos específicos:
    • ID del Servidor → Identificador numérico único
    • Puerto → Puerto de conexión del servidor
  • 🔄 Auto-numeración → IDs secuenciales automáticos

🔐 Configuración de Autenticación

🔑 Bearer Authentication (JWT)

🛡️ Claves de API

  • Client ID → Identificador único generado automáticamente
  • Client Secret → Clave secreta para firmar tokens JWT
  • Campos de solo lectura → No editables manualmente
  • Generación automática → Al crear o regenerar

🔄 Regeneración de Claves

  • Botón de regeneración → Color warning para indicar precaución
  • Confirmación requerida → Diálogo de confirmación obligatorio
  • ⚠️ Efectos de regenerar:
    • Invalidación de todos los tokens → Usuarios deben reloguearse
    • Plugin del servidor → Requiere nueva API key
    • Requiere reinicio → Para aplicar cambios

⚠️ Advertencias Importantes

  • 🔴 Requiere reinicio → Chip rojo indicando necesidad
  • Invalidación masiva → Todos los tokens existentes
  • Reconexión de plugin → API key debe actualizarse

💬 Integración con Discord

🤖 Configuración del Bot

🔧 Parámetros del Bot

  • Token del Bot → Clave de acceso para API de Discord
  • ID del Servidor → Identificador del servidor de Discord
  • Formato numérico → ulong para IDs grandes de Discord
  • Helper text → Guías para cada campo

🔐 OAuth2 Discord

  • Client ID → Para autenticación OAuth2
  • Client Secret → Secreto de cliente OAuth2
  • Integración completa → Login automático de usuarios
  • Flujo OAuth → Redirección automática obligatoria

🚨 Consideraciones Importantes

  • 🔴 Requiere reinicio → Para aplicar cambios
  • Configuración sensible → Credenciales críticas
  • Integración automática → Con sincronización de roles

🎮 Integración con Steam

🔑 API de Steam

🛠️ Configuración Simple

  • Clave API de Steam → Para acceso a servicios web
  • Campo único → Solo la API key necesaria
  • Helper text → Descripción del uso
  • Integración OpenID → Para autenticación automática

🔄 Aplicación de Cambios

  • 🔴 Requiere reinicio → Para tomar efecto
  • Verificación automática → Al guardar configuración
  • Integración con OAuth → Flujo automático tras Discord

👥 Restricciones de Usuario

📊 Límites del Sistema

📝 Reportes Activos

  • Máximo por usuario → Número configurable (default: 5)
  • Validación mínima → Mínimo 1 reporte
  • Control de spam → Previene abuso del sistema
  • Aplicación inmediata → No requiere reinicio

⚡ Ventajas de Restricciones

  • 🟢 No requiere reinicio → Aplicación inmediata
  • Control de calidad → Evita reportes masivos
  • Recursos del sistema → Previene sobrecarga
  • Experiencia mejorada → Para staff y usuarios

💾 Gestión de Configuración

🔄 Operaciones Disponibles

💾 Guardar Configuración

  • Validación de formulario → Campos obligatorios verificados
  • Detección de cambios → Identifica qué requiere reinicio
  • Guardado por secciones → PanelConfig y UserRestrictionsConfig
  • Confirmación visual → Snackbar de éxito

🔄 Cancelar Cambios

  • Recarga de valores → Desde configuración actual
  • Sin persistencia → Cambios se pierden
  • Estado limpio → Formulario resetea
  • Notificación → "Cambios cancelados"

⚙️ Detección de Reinicio

🔍 Cambios que Requieren Reinicio

// Verificación automática de cambios críticos
HasChangesRequiringRestart()bool
- Bearer Auth (ClientId, ClientSecret)
- Discord (Token, GuildId, Client, Secret)  
- Steam (ApiKey)

📅 Reinicio Programado

  • Hora específica → 5:00 AM (hora de Madrid)
  • Reinicio automático → Diario programado
  • Aplicación de cambios → Durante el reinicio
  • Notificación al usuario → Información clara

🎨 Interfaz de Usuario

📋 Expansion Panels

🔧 Organización Modular

  • Una sección por panel → Información organizada
  • Expansión independiente → MultiExpansion="false"
  • Sección por defecto → Servidores expandido
  • Navegación fácil → Click para expandir/contraer

📊 Elementos Visuales

  • Títulos descriptivos → Para cada sección
  • Subtítulos explicativos → Propósito de cada campo
  • Helper text → Guías específicas
  • Iconos consistentes → Add, Delete, Settings

🚨 Sistema de Alertas

⚠️ Tipos de Alertas

  • 🔴 Warning → Para regenerar claves de autenticación
  • 🔵 Info → Para cambios que requieren reinicio
  • 🟢 Success → Para cambios inmediatos (restricciones)
  • 📋 Chips informativos → Estado de reinicio requerido

💬 Mensajes Específicos

🔴 "Requiere reinicio" → Cambios críticos
🟢 "No requiere reinicio" → Cambios inmediatos
⚠️ "Invalidará todos los tokens" → Regenerar auth
ℹ️ "Se aplicarán a las 5:00 AM" → Reinicio programado

🔐 Seguridad y Validaciones

🛡️ Controles de Seguridad

✅ Validaciones de Formulario

  • Campos obligatorios → Verificación automática
  • Valores mínimos → Para campos numéricos
  • Formato correcto → Para IDs y puertos
  • Estado del formulario → success binding

🔐 Confirmaciones Requeridas

  • Regenerar claves → Diálogo de confirmación
  • Cambios críticos → Información sobre reinicio
  • Efectos adversos → Advertencias claras
  • Opciones de cancelación → Siempre disponibles

📊 Persistencia de Datos

💾 Configuraciones Separadas

  • PanelConfig → Configuración principal del panel
  • UserRestrictionsConfig → Límites específicos de usuarios
  • Guardado independiente → Cada config por separado
  • Método Save() → Persistencia automática

🔄 Carga y Recarga

  • LoadConfiguration() → Al inicializar página
  • ResetChanges() → Recarga desde fuente
  • Estado sincronizado → UI refleja configuración actual
  • Binding bidireccional → Cambios automáticos

🎯 Casos de Uso Comunes

🔧 Configuración Inicial

🚀 Setup Nuevo Servidor

  1. Acceder a configuración → Como administrador principal
  2. Configurar Discord → Token, Guild ID, OAuth credentials
  3. Configurar Steam → API key para integración
  4. Añadir servidores → IDs y puertos de monitoreo
  5. Guardar y reiniciar → Para aplicar cambios

🔄 Mantenimiento Regular

  1. Revisar restricciones → Ajustar límites de reportes
  2. Actualizar tokens → Si Discord/Steam cambian
  3. Gestionar servidores → Añadir/remover según necesidad
  4. Verificar configuración → Después de actualizaciones

🚨 Situaciones de Emergencia

🔑 Regenerar Credenciales

  1. Acceder rápidamente → En caso de compromiso
  2. Regenerar Bearer Auth → Invalidar todos los tokens
  3. Actualizar plugin → Nueva API key en servidor
  4. Informar a usuarios → Necesidad de re-login

🔧 Problemas de Integración

  1. Verificar Discord → Token y permisos del bot
  2. Verificar Steam → API key válida
  3. Revisar logs → Para errores específicos
  4. Aplicar cambios → Con reinicio si necesario

🚨 Solución de Problemas

❌ Problemas Comunes

🔐 Autenticación No Funciona

  • Verificar Bearer Auth → ClientId y ClientSecret válidos
  • Revisar tokens → Pueden estar expirados
  • Plugin desconectado → API key puede estar incorrecta
  • Regenerar si necesario → Con confirmación

💬 Discord No Sincroniza

  • Token del bot → Verificar permisos y validez
  • Guild ID correcto → Servidor específico
  • OAuth2 configurado → Client ID y Secret válidos
  • Requiere reinicio → Para tomar efecto

🎮 Steam Integration Failed

  • API Key válida → Verificar en Steam Dev
  • Permisos correctos → Para el dominio
  • Rate limiting → Verificar límites de API
  • Reinicio necesario → Para aplicar cambios

⚡ Optimización de Configuración

🚀 Mejores Prácticas

  • Cambios por lotes → Agrupar modificaciones
  • Verificar antes de guardar → Validar configuración
  • Documentar cambios → Para futuras referencias
  • Backup de configuración → Antes de cambios críticos

📅 Planificación de Cambios

  • Horario de reinicio → 5:00 AM automático
  • Notificar a usuarios → Cambios importantes
  • Testing previo → En entorno de desarrollo
  • Rollback plan → Por si algo falla

🔗 Enlaces Relacionados


📞 Soporte y Ayuda

🆘 Obtener Ayuda

💡 Información Técnica

  • PanelConfig class → Estructura de configuración
  • UserRestrictionsConfig → Límites del sistema
  • Validation patterns → Reglas de validación
  • Restart requirements → Qué requiere reinicio

⚠️ Consideraciones Importantes

  • Backup de configuración → Antes de cambios críticos
  • Testing en desarrollo → Para verificar cambios
  • Comunicación de cambios → A usuarios afectados
  • Monitoreo post-cambios → Verificar funcionamiento

⚙️ Configura con Sabiduría, Administra con Poder

¿Necesitas ayuda con la configuración del sistema? Consulta en el canal admin de [Discord](https://discord.neoncommunity.eu/)

⚠️ **GitHub.com Fallback** ⚠️