Centro de Ayuda

Moodle + MariaDB + Redis

Moodle es la plataforma de aprendizaje en línea más extendida en instituciones educativas: cursos, matriculaciones, evaluaciones, calificaciones y seguimiento de estudiantes.

Este Stack lo instala con MariaDB y Redis. La caché en memoria importa especialmente acá, porque la carga de Moodle se concentra en picos: todos los estudiantes entran a la misma hora.

Servicios que incluye

Además de la aplicación, el Stack levanta MariaDB, Moodle, Redis, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y el administrador de archivos web.

Estructura del proyecto

text
.
├── backup
│   └── backup-runner.sh
├── health
│   └── status.py
├── nginx
│   └── default.conf
├── .env.example
└── compose.yaml

Puesta en marcha

Instalá el Stack y levantalo:

bash
docker-deploy-stack --stack php/moodle-mariadb-redis
cd /root/stack/php/moodle-mariadb-redis
docker compose up -d

Esta es una aplicación lista para usar: no hace falta que subas código. Los temas, plugins, extensiones y archivos que subas desde su panel de administración quedan guardados en el Stack y entran en los backups automáticos.

Configuración

Los valores editables están en el archivo .env del Stack:

Variable Por defecto Para qué sirve
APP_PORT 80 Puerto público del Stack.
APP_ENV development Entorno de la aplicación.
DB_NAME moodle Nombre de la base de datos.
DB_USER moodle Usuario de la base de datos.
BACKUP_ENABLED 1 Backups automáticos: 1 activados, 0 desactivados.
BACKUP_INTERVAL_SECONDS 86400 Cada cuántos segundos se hace un backup.
BACKUP_RETENTION_DAYS 7 Cuántos días se conservan los backups.
MARIADB_VERSION 11.4 Versión de la imagen correspondiente.
MOODLE_VERSION latest Versión de la imagen correspondiente.
NGINX_VERSION stable-alpine Versión de la imagen correspondiente.
REDIS_VERSION 7-alpine Versión de la imagen correspondiente.

Después de cambiarlo, aplicá los cambios con docker compose up -d.

Comandos útiles

bash
docker compose ps          # ver los contenedores que están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores