Moodle es una plataforma de gestión del aprendizaje (LMS) de código abierto, seguramente la más popular y usada de todas las existentes.
Antes de empezar, es recomendable probar el servicio en https://moodle.org/demo, para ver si se adapta a unas condiciones particulares o si es el objetivo del lector.
En este artículo te mostramos cómo instalar Moodle usando contenedores Docker, así como su configuración básica sobre cursos, usuarios y permisos, por lo que se recomienda tener nociones básicas de Docker y docker-compose.
Creando el VPS
Como se ha dicho, vamos a usar la imagen de Docker con Ubuntu 18.04 LTS. Para decidir cuántos recursos asignar al VPS, es necesario saber cuál va a ser la carga de trabajo del servidor, es decir, cuantos usuarios esperamos tener conectados al mismo tiempo y qué actividades van a estar realizando. No es lo mismo solamente explorar los recursos (documentos, imágenes, ...) que dar soporte a exámenes con cuestionarios o tareas, lo cual requiere un rendimiento notablemente superior.
Igual ocurre con el almacenamiento, depende de los archivos que queramos poder almacenar. Para una instalación básica, se recomiendan al menos 10GB de SSD (para unos pocos usuarios).
Una vez creado con la configuración de recursos deseada, vamos a instalar docker-compose con la orden
apt-get install docker-compose
Es necesario además abrir los siguientes puertos:
- 80/TCP (opcional): en principio la conexión será por HTTPS, pero se puede abrir por motivos de desarrollo y testing
- 443/TCP: para dar el servicio a través de HTTPS
Instalación
Vamos a usar las siguientes imagenes de Docker:
- MariaDB
- Moodle
Para ambas imágenes vamos a usar las creadas por Bitnami, ya que simplifican en gran medida la configuración.
Configurar Let's Encrypt
Antes de nada, para usar un certificado SSL válido y que los usuarios no vean a la hora de acceder a nuestro sistema la advertencia que el sitio no es seguro, vamos a obtener uno a través de Let's Encrypt. Para ello, vamos a usar una herramienta creada por Bitnami que simplifica el proceso (al tener el contenedor de Bitnami también).
En nuestro VPS hay que ejecutar las siguientes órdenes:
cd /tmp curl -Ls https://api.github.com/repos/xenolf/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
Donde hay que reemplazar X.Y.Z por la versión que se descargue.
Para crear los certificados, basta con ejecutar: /opt/bitnami/letsencrypt/lego --tls --email="EMAIL" --domains="DOMINIO" --path="/opt/bitnami/letsencrypt" run.
Cuando termine, los certificados (de clave pública y privada) se guardarán en /opt/bitnami/letsencrypt/certificates/ (archivos .crt y .key, respectivamente).
Docker-compose
Vamos a usar el siguiente archivo de configuración de docker-compose:
version: '2'
services:
mariadb:
image: 'docker.io/bitnami/mariadb:10.1'
environment: - MARIADB_USER=bn_moodle # usuario de la base de datos
- MARIADB_DATABASE=bitnami_moodle # nombre de la base de datos
- ALLOW_EMPTY_PASSWORD=no # no permite tener contraseñas de usuarios de la db vacías - MARIADB_PASSWORD=admin - MARIADB_ROOT_PASSWORD=admin volumes: - '/root/moodle/mariadb-data:/bitnami' moodle: image: 'docker.io/bitnami/moodle:3' environment: - MARIADB_HOST=mariadb # mismo que el especificado arriba - MARIADB_PORT_NUMBER=3306 # por defecto 3306 - MOODLE_DATABASE_USER=bn_moodle # mismo que el especificado arriba - MOODLE_DATABASE_NAME=bitnami_moodle # mismo que el especificado arriba - MOODLE_DATABASE_PASSWORD=admin - MOODLE_USERNAME=admin # usuario de moodle - MOODLE_PASSWORD=moodle # contraseña del usuario de moodle creado - MOODLE_EMAIL=hola@mundo.es # email del usuario de moodle creado ports: - '80:80' # http - '443:443' # https volumes: - '/root/moodle/data:/bitnami' - '/opt/bitnami/letsencrypt/certificates/DOMINIO.crt:/opt/bitnami/apache/conf/bitnami/certs/server.crt' # cambiar la primera ruta por el nombre del certificado generado crt - '/opt/bitnami/letsencrypt/certificates/DOMINIO.key:/opt/bitnami/apache/conf/bitnami/certs/server.key' # cambiar la primera ruta por el nombre del certificado generado key depends_on: - mariadb
Además de los comentarios hechos en el propio YAML, se van a usar los siguientes dos volúmenes para guardar los datos y no se pierdan si los contenedores se paran (hay que crearlos):
- MariaDB: se van a almacenar los datos relativos a la base de datos en /root/moodle/mariadb-data
- Moodle: se van a almacenar los datos de Moodle en /root/moodle/data
Nota
Es necesario dar permisos a las dos carpetas creadas para que el usuario de docker pueda escribir en ellas, por lo que, para cada una hay que ejecutar: chown -R 1001:1001 CARPETA
Una vez creados los directorios y cambiados los volúmenes de los certificados, ejecutamos docker-compose up -d.
Si todo ha ido bien, podemos acceder a la URL de nuestro servidor a través de HTTPS y veremos la siguiente pantalla:
Configurar Moodle
Para acceder al panel de administración de moodle, hace falta identificarse con las claves escritas en el archivo docker-compose.yml, en nuestro caso admin y moodle:
En primer lugar, lo más recomendable es registrar nuestro sitio, para recibir alertas de seguridad y que los usuarios de nuestra plataforma puedan usar la aplicación móvil de Moodle para acceder al servicio (recuadro rojo).
Vamos a hacer un breve repaso a las funciones básicas de Moodle, así como la creación de usuarios y cursos.
Cambiar idioma
Es muy posible que deseemos ofrecer nuestra plataforma en un idioma distinto del inglés, por lo que deberemos instalar el paquete de idioma y activarlo por defecto.
En Site administration, vamos a Language > Language packs y seleccionamos el deseado:
Después de instalarlo, vamos a Language > Language settings y lo marcamos por defecto:
Cambiar datos del sitio
También necesitaremos cambiar el nombre y la descripción del sitio, a lo cual accedemos en Página principal > Ajustes de la página principal:
Esto nos permite también cambiar los bloques mostrados al acceder a nuestro sitio. En el apartado Apariencia del menú de administración podemos cambiar varios ajustes como el icono, los colores o el tema usado:
Añadir cursos
Los cursos son las distintas unidades en las cuales los alumnos y los profesores pueden ser matriculados. Un ejemplo de curso podría ser la clase de Matemáticas en un 1º de ESO.
Antes de crear el curso, es recomendable crear una categoría para el curso. En el ejemplo anterior, la categoría englobaría a todos los cursos de un nivel: la categoría sería 1ºESO y cada uno de los cursos serían las asignaturas que tengamos en dicho nivel: Matemáticas, Lengua Castellana y Literatura, Ciencias Naturales,...
Por lo tanto, creamos una categoría:
Ya creada, vamos a añadir un nuevo curso:
Añadir usuarios
Los usuarios van a ser los distintos clientes de nuestro sistema Moodle, los cuales se dividirán en 2 roles: Alumno y Profesor.
Es posible añadir varios métodos de acceso, como un servidor LDAP. En este ejemplo, por simplificar, lo haremos introduciendo uno a uno los usuarios. Para añadir un nuevo usuario:
A partir de este momento el usuario creado puede acceder al sistema con las claves, pero no va a poder ver ningún curso, ya que no está matriculado en ninguno (y por defecto no es posible que los usuarios se automatriculen).
Por lo tanto, vamos a matricularlo como profesor de Matemáticas de 1º ESO, para ello vamos al curso en cuestión y en el menú izquierdo seleccionamos Participantes. En la vista que aparece, en el botón superior derecho, aparece un botón para matricular usuarios:
Seleccionamos nuestro usuario y le damos el rol de Profesor.
Nota
Para añadir alumnos el proceso es el mismo, únicamente cambiando el rol a Alumno.
Ahora, si iniciamos sesión con el profesor veremos que en el Área personal nos aparece el curso de Matemáticas, al cual podremos acceder y editarlo (al ser el profesor, engranaje superior derecho):
Extensiones
Es posible añadir más funcionalidad al sistema Moodle a través de los plug-ins.
Por ejemplo, es posible permitir que los usuarios creen videoconferencias Jitsi, para lo cual es necesario tener un VPS o Docker con Jitsi.
Documentación
Existe una amplia documentación para personalizar y adaptar Moodle a nuestras necesidades en su Documentación.
Además, con la imagen de Bitnami de Moodle, es posible configurar ciertos servicios de forma sencilla, como un servidor SMTP para enviar correos de actividades de Moodle.
Este artículo ha sido redactado por David Población, colaborador habitual de Clouding.