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
.
├── backup
│ └── backup-runner.sh
├── health
│ └── status.py
├── nginx
│ └── default.conf
├── .env.example
└── compose.yaml
Puesta en marcha
Instalá el Stack y levantalo:
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
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