███╗ ███╗ ██████╗ ██████╗ █████╗ ███████╗██╗ ██╗██████╗ ██████╗ █████╗ ██████╗ ██████╗
████╗ ████║██╔════╝ ██╔══██╗██╔══██╗██╔════╝██║ ██║██╔══██╗██╔═══██╗██╔══██╗██╔══██╗██╔══██╗
██╔████╔██║██║ ██║ ██║███████║███████╗███████║██████╔╝██║ ██║███████║██████╔╝██║ ██║
██║╚██╔╝██║██║ ██║ ██║██╔══██║╚════██║██╔══██║██╔══██╗██║ ██║██╔══██║██╔══██╗██║ ██║
██║ ╚═╝ ██║╚██████╗ ██████╔╝██║ ██║███████║██║ ██║██████╔╝╚██████╔╝██║ ██║██║ ██║██████╔╝
╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝
Plataforma integral de infraestructura y monitorización SSR en tiempo real para ZenithSeed
Descripción del Proyecto
Solución integral de infraestructura y monitorización diseñada para ofrecer alta fiabilidad y rendimiento en el despliegue de un servidor de Minecraft. Este proyecto implementa estándares corporativos adaptados a un entorno de gaming, integrando los siguientes aspectos:
Monitorización SSR en tiempo real - Visualización inmediata del estado del servidor (activo/inactivo) minimizando el consumo de recursos en el lado del cliente.
Sistema de telemetría de jugadores - Incorporación dinámica de perfiles a través de la integración con
Crafatar API.Métricas de rendimiento in-game - Seguimiento de la latencia del core (ping), control de concurrencia de jugadores y validación de versiones alojadas.
Diseño UI/UX Profesional - Interfaz de usuario construida con Glassmorphism avanzado, animaciones optimizadas y modo oscuro nativo.
Arquitectura en Contenedores - El entorno de ejecución del juego opera completamente aislado del sistema operativo anfitrión, empleando Docker para garantizar un control milimétrico sobre los recursos asignados.
Stack Tecnológico
| Tecnología | Uso / Rol Principal | Justificación Técnica |
|---|---|---|
| Framework principal | Óptimo para Server-Side Rendering (SSR) y tiempos de carga reducidos |
|
| Entorno de ejecución | Adaptador eficiente para mantener el ciclo de vida de la aplicación en producción | |
| Gestor de procesos | Gestión de demonios, políticas de reinicio automático y limitación de consumo de memoria | |
| Proxy Inverso | Administración centralizada de tráfico HTTPS, certificados SSL y redirección de puertos | |
| Contenedores | Aislamiento absoluto de procesos y dependencias para garantizar una escalabilidad segura | |
| Game Engine base | Plataforma estandarizada y nativa para la inyección de modificaciones estructuradas |
Infraestructura del Servidor (Docker & Configuración Base)
La provisión del servidor de Minecraft omite las ejecuciones estándar directamente sobre el anfitrión a favor de metodologías DevOps modernas. Se utiliza la imagen unificada itzg/minecraft-server para estandarizar el despliegue.
1. Orquestación Declarativa (Docker Compose)
El levantamiento de la infraestructura se define de forma semántica, permitiendo modificaciones en el comportamiento arquitectónico mediante la simple alteración de variables de entorno:
# Extracto del código base operativo (docker-compose.yml):
services:
mc:
image: itzg/minecraft-server
environment:
- TYPE=FORGE # Definición dinámica del motor/ModLoader
- VERSION=1.21.11 # Control de versionado del servidor desde el manifiesto
- MEMORY=4G # Límite restringido inyectado como parámetro a la JVM
- USE_AIKAR_FLAGS=true # Auto-Tuning del recolector de basura (optimización de G1GC)
2. Versionado y Gestión de Extensiones (Mods / Plugins)
Dado que el servidor requiere persistir estados y metadatos (stateful), todos los datos estructurales se almacenan en un volumen acoplado de forma segura en ./data.
- Instalación de entorno base: Se gestiona automáticamente levantando el clúster con
docker-compose up -d. La imagen administra las descargas de paquetes EULA legalmente requeridos de manera proactiva. - Inserción de Modificaciones: La arquitectura de directorios mapeados establece el directorio local
./data/mods(o./data/pluginspara entornos Paper) para sincronizar en tiempo real compilaciones.jarhacia el entorno aislado Docker sin alterar el sistema operativo.
3. Acceso Remoto a la Terminal Interactiva (TTY)
Para operaciones administrativas complejas, la configuración intercepta una capa TTY dentro del contenedor, permitiendo un manejo estándar del panel de control de manera robusta:
# Conexión interactiva al prompt interno del servidor
docker attach mc-server
# Precaución operacional de cierre:
# El cierre estándar a través de [Ctrl+C] finalizará el proceso subyacente de la máquina JVM.
# La desconexión correcta que preserva la estabilidad del demonio se realiza pulsando la secuencia:
# [Ctrl + P] seguido rápidamente de [Ctrl + Q]
Arquitectura Global y Seguridad de Red
Ventaja Competitiva de Diseño: La API interna originada en Astro procesa en local sus consultas transaccionales (minecraft-server-util), leyendo el buffer de forma estandarizada. Esta técnica anula la necesidad de inyectar extensiones API REST de terceros en el juego, salvaguardando una latencia inferior y asegurando el índice total de operaciones de procesamiento.
Estructura del Despliegue Web (mc-web/)
La estructura organizativa del frontend ha sido separada modularmente siguiendo parámetros exigentes en el desarrollo de interfaces SSR.
mc-web/
│
├── src/
│ ├── components/ ← Módulos visuales aislados del Dashboard
│ ├── layouts/ ← Wrapper de control de etiquetas semánticas y meta SEO
│ ├── pages/
│ │ ├── index.astro ← Punto de entrada principal (Server Rendering)
│ │ └── api/
│ │ └── server-status.ts ← Endpoint controlador de las lógicas de estado
│ └── assets/ ← Base central de recursos tipográficos internos
│
├── dist/ ← Directorio optimizado para el despliegue de Producción
├── logs/ ← Pipeline de reporte y rastreo sistémico (Administrado vía PM2)
├── astro.config.mjs ← Configurador del empaquetado y adaptadores de Node
└── ecosystem.config.cjs ← Archivo manifiesto de entorno y variables de PM2
Despliegue de Recursos Estáticos (Assets)
Con la intención de resguardar el repositorio de control de versiones frente a binarios pesados, no se integran los archivos multimedia crudos (interfaces, fuentes, iconografías personalizadas) vía GIT.
Antes del correspondiente análisis de compilado (build), es prescriptivo disponer de los paquetes de recursos en el sistema de carga de estáticos documentado en:
- Ubicaciones necesarias en
public/:imgs/items/,imgs/ui/,fonts/,css/minecraft.css - Dependencia inyectada en
src/:assets/minecraft_fot_esp.ttf
Comandos de Operación
Entorno de Desarrollo
# Integración continua para despliegue local
npm run dev -- --host
# El parámetro `--host` garantiza la exposición inter-red hacia Nginx en local.
Infraestructura de Producción (Orquestación con PM2)
# Proceso analítico compilatorio estricto
npm run build
# Directivas ejecutables del orquestador PM2
npm run pm2:start # Levantar y proteger la aplicación ante interrupciones
npm run pm2:restart # Ciclo de inicialización en frío
npm run pm2:status # Matriz general con detalles de estado (I/O, RAM, Uptime)
npm run pm2:logs # Emisión secuencial general (Standard Output y Errors)
Monitorización y Observabilidad
# Invoca una interfaz persistente para inspección del servidor Node.js
pm2 monit
# Limitación y trazabilidad en el canal de errores subyacentes
pm2 logs mc-web --err
# Evaluación paramétrica puntual de la huella del subproceso "mc-web"
pm2 show mc-web
Resolución de Problemas (Troubleshooting)
- Falso estado Offline en el Dashboard: Frecuentemente provocado por contingencias de memoria (Out of Memory) en clústeres tipo Forge. Evalúe una cadena de reinicio cíclica ejecutando
docker ps --filter "name=mc-server". - Interrupción o latencia en el conector API (
/api/server-status): Realice un rastreo secuencial minucioso (pm2 logs mc-web --lines 100) y evalúe la integridad de la apertura de red connetstat -tlnppara confirmar que el tráfico de la sesión se está sirviendo correctamente. - Restablecimiento y Recuperación Integral: Para forzar un purgado integral, recompile los binarios con
npm run builde incie un ciclo de reconstrucción ordenandopm2 restart mc-web.
Competencias Técnicas y Habilidades Demostradas
Este proyecto certifica la aplicación y compresión de metodologías e instrumentación avanzada de ingeniería de software corporativa, extrapoladas al ecosistema de integración y administración de servidores:
Cloud & ConfigOps: Implementación de prácticas enfocadas en despliegues con Docker. Abarca la administración asilada de redes, asignación de volúmenes para persistencia estructural, configuraciones declarativas modulares mediante
.ymly la administración de bajo nivel del flujo TTY (I/O Bindings).Control y Afinación de Máquinas Virtuales (JVM Tuning): Configuración profunda con optimizaciones Aikar's Flags, perfilado para garantizar el rendimiento del recolector de basura (Garbage Collectors G1GC). Esto asegura estabilidad del backend y la estabilización estricta y predecible a través de TPS (Ticks Per Second).
Seguridad Perimetral y Administración de Sistemas: Diseño de proxy transaccional fundamentado en Nginx, implementando capas seguras estrictas junto con la integración de redes SSL controladas por Cloudflare. Delega robustamente el manejo ininterrumpido a subprocesos eficientes gestionados por el software gestor Node PM2.
Desarrollo Full-Stack y Prácticas Edge: Integración fundamentada en enfoques SSR (Server Side Rendering). Plataforma arquitecturada sobre Astro, utilizando componentes adaptativos (Tailwind CSS) interactuando con redes REST en segundo plano.
Panel de Conexiones
| Servicios | Interfaz | Dominio Operativo |
|---|---|---|
| Producción Front | https://mc.zenithseed.dev | |
| Game TCP Core | mc.zenithseed.dev:25565 |
|
| Nodo SSR API | /api/server-status |
Repositorio de Documentación Oficial
Astro (Framework Arquitectura Web)
ITZG Server Repository (Contenedor Master)
PM2 (Procesamiento Daemon en Entornos Unix)