Vista general
Cómo está construida la Academia Deltamontero (DELTA-APP), de la red pública a los contenedores, en una sola página.
La Academia Deltamontero es una instalación de Moodle 4.5 LTS empaquetada en una imagen Docker propia, con todos sus plugins (de terceros y propios) incluidos en la imagen. Se despliega con Coolify dentro de un contenedor LXC de Proxmox de la empresa (172246) y hoy se usa desde la red interna en http://192.168.0.192. La publicación en Internet a través de Cloudflare con el dominio learning.deltamontero.net está planificada; todavía no está publicada.
Esta sección está pensada para el equipo de TI y para desarrolladores. Explica qué piezas existen, dónde vive cada dato, cómo se configura sola la plataforma en cada arranque y qué servicios externos usa.
Diagrama general
Usuarios (navegador, desde la red interna de la empresa)
│ hoy: HTTP, http://192.168.0.192
│ planificado: HTTPS por Cloudflare
│ (learning.deltamontero.net)
│
┌─────────────────────────────────────▼───────────────────────────────────────┐
│ Servidor de producción: contenedor LXC de Proxmox 172246 · Docker + Coolify │
│ │
│ Traefik (proxy inverso que administra Coolify; TLS, enrutamiento) │
│ │ HTTP :80 │
│ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ │
│ │ moodle │ │ moodle-cron │ │ mariadb │ │
│ │ Apache + PHP 8.3 │ │ cron.php c/60 s │ │ MariaDB 11.4 │ │
│ │ Moodle 4.5 LTS │ │ (misma imagen) │ │ │ │
│ └───────┬──────────┘ └───────┬──────────┘ └──────────┬───────────┘ │
│ │ volumen moodledata │ │ volumen │
│ └──────────┬───────────┘ │ mariadb_data │
│ ▼ ▼ │
│ archivos subidos, cachés base de datos de Moodle │
│ │
│ Respaldo diario del host (cron 2:00 Ecuador) → /var/backups/delta-lms │
└─────────────────────────────────────────────────────────────────────────────┘
│ salida a Internet desde el contenedor moodle / moodle-cron
├──► Office 365 (SMTP 587, STARTTLS): correos de la Academia
├──► Groq (API compatible con OpenAI): chat de IA
└──► YouTube: videos embebidos y comprobación de disponibilidadLos tres contenedores comparten una red Docker interna (delta_network). Solo el contenedor moodle recibe tráfico web, y lo recibe del proxy de Coolify; la base de datos no se publica fuera de esa red.
Piezas principales
| Capa | Tecnología | Detalle |
|---|---|---|
| Acceso | Red interna (hoy) y Cloudflare (planificado) | Hoy se entra desde la red interna de la empresa en http://192.168.0.192. Planificado: DNS y proxy de Cloudflare para el dominio learning.deltamontero.net. |
| Despliegue | Coolify + Traefik | Coolify construye la imagen desde el repositorio, inyecta las variables de entorno y genera la ruta de Traefik a partir de la configuración de dominios. |
| Aplicación | Moodle 4.5 LTS sobre moodlehq/moodle-php-apache:8.3 | Moodle y plugins fijados a un commit exacto, incluidos en la imagen. |
| Tareas programadas | Contenedor moodle-cron | Misma imagen; ejecuta admin/cli/cron.php cada 60 segundos. |
| Base de datos | MariaDB 11.4 LTS | utf8mb4 / utf8mb4_unicode_ci, 1 GB de memoria para InnoDB. |
| Archivos | Volumen moodledata | Archivos subidos, cachés y sesiones de Moodle. |
| Correo | Office 365 por SMTP | Cola propia con límites por minuto y por día. |
| IA | local_ai_manager + block_ai_chat → Groq | Modelo openai/gpt-oss-20b para conversar; openai/gpt-oss-120b para el agente de acciones. |
| Videos | YouTube (y Cloudflare R2) | Fuera del servidor; no forman parte del respaldo. |
Principio de diseño: configuración como código, datos como respaldo
La plataforma separa con claridad dos cosas:
| Configuración | Datos | |
|---|---|---|
| Qué es | Ajustes de Moodle, tema, plugins, parches, roles, reglas de la Academia, textos | Usuarios, matrículas, avances, notas, intentos, certificados emitidos, archivos subidos, registro de correos |
| Dónde vive | En el repositorio: Dockerfile, moodle-config.sh y los scripts PHP de infrastructure/moodle/ | En MariaDB (mariadb_data) y en moodledata |
| Cómo se aplica | Se reaplica sola, de forma idempotente, en cada arranque del contenedor moodle | Se recupera con restore.sh desde el último respaldo |
Por eso un servidor nuevo se reconstruye con el repositorio más el último respaldo: la imagen trae el código y la configuración, y el respaldo trae lo que generaron las personas. El detalle está en Configuración automática y en Datos y almacenamiento.
Mapa de esta sección
Infraestructura
Contenedores
Datos y almacenamiento
Configuración automática
Plugins y componentes
Roles y permisos
Seguridad
Correo
Inteligencia artificial
Integraciones
Discrepancias y puntos por confirmar
Dónde seguir
- Cómo desplegar, respaldar y recuperar: Operación y mantenimiento.
- Cómo extender los plugins propios y los scripts: Desarrollo.
- Variables, rutas y comandos de consulta rápida: Referencia.
Tours y ayuda
Tours guiados de cada pantalla, el botón de ayuda, Realizar tour de esta página, soporte, la Guía para Talento Humano y el manual de la Academia.
Infraestructura
Servidor de producción (contenedor LXC de Proxmox), Coolify, acceso por la red interna, Cloudflare y dominio planificados, entorno local, recursos y manejo de la hora.