This guide uses official Docker Compose images to run Jitsi Meet.
| Attribute | Details |
|---|---|
| License | Apache-2.0 |
| Docker Repository | jitsi/docker-jitsi-meet |
| Docker Hub | jitsi/* |
| Supported Architectures | amd64, arm64 |
For Docker installation, see Docker.
Important: Download the release package, do NOT clone the repository.
# Download latest release
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
# Extract and enter directory
unzip docker-jitsi-meet-*.zip
cd docker-jitsi-meet-*
# Copy example environment file
cp env.example .env
# Generate secure passwords for all services
./gen-passwords.sh
Edit .env with your settings:
# Required: Your deployment domain
PUBLIC_URL=https://meet.example.com
# Required: Timezone
TZ=UTC
# Optional: Let's Encrypt TLS (uncomment for production)
# ENABLE_LETSENCRYPT=1
# LETSENCRYPT_DOMAIN=meet.example.com
# LETSENCRYPT_EMAIL=admin@example.com
# Optional: LAN/NAT environments - advertise correct IP
# JVB_ADVERTISE_IPS=192.168.1.100
# Optional: Enable additional services
# ENABLE_JIGASI=1 # SIP gateway
# ENABLE_JIBRI=1 # Recording/streaming
# ENABLE_ETHERPAD=1 # Collaborative editor
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
# Start all services
docker compose up -d
# View running containers
docker compose ps
# View logs
docker compose logs -f
Access the web interface at https://localhost:8443 or your configured domain.
Check service health:
# Check container status
docker compose ps
# Check web service logs
docker compose logs web
# Check JVB (videobridge) logs
docker compose logs jvb
| Port | Protocol | Purpose |
|---|---|---|
| 80 | TCP | HTTP redirect (optional with Let’s Encrypt) |
| 443 | TCP | HTTPS web interface |
| 10000 | UDP | RTP media traffic (video/audio) |
Enable additional services with Docker Compose overlays:
# SIP gateway (PSTN integration)
docker compose -f docker-compose.yml -f jigasi.yml up -d
# Recording and streaming
docker compose -f docker-compose.yml -f jibri.yml up -d
# Collaborative editor
docker compose -f docker-compose.yml -f etherpad.yml up -d
# Whiteboard
docker compose -f docker-compose.yml -f whiteboard.yml up -d
For local network access, set the advertised IP:
# In .env file
JVB_ADVERTISE_IPS=192.168.1.100
# Or with custom external port
JVB_ADVERTISE_IPS=192.168.1.100#12345
# In .env file
ENABLE_LETSENCRYPT=1
LETSENCRYPT_DOMAIN=meet.example.com
LETSENCRYPT_EMAIL=admin@example.com
Warning: Let’s Encrypt rate limits apply (5 certificates per domain per 7 days).
Default deployment uses self-signed certificates. Mobile apps will not work with self-signed certs.
Mount your certificates:
# In docker-compose.yml override
volumes:
- /path/to/cert.key:/config/keys/cert.key
- /path/to/cert.crt:/config/keys/cert.crt
If using a reverse proxy, forward these WebSocket paths:
/xmpp-websocket/colibri-wsgit clone https://github.com/jitsi/docker-jitsi-meet
cd docker-jitsi-meet
# Build all images
make
# Build specific image
make build_web
# Force rebuild
FORCE_REBUILD=1 make
JVB_ADVERTISE_IPS for NAT environmentsDocker 20.10.5 on Debian has IPv6 port binding issues. Upgrade Docker.
Mobile apps require valid TLS certificates. Use Let’s Encrypt or custom CA-signed certificates.
# Stop current deployment
docker compose down
# Download new release
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
unzip -o docker-jitsi-meet-*.zip
cd docker-jitsi-meet-*
# Start new version
docker compose up -d
Any questions?
Feel free to contact us. Find all contact information on our contact page.