Moodle és una plataforma de gestió de l'aprenentatge (LMS) de codi obert, segurament la més popular i utilitzada de totes les existents.
Abans de començar, és recomanable provar el servei a https://moodle.org/demo, per veure si s'adapta a unes condicions particulars o si és l'objectiu del lector.
En aquest article et mostrem com instal·lar Moodle utilitzant contenidors Docker, així com la seva configuració bàsica de cursos, usuaris i permisos, per la qual cosa es recomana tenir nocions bàsiques de Docker i docker-compose.
Creació del VPS
Com s'ha dit, utilitzarem la imatge de Docker amb Ubuntu 24.04 LTS. Per decidir quants recursos cal assignar al VPS, és necessari saber quina serà la càrrega de treball del servidor, és a dir, quants usuaris esperem tenir connectats alhora i quines activitats estaran fent. No és el mateix només explorar els recursos (documents, imatges, ...) que donar suport a exàmens amb qüestionaris o tasques, cosa que requereix un rendiment notablement superior.
El mateix passa amb l'emmagatzematge, depèn dels fitxers que vulguem poder emmagatzemar. Per a una instal·lació bàsica, es recomanen almenys 10GB d'SSD (per a uns quants usuaris).
Un cop creat amb la configuració de recursos desitjada, instal·larem docker-compose amb l'ordre
apt install docker-compose-pluginTambé cal obrir els ports següents:
- 80/TCP (opcional): en principi la connexió serà per HTTPS, però es pot obrir per motius de desenvolupament i proves
- 443/TCP: per oferir el servei a través d'HTTPS
Instal·lació
Utilitzarem les imatges de Docker següents:
- MariaDB
- Moodle
Per a totes dues imatges utilitzarem les creades per Bitnami, ja que simplifiquen en gran manera la configuració.
Configuració de Let's Encrypt
Abans de res, per utilitzar un certificat SSL vàlid i que els usuaris no vegin l'advertiment que el lloc no és segur quan accedeixin al nostre sistema, n'obtindrem un a través de Let's Encrypt. Per fer-ho, utilitzarem una eina creada per Bitnami que simplifica el procés (com que també tenim el contenidor de Bitnami).
Al nostre VPS cal executar les ordres següents:
cd /tmp
curl -Ls https://api.github.com/repos/go-acme/lego/releases/latest | grep browser_download_url
| grep linux_amd64 | cut -d '"' -f 4 | wget -i -
tar xf lego_vX.Y.Z_linux_amd64.tar.gz
mkdir -p /opt/bitnami/letsencrypt
mv lego /opt/bitnami/letsencrypt/lego
On cal substituir X.Y.Z per la versió que es descarregui.
Per crear els certificats, només cal executar: /opt/bitnami/letsencrypt/lego --tls --email="EMAIL" --domains="DOMINIO" --path="/opt/bitnami/letsencrypt" run.
Quan acabi, els certificats (de clau pública i privada) es desaran a /opt/bitnami/letsencrypt/certificates/ (fitxers .crt i .key, respectivament).
Docker-compose
Utilitzarem el fitxer de configuració de docker-compose següent:
services:
mariadb:
image: docker.io/bitnami/mariadb:11.4
restart: unless-stopped
environment:
- MARIADB_USER=bn_moodle
- MARIADB_DATABASE=bitnami_moodle
- MARIADB_PASSWORD=${DB_PASSWORD}
- MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MARIADB_CHARACTER_SET=utf8mb4
- MARIADB_COLLATE=utf8mb4_unicode_ci
volumes:
- /root/moodle/mariadb-data:/bitnami/mariadb
moodle:
image: docker.io/bitnami/moodle:5.2
restart: unless-stopped
depends_on:
- mariadb
environment:
- MOODLE_DATABASE_HOST=mariadb
- MOODLE_DATABASE_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=bn_moodle
- MOODLE_DATABASE_NAME=bitnami_moodle
- MOODLE_DATABASE_PASSWORD=${DB_PASSWORD}
- MOODLE_USERNAME=admin
- MOODLE_PASSWORD=${MOODLE_ADMIN_PASSWORD}
- MOODLE_EMAIL=hola@mundo.es
ports:
- "80:8080"
- "443:8443"
volumes:
- /root/moodle/data:/bitnami/moodle
- /root/moodle/moodledata:/bitnami/moodledata
- /opt/bitnami/letsencrypt/certificates/DOMINIO.crt:/opt/bitnami/apache/conf/bitnami/certs/server.crt:ro
- /opt/bitnami/letsencrypt/certificates/DOMINIO.key:/opt/bitnami/apache/conf/bitnami/certs/server.key:roA més dels comentaris fets al mateix YAML, s'utilitzaran els dos volums següents per desar les dades i evitar que es perdin si els contenidors s'aturen (cal crear-los):
- MariaDB: s'emmagatzemaran les dades relatives a la base de dades a /root/moodle/mariadb-data
- Moodle: s'emmagatzemaran les dades de Moodle a /root/moodle/data
Nota
Cal donar permisos a les dues carpetes creades perquè l'usuari de docker hi pugui escriure, per la qual cosa cal executar, per a cadascuna: chown -R 1001:1001 CARPETA
Un cop creats els directoris i canviats els volums dels certificats, executem docker-compose up -d.
Si tot ha anat bé, podem accedir a l'URL del nostre servidor a través d'HTTPS i veurem la pantalla següent:
Configuració de Moodle
Per accedir al tauler d'administració de moodle, cal identificar-se amb les credencials escrites al fitxer docker-compose.yml, en el nostre cas admin i moodle:
En primer lloc, el més recomanable és registrar el nostre lloc per rebre alertes de seguretat i perquè els usuaris de la nostra plataforma puguin utilitzar l'aplicació mòbil de Moodle per accedir al servei (requadre vermell).
Farem un breu repàs de les funcions bàsiques de Moodle, així com de la creació d'usuaris i cursos.
Canvi d'idioma
És molt possible que vulguem oferir la nostra plataforma en un idioma diferent de l'anglès, per la qual cosa haurem d'instal·lar el paquet d'idioma i activar-lo per defecte.
A Site administration, anem a Language > Language packs i seleccionem el que vulguem:
Després d'instal·lar-lo, anem a Language > Language settings i el marquem com a predeterminat:
Canvi de les dades del lloc
També haurem de canviar el nom i la descripció del lloc, als quals accedim a Página principal > Ajustes de la página principal:
Això també ens permet canviar els blocs que es mostren en accedir al nostre lloc. A l'apartat Apariencia del menú d'administració podem canviar diversos paràmetres com la icona, els colors o el tema utilitzat:
Addició de cursos
Els cursos són les diferents unitats en les quals es poden matricular els alumnes i els professors. Un exemple de curs podria ser la classe de Matemàtiques de 1r d'ESO.
Abans de crear el curs, és recomanable crear una categoria per al curs. En l'exemple anterior, la categoria englobaria tots els cursos d'un nivell: la categoria seria 1r d'ESO i cadascun dels cursos serien les assignatures que tinguem en aquest nivell: Matemàtiques, Llengua Castellana i Literatura, Ciències Naturals,...
Per tant, creem una categoria:
Un cop creada, afegirem un curs nou:
Addició d'usuaris
Els usuaris seran els diferents clients del nostre sistema Moodle, que es dividiran en 2 rols: Alumno i Profesor.
És possible afegir diversos mètodes d'accés, com ara un servidor LDAP. En aquest exemple, per simplificar, ho farem introduint els usuaris un per un. Per afegir un usuari nou:
A partir d'aquest moment, l'usuari creat pot accedir al sistema amb les credencials, però no podrà veure cap curs, ja que no està matriculat en cap (i per defecte no és possible que els usuaris s'automatriculin).
Per tant, el matricularem com a professor de Matemàtiques de 1r d'ESO; per fer-ho, anem al curs en qüestió i al menú esquerre seleccionem Participantes. A la vista que apareix, a la part superior dreta, hi ha un botó per matricular usuaris:
Seleccionem el nostre usuari i li assignem el rol de Profesor.
Nota
Per afegir alumnes, el procés és el mateix, canviant únicament el rol a Alumno.
Ara, si iniciem sessió amb el professor, veurem que a l'Área personal ens apareix el curs de Matemàtiques, al qual podrem accedir i editar-lo (com que som el professor, engranatge superior dret):
Extensions
És possible afegir més funcionalitats al sistema Moodle a través dels connectors.
Per exemple, és possible permetre que els usuaris creïn videoconferències Jitsi, per a la qual cosa cal tenir un VPS o Docker amb Jitsi.
Documentació
Hi ha una àmplia documentació per personalitzar i adaptar Moodle a les nostres necessitats a la seva Documentació.
A més, amb la imatge de Bitnami de Moodle, és possible configurar determinats serveis de manera senzilla, com ara un servidor SMTP per enviar correus d'activitats de Moodle.
Aquest article ha estat redactat per David Población, col·laborador habitual de Clouding.