// DevOps

Cómo instalar Jitsi Meet en tu servidor usando Docker

Publicado el 22.09.2026

Jitsi Meet — un sistema de videoconferencias de código abierto que se puede desplegar en su propio servidor. Es más sencillo hacerlo con Docker: el proyecto publica imágenes listas y archivos Compose. A continuación — instalación según la guía oficial docker-jitsi-meet. En qué se diferencia un Jitsi propio de Google Meet y cuándo tiene sentido, se explica en el artículo «Jitsi Meet contra Google Meet».


Paso 1: Preparación

Necesitará:

  • un servidor con Linux, por ejemplo Ubuntu;
  • un nombre de dominio con un registro A apuntando a la dirección IP del servidor, por ejemplo meet.example.com;
  • Docker y el complemento Docker Compose.

Paso 2: Descarga del release

La guía exige descargar el archivo del último release, y no clonar el repositorio: en la rama de desarrollo hay imágenes de prueba.

bash
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
unzip <nombre-del-archivo-descargado>.zip
cd <directorio-del-archivo>

El nombre del archivo y del directorio depende de la versión del release, así que compruébelos después de la descarga con ls.


Paso 3: Configuración de .env

  1. Cree el archivo a partir del ejemplo y genere contraseñas para las cuentas de servicio:

    bash
    cp env.example .env
    ./gen-passwords.sh
  2. Indique la dirección en la que se abrirá Jitsi. La variable se llama PUBLIC_URL (la variable JITSI_DOMAIN, que puede encontrarse en instrucciones antiguas, no está en env.example):

    dotenv
    PUBLIC_URL=https://meet.example.com
  3. Por defecto la interfaz web escucha los puertos 8000 (HTTP) y 8443 (HTTPS) — esto está pensado para funcionar detrás de un proxy inverso. Si Jitsi va a aceptar HTTPS por sí mismo y obtener el certificado Let’s Encrypt, cambie los puertos a los estándar y habilite el certificado:

    dotenv
    HTTP_PORT=80
    HTTPS_PORT=443
    ENABLE_HTTP_REDIRECT=1
    ENABLE_LETSENCRYPT=1
    LETSENCRYPT_DOMAIN=meet.example.com
    LETSENCRYPT_EMAIL=admin@example.com

    Si ya hay un nginx delante de Jitsi, no cambie los puertos y no active Let’s Encrypt en Jitsi — la opción con proxy inverso se describe en el artículo «Jitsi Meet (Docker) con Nginx como proxy inverso».

  4. Si el servidor está detrás de NAT, indique su dirección externa para el videobridge, de lo contrario los participantes desde Internet no recibirán vídeo:

    dotenv
    JVB_ADVERTISE_IPS=203.0.113.10
  5. Cree los directorios de configuración. Desde el release stable-11146 los contenedores funcionan con un usuario sin privilegios (uid 1000) y un sistema de archivos de solo lectura, por lo que la estructura de directorios ha cambiado y los directorios storage y tmp deben ser accesibles en escritura:

    bash
    mkdir -p ~/.jitsi-meet-cfg/{web,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri,transcriber}
    mkdir -p ~/.jitsi-meet-cfg/storage/{jibri,prosody,transcripts,web}
    mkdir -p ~/.jitsi-meet-cfg/tmp/{web-crontabs,web-load-test}
    chmod 777 ~/.jitsi-meet-cfg/storage/{jibri,prosody,transcripts,web}
    chmod 777 ~/.jitsi-meet-cfg/tmp/{web-crontabs,web-load-test}

    Si no crea estos directorios de antemano, los contenedores que los necesiten no arrancarán y mostrarán un error.


Paso 4: Inicio

Inicio básico

bash
docker compose up -d
docker compose ps

Componentes adicionales

  • Pasarela SIP (Jigasi):

    bash
    docker compose -f docker-compose.yml -f jigasi.yml up -d
  • Grabación y transmisiones (Jibri):

    bash
    docker compose -f docker-compose.yml -f jibri.yml up -d
  • Edición colaborativa (Etherpad):

    bash
    docker compose -f docker-compose.yml -f etherpad.yml up -d

Se pueden combinar archivos, por ejemplo -f docker-compose.yml -f jigasi.yml -f jibri.yml. Cómo funciona el flujo completo de grabación de reuniones se explica en el artículo «Flujo completo de grabación de reuniones en Jitsi Meet».


Paso 5: Verificación

  1. Abra https://meet.example.com — debería abrirse la interfaz de Jitsi Meet. Debe usar HTTPS: por HTTP el navegador no permitirá acceso a la cámara ni al micrófono.

  2. Abra los puertos en el cortafuegos:

    • 80/tcp y 443/tcp — interfaz web y emisión del certificado;
    • 10000/udp — flujos multimedia del videobridge. Sin él la página se abre, pero los participantes no se verán ni oirán entre sí.
  3. Realice una reunión de prueba con dos participantes desde redes distintas, por ejemplo desde un ordenador y desde un teléfono usando datos móviles.

Por defecto cualquiera que abra la dirección puede crear una sala. Cómo habilitar la autenticación y optimizar el servidor — en el artículo «Jitsi Meet: Configuración de autenticación y optimización del servidor».


Actualización

Descargue el archivo del nuevo release en un directorio separado, traslade su .env allí y compárelo con el nuevo env.example: a veces se añaden o renombrán variables. Luego, en el nuevo directorio:

bash
docker compose pull
docker compose up -d

Antes de pasar por la versión stable-11146 cree la nueva estructura de directorios del paso 3 — las versiones antiguas usaban otra.


Resumen

Jitsi Meet en Docker se despliega en media hora: archivo del release, .env con PUBLIC_URL, directorios de configuración y tres puertos abiertos. Los errores más comunes — no indicar PUBLIC_URL, olvidar el puerto UDP 10000 y no establecer la dirección externa del videobridge en un servidor detrás de NAT.

// Reviews

Reseñas relacionadas

N_Konstantin

Configuración de VPS, configuración del servidor

10.10.2025 · ★ 5/5

Cliente acostumbrado

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida