Cobbleverse
Cloud Architecture
01. Visión Arquitectónica
Objetivo y alcance del despliegue
Cobbleverse Cloud es una solución Full-Stack diseñada para la administración integral de un servidor Minecraft modificado (Cobblemon) alojado en Oracle Cloud Infrastructure (OCI). El diseño prioriza la operabilidad, la observabilidad y la seguridad.
02. Arquitectura del Sistema
Topología de red y flujo de datos
El sistema implementa un patrón de BFF (Backend for Frontend). El cliente web (Dashboard) nunca interactúa directamente con el demonio de Minecraft.
[ Cliente Web ]
│
│ (HTTPS / Port 443)
▼
[ Nginx Reverse Proxy ] ──(TLS Termination)──┐
│
┌──────────────────────────────────────┘
│ (HTTP / Localhost:3000)
▼
[ Next.js API Gateway ]
│
├─► (I/O) ──► [ Sistema de Archivos Ext4 ]
│
└─► (TCP / Localhost:25575)
▼
[ Minecraft Server (Java JVM) ]03. Infraestructura Cloud
Aprovisionamiento y red
Instancia Compute
Oracle Ampere A1
Arquitectura ARM64, 4 OCPUs, 24GB RAM DDR4, Boot Volume NVMe (Ubuntu 22.04 LTS).
Capa de Red
Nginx Edge
Proxy inverso con terminación TLS 1.3 (Certbot/Let's Encrypt) y enrutamiento a proceso Node.js.
Hardening del Proxy
# Redirección incondicional HTTP -> HTTPS
server {
listen 80 default_server;
server_name proyectodcd.duckdns.org;
return 301 https://$server_name$request_uri;
}
# Configuración SSL y Cabeceras de Seguridad
server {
listen 443 ssl http2;
server_name proyectodcd.duckdns.org;
# HSTS (Obliga navegadores a usar HTTPS)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN";
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
}
}04. Gestión del Entorno
Variables y configuración de servicios
La separación estricta de configuración y código se logra inyectando secretos únicamente en tiempo de ejecución.
# Autenticación del Dashboard
NEXT_PUBLIC_ADMIN_PASSWORD="<hash>"
# Credenciales del Demonio (RCON)
MINECRAFT_RCON_HOST="127.0.0.1"
MINECRAFT_RCON_PORT="25575"
MINECRAFT_RCON_PASSWORD="<secreto_fuerte>"
# I/O Restricciones
MINECRAFT_BASE_PATH="/opt/minecraft/server"# Habilitación de la capa de control local
enable-rcon=true
rcon.port=25575
rcon.password=<secreto_fuerte>
broadcast-rcon-to-ops=false05. Orquestación de Procesos
Ciclo de vida de los servicios
Se emplean gestores de procesos dedicados para garantizar alta disponibilidad (HA) y reinicios automáticos ante fallos críticos.
PM2 (Dashboard API)
- ✓ Mantiene vivo el proceso Node.js.
- ✓ Rotación de logs de aplicación.
- ✓ Reinicio en arranque (pm2 startup).
Systemd (Minecraft)
- ✓ Ejecución bajo usuario sin privilegios.
- ✓ Límites de memoria (LimitNOFILE).
- ✓ Integración con API (systemctl).
06. Observabilidad Integrada
Telemetría de recursos en tiempo real
Monitorización proactiva expuesta a través de GET /api/minecraft/system. Implementa un polling optimizado (7s).
Memoria RAM
free -m
Cálculo de memoria residente vs buffers/cache. Previene latencia del Garbage Collector (GC).
Carga CPU
os.loadavg()
Media de carga a 1, 5 y 15m. Normalizado por hilos de arquitectura ARM.
Disponibilidad
os.uptime()
Tiempo de actividad del kernel. Correlación de reinicios forzosos.
07. Resiliencia de Datos
Estrategia de backups automatizados
Ejecución de respaldos asíncronos en caliente utilizando el algoritmo de compresión Zstandard (.tar.zst).
[2026-02-11 16:44:17] INFO [Pre-flight] -> Iniciando guardado seguro (save-all flush)
[2026-02-11 16:44:18] INFO [Compresión] -> Empaquetando volumen de datos (ZST)
[2026-02-11 16:44:19] OK [Completado] -> Tamaño: 1.8GB | Duración: 34s | Integridad: SHA-256 Validado08. Políticas de Seguridad
Hardening de la capa de aplicación
Limitación de Tasa (Rate Limiting)
Implementación de 20 peticiones / 10s por IP en endpoints de mutación (/api/minecraft/command). Mitiga vectores de ataque DoS.
Lista Blanca de Ejecución
Bloqueo estricto a nivel de API. El intento de ejecución de /stop o /op eleva una excepción y es denegado preventivamente.
Aislamiento de Secretos
Cero exposición en el bundle del cliente. Las credenciales RCON existen únicamente en la memoria del proceso backend.
09. Auditoría de Impacto
Evolución de la madurez operativa
- ⨯ Conexión SSH imperativa para reinicios.
- ⨯ Ceguera operativa (sin métricas de host).
- ⨯ Backups manuales inconsistentes.
- ✓ Panel de control centralizado y seguro.
- ✓ Observabilidad en tiempo real (API).
- ✓ Tareas críticas abstraídas a UI.