GCP autogestionado (BETA)¶
El plugin puede aprovisionar y gestionar un servidor Jitsi Meet completo en Google Cloud Platform por ti, directamente desde Moodle. No configuras nada a mano: el plugin crea la VM, instala Jitsi, configura la autenticación JWT, obtiene un certificado SSL y registra el servidor para que esté listo para usar.
Esta es la forma más sencilla de obtener una configuración con todas las funciones y lista para producción. Con un servidor GCP autogestionado puedes:
- Crear servidores Jitsi bajo demanda directamente desde Moodle
- Configurar automáticamente Jitsi Meet con autenticación JWT
- Gestionar el ciclo de vida del servidor (arrancar / detener instancias)
- Usar direcciones IP estáticas para una configuración DNS consistente
- Aprovisionar certificados SSL de Let's Encrypt automáticamente
Esta función está en BETA
La integración con GCP es experimental. Úsala en entornos de producción con precaución.
Requisitos previos¶
Antes de usar la integración con GCP necesitas:
-
Cuenta de Google Cloud Platform
- Un proyecto de GCP activo con facturación habilitada
- La API de Compute Engine habilitada
-
Una cuenta de servicio con permisos
- Crea una cuenta de servicio en tu proyecto de GCP
- Concédele los siguientes roles:
Compute Admin(roles/compute.admin) — para crear y gestionar instanciasService Account User(roles/iam.serviceAccountUser) — para asociar cuentas de servicio a las instancias
- Descarga el archivo de clave JSON de esta cuenta de servicio
-
Un nombre de dominio (obligatorio)
- Un nombre de dominio completo (FQDN) que puedas apuntar a la IP de la VM
- Necesario para la autenticación JWT y los certificados SSL de Let's Encrypt
- Ejemplo:
jitsi.example.com
Pasos de configuración¶
1. Habilitar la API de Compute Engine¶
En la consola de Google Cloud:
- Ve a APIs & Services → Library
- Busca Compute Engine API
- Haz clic en Enable
2. Crear una cuenta de servicio¶
- Ve a IAM & Admin → Service Accounts
- Haz clic en Create Service Account
- Ponle un nombre (p. ej.
jitsi-moodle-manager) - Concede los roles:
Compute AdminService Account User
- Haz clic en Create Key y descarga el archivo JSON
Mantén seguro el archivo de clave
La clave JSON proporciona acceso completo a tus recursos de Compute Engine. Nunca la subas a un control de versiones.
3. Configurar el plugin en Moodle¶
Navega a Site administration → Plugins → Activity modules → Jitsi → Google Cloud (GCP) - BETA y rellena:
| Ajuste | Descripción |
|---|---|
| Project ID | El ID de tu proyecto de GCP (p. ej. my-project-12345). Lo encuentras en el panel de la consola de GCP. |
| Zone | La zona de Compute Engine donde se crean las VM (p. ej. europe-west1-b). Elige una cercana a tus usuarios. Lista de zonas. |
| Machine Type | Tamaño de la VM (por defecto e2-standard-4). Consulta el dimensionamiento más abajo. |
| Base Image | Imagen del SO (por defecto projects/debian-cloud/global/images/family/debian-12). Se recomienda Debian 12; no la cambies salvo que tengas una imagen Jitsi personalizada. |
| Network | Red VPC (por defecto global/networks/default). Usa la predeterminada salvo que tengas una VPC personalizada. |
| Hostname (FQDN) — obligatorio | El FQDN de tu servidor Jitsi (p. ej. jitsi.example.com). Necesario para JWT y SSL. Debes apuntar el DNS a la IP de la VM, y también crear un registro A para auth.<tu-hostname>. |
| Let's Encrypt Email — obligatorio | Correo para las notificaciones de Let's Encrypt (solicitudes de certificados y avisos de caducidad). |
| Service Account JSON | Sube el archivo de clave JSON del paso 2. |
Guía de tipos de máquina:
| Tipo | Recursos | Adecuado para |
|---|---|---|
e2-standard-2 |
2 vCPU, 8 GB RAM | reuniones pequeñas (< 20 participantes) |
e2-standard-4 |
4 vCPU, 16 GB RAM | reuniones medianas (< 50 participantes) — recomendado |
e2-standard-8 |
8 vCPU, 32 GB RAM | reuniones grandes (> 50 participantes) |
Consulta los precios de instancias de VM.
4. Reglas de firewall (automáticas)¶
El plugin crea automáticamente una regla de firewall llamada mod-jitsi-allow-web:
- Puertos: TCP 80 (HTTP), TCP 443 (HTTPS), UDP 10000 (Jitsi videobridge)
- Destino: instancias etiquetadas con
mod-jitsi-web - Origen:
0.0.0.0/0(todo el tráfico de internet)
Si el plugin no tiene permiso para crear reglas de firewall, deberás crear esta regla manualmente en la consola de GCP.
Crear un servidor Jitsi¶
Una vez completada la configuración:
- Ve a Site administration → Plugins → Activity modules → Jitsi → Server management
- Haz clic en Create server in Google Cloud
- El plugin:
- Reservará o reutilizará una dirección IP estática disponible
- Creará una VM de Compute Engine con la configuración especificada
- Instalará y configurará Jitsi Meet automáticamente
- Configurará la autenticación JWT con credenciales autogeneradas
- Esperará a la propagación del DNS y obtendrá un certificado SSL de Let's Encrypt
- Registrará el servidor en la lista de servidores de Moodle
Un modal muestra el progreso. La creación suele tardar 5–10 minutos, y el script de arranque esperará hasta 15 minutos a la propagación del DNS.
Configura el DNS de inmediato
El modal muestra la dirección IP estática asignada a tu VM. En cuanto aparezca, crea estos registros A en tu proveedor de DNS:
jitsi.example.com→ IP estática (hostname principal)auth.jitsi.example.com→ misma IP estática (necesario para JWT)
Usa el tipo de registro A y TTL 300 (recomendado para una propagación más rápida). La VM espera a que el DNS se propague antes de completar la instalación.
Cómo funciona¶
El script de arranque¶
El plugin usa un script de arranque cloud-init / bash que se ejecuta en el primer inicio:
- Fase de espera del DNS (0–15 min) — comprueba si el hostname configurado resuelve a la IP pública de la VM, esperando hasta 15 minutos. Sin un DNS correcto, la autenticación JWT puede no funcionar correctamente.
- Instalación de Jitsi — instala Jitsi Meet desde los repositorios oficiales, configura Prosody (servidor XMPP) para la autenticación JWT usando el hostname, y genera un App ID y un Secret aleatorios para JWT.
- Certificado SSL — si el DNS está configurado, solicita un certificado de Let's Encrypt; si el DNS no está listo, instala un certificado autofirmado (los navegadores mostrarán advertencias).
- Configuración de JWT — configura Jicofo y Prosody para la autenticación basada en token, de modo que solo los usuarios con tokens JWT válidos (generados por Moodle) puedan moderar sesiones.
- Callback a Moodle — una vez completado, la VM notifica a Moodle con las credenciales JWT; Moodle registra el servidor y lo pone a disposición para su uso.
Gestión de direcciones IP estáticas¶
- El plugin reserva automáticamente una dirección IP estática para cada servidor.
- Si eliminas un servidor, la IP se libera de nuevo al pool.
- Al crear nuevos servidores, el plugin reutiliza las IP estáticas disponibles para evitar los límites de cuota.
- Cada IP estática conlleva un pequeño coste (~0,01 $/hora, o ~7 $/mes mientras esté en uso).
Gestionar servidores¶
Los servidores creados aparecen en la interfaz de Server Management con estas opciones:
- Edit — cambia el nombre y la configuración del servidor.
- Start / Stop — controla el ciclo de vida de la VM para ahorrar costes. Las VM detenidas solo conllevan costes de almacenamiento (mucho más baratos que las que están en ejecución); arrancar una VM detenida tarda ~1–2 minutos.
- Delete — elimina permanentemente el servidor.
Eliminar un servidor
Eliminarlo borra la VM y libera la IP estática. Las sesiones existentes que usen ese servidor dejarán de funcionar.
Consideraciones de coste¶
Ejecutar servidores Jitsi en GCP conlleva costes.
Instancia de cómputo (mientras está en ejecución):
| Tipo | Coste aprox. |
|---|---|
e2-standard-2 |
~49 $/mes (8760 h) |
e2-standard-4 |
~98 $/mes |
e2-standard-8 |
~196 $/mes |
Usa la función Stop cuando el servidor no esté en uso para ahorrar costes.
Dirección IP estática:
- ~7 $/mes por IP cuando está asociada a una instancia en ejecución
- ~9 $/mes por IP cuando está reservada pero sin usar
- Elimina las IP que no uses para evitar cargos
Almacenamiento: ~0,17 $/mes por cada 20 GB de SSD (disco de arranque por defecto).
Salida de red (egress) (tráfico saliente desde la VM):
- Primer 1 GB/mes: gratis
- A partir de 1 GB: ~0,12 $/GB (varía según la región)
- Las llamadas 1 a 1 son mínimas (peer-to-peer, sin ancho de banda del servidor); las de 3 o más participantes son altas porque el Jitsi Videobridge retransmite todos los flujos.
- Una conferencia HD de 1 hora con 10 participantes puede consumir entre 5 y 10 GB de egress.
El egress puede ser el mayor coste
Para instituciones con reuniones grandes y frecuentes, la salida de red suele ser el mayor gasto. Considera monitorizar el uso real antes de escalar a muchos usuarios.
Consejos para ahorrar costes:
- Detén las VM cuando no estén en uso activo (p. ej. fuera del horario laboral).
- Elimina los servidores que ya no necesites.
- Considera las VM preemptibles para pruebas (no recomendado para producción).
Consideraciones de seguridad¶
- Autenticación JWT — todos los servidores autocreados usan JWT por defecto. Solo Moodle puede generar tokens válidos, por lo que los usuarios no pueden unirse ni moderar sin credenciales emitidas por Moodle.
- Seguridad de la cuenta de servicio — mantén seguro el archivo de clave JSON, nunca lo subas a un control de versiones, rota las claves periódicamente y aplica el mínimo privilegio (concede solo los roles necesarios).
- Seguridad de red — la regla de firewall abre puertos a internet (necesario para Jitsi); el propio Jitsi gestiona la autenticación mediante JWT. Considera Cloud Armor para protección DDoS en producción.
- Certificados SSL — usa siempre certificados de Let's Encrypt en producción. Los certificados autofirmados muestran advertencias en el navegador; los de Let's Encrypt se renuevan automáticamente con certbot.
La grabación y la IA vienen incluidas
Un servidor GCP autogestionado aprovisiona una VM dedicada de grabación con Jibri, con las grabaciones guardadas en Google Cloud Storage y funciones de IA disponibles. Consulta Grabación para más detalles.