added jitsi plugin doc

This commit is contained in:
RadinPirouz
2026-05-30 20:30:38 +03:30
parent a276e44338
commit 33399a8019

View File

@@ -0,0 +1,179 @@
# Jitsi Docker Plugins and Third-Party Software Catalog
This is a practical DevOps checklist for a self-hosted Jitsi Meet deployment running with Docker Compose. The official Docker stack is based around `web`, `prosody`, `jicofo`, and `jvb`, with optional Compose overlays for services like `jibri`, `jigasi`, `etherpad`, `whiteboard`, `transcriber`, `grafana`, `prometheus`, `rtcstats`, and log analysis. ([GitHub][1])
## 1. Core Jitsi Docker Components
| Component | Purpose | Docker Service |
| ----------------- | --------------------------------------------------- | -------------- |
| Jitsi Meet Web | Frontend web UI, Nginx, static assets, external API | `web` |
| Prosody | XMPP server used for signaling, auth, room control | `prosody` |
| Jicofo | Conference focus, room/session orchestration | `jicofo` |
| Jitsi Videobridge | SFU media bridge for audio/video routing | `jvb` |
| Jibri | Recording and live streaming worker | `jibri` |
| Jigasi | SIP gateway and dial-in/dial-out support | `jigasi` |
| Jitsi Transcriber | Speech-to-text transcription support | `transcriber` |
| JaaS Components | Hosted Jigasi-style components from 8x8/JaaS | optional |
## 2. Official Optional Docker Overlays
| Overlay File | Feature | Use Case |
| ------------------ | ----------------------- | --------------------------------------- |
| `jibri.yml` | Recording and streaming | Record meetings, stream to YouTube/RTMP |
| `jigasi.yml` | SIP gateway | Connect SIP PBX, PSTN, VoIP users |
| `etherpad.yml` | Shared documents | Collaborative meeting notes |
| `whiteboard.yml` | Excalidraw whiteboard | Collaborative drawing/whiteboard |
| `transcriber.yml` | Transcription | Meeting captions/transcripts |
| `grafana.yml` | Grafana dashboard | Metrics visualization |
| `prometheus.yml` | Metrics scraping | Monitoring Jitsi services |
| `rtcstats.yml` | WebRTC analytics | Client-side WebRTC quality data |
| `log-analyser.yml` | Log analysis | Loki/OpenTelemetry/Grafana log view |
The official Docker guide shows these overlays being started with commands like `docker compose -f docker-compose.yml -f jibri.yml up -d`, and similar combinations for Jigasi, Etherpad, whiteboard, transcriber, Grafana, and log analysis. ([Jitsi][2])
## 3. Reverse Proxy and TLS Software
| Software | Purpose | Docker-Friendly | Notes |
| ------------- | -------------------------------------------- | --------------- | --------------------------------------------------------------- |
| Nginx | Reverse proxy, TLS termination, HTTP routing | Yes | Common production choice |
| Traefik | Dynamic reverse proxy for Docker labels | Yes | Good for multi-service Docker hosts |
Jitsi Docker requires a real `PUBLIC_URL` for production deployments, and the official `.env` includes Lets Encrypt-related settings such as domain, email, staging mode, and ACME server selection. ([Jitsi][2])
## 4. NAT, STUN, and TURN
| Software | Purpose | When to Use |
| ------------------ | ---------------------- | ------------------------------------------------------- |
| coturn | TURN/STUN relay server | Required for reliable calls behind strict NAT/firewalls |
| Google STUN | Public STUN service | Basic NAT discovery, not enough for all networks |
| Custom STUN | Your own STUN endpoint | Controlled infrastructure |
| TURN over TCP 443 | Firewall bypass | Corporate networks that block UDP |
| TURN over TLS 5349 | Secure TURN relay | Better for enterprise deployments |
Jitsi can use a TURN server for cases where direct peer-to-peer connectivity fails; the official TURN guide discusses coturn, XMPP-delivered TURN credentials, UDP 3478, TCP/TLS 5349, and using port 443 for restrictive networks. ([Jitsi][3])
## 5. Authentication and SSO
| Tool | Integration Type | Notes |
| ------------------------------ | -------------------------------- | ------------------------------------------------- |
| Internal Prosody Auth | Username/password inside Prosody | Simple small deployment |
| JWT Auth | Token-based authentication | Best for custom apps and portals |
| LDAP | Directory authentication | Enterprise user directories |
| Active Directory | LDAP/SASL integration | Corporate auth |
| OpenLDAP | LDAP backend | Self-hosted directory |
| Keycloak | OIDC/SAML identity provider | Usually integrated through JWT adapters |
| authentik | OIDC/SAML identity provider | Good self-hosted SSO option |
| Authelia | SSO and access control | Usually used in front of apps |
| Dex | Lightweight OIDC provider | Kubernetes-friendly |
| OAuth2 Proxy | Auth gateway | Can protect Jitsi landing pages or custom portals |
| jitsi-OIDC-adapter | OIDC to Jitsi JWT bridge | Community integration |
| jitsi-OIDC-SAML-adapter | OIDC/SAML to Jitsi JWT bridge | Community integration |
| nordeck/jitsi-keycloak-adapter | Keycloak adapter | Dockerized Jitsi integration |
The official Docker `.env` supports `AUTH_TYPE=internal`, `jwt`, `ldap`, or `matrix`, and includes JWT and LDAP configuration fields. Jitsis JWT auth plugin verifies client connections using JWT and supports shared-secret or public-key validation. ([GitHub][4])
## 6. SIP, VoIP, and Telephony
| Software | Purpose | Works With |
| --------------------------- | ---------------------- | ------------------------ |
| Jigasi | Jitsi SIP gateway | SIP providers, PBX, PSTN |
| Asterisk | PBX server | Jigasi |
| FreePBX | Asterisk management UI | Jigasi |
| FreeSWITCH | PBX/media server | Jigasi |
| Kamailio | SIP proxy | Large SIP routing |
| OpenSIPS | SIP proxy | Large SIP routing |
| SIP provider account | External calling | Jigasi |
| Twilio Elastic SIP Trunking | SIP trunk | Jigasi/Asterisk |
| Telnyx SIP | SIP trunk | Jigasi/Asterisk |
| VoIP.ms | SIP trunk | Jigasi/Asterisk |
| SignalWire | SIP/telephony | Jigasi/Asterisk |
Jitsi Dockers `.env` includes Jigasi SIP settings such as SIP URI, SIP password, SIP server, SIP port, and SIP transport. ([GitHub][4])
## 7. Recording, Streaming, and Storage
| Software | Purpose | Notes |
| ---------------------- | ---------------------------- | ------------------------------------- |
| Jibri | Recording and streaming | Official Jitsi recording component |
| FFmpeg | Media processing | Used in recording/streaming workflows |
| Google Chrome/Chromium | Headless capture for Jibri | Required by Jibri |
| ALSA/PulseAudio | Audio capture stack | Used by Jibri |
| YouTube Live | RTMP streaming target | Jibri can stream to RTMP |
| Twitch | RTMP streaming target | Possible with stream key |
| Facebook Live | RTMP streaming target | Possible with stream key |
| Nginx RTMP Module | Self-hosted RTMP endpoint | Internal streaming pipeline |
| Owncast | Self-hosted live streaming | RTMP target |
| Restream | Multi-platform streaming | RTMP target |
| MinIO | S3-compatible object storage | Store recordings |
| AWS S3 | Object storage | Store recordings |
| Wasabi | S3-compatible storage | Store recordings |
| Backblaze B2 | Object storage | Store recordings |
| rclone | Upload/sync recordings | Post-recording automation |
## 8. Collaboration Add-ons
| Software | Purpose | Integration Style |
| ---------------------- | ---------------------------- | ------------------------------ |
| Etherpad | Shared document editing | Official Docker overlay |
| Excalidraw | Whiteboard | Official whiteboard overlay |
| Nextcloud | Files, calendar, office docs | External integration |
| OnlyOffice | Document editing | With Nextcloud or standalone |
| Collabora Online | Document editing | With Nextcloud |
The official Docker setup has direct support for Etherpad document sharing and an Excalidraw-based virtual collaborative whiteboard. ([Jitsi][2])
## 9. Chat and Team Platform Integrations
| Platform | Integration Method | Notes |
| -------------------------- | ----------------------------------------- | ----------------------------------- |
| Matrix / Element | Matrix auth or meeting integration | Jitsi can be used from Matrix rooms |
| Mattermost | Jitsi plugin/integration | Team chat video calls |
| Rocket.Chat | Jitsi integration | Team chat video calls |
| Nextcloud Talk / Nextcloud | External meeting links or app integration | Good self-hosted suite |
| Moodle | Jitsi plugin | Education/LMS |
## 10. Web and App Embedding
| Tool | Purpose | Notes |
| ----------------- | ------------------------------- | ------------------------------ |
| Jitsi IFrame API | Embed meetings in websites/apps | Official supported method |
| External API JS | Browser-side meeting control | Loaded from `/external_api.js` |
| lib-jitsi-meet | Low-level JS library | Build custom video apps |
The official IFrame API lets you embed Jitsi Meet into your own application, and the event API allows listening to meeting events through `JitsiMeetExternalAPI`. ([Jitsi][5])
## 11. Prosody Plugins and XMPP Modules
| Plugin / Module Type | Purpose |
| ---------------------------- | ------------------------------- |
| Custom Prosody modules | Add custom XMPP behavior |
| JWT auth module | Token authentication |
| LDAP/SASL auth module | Enterprise directory auth |
| MUC modules | Room behavior customization |
| Lobby modules | Guest waiting room behavior |
| MUC size module | Room participant metrics |
| MUC domain mapper | Multi-domain setups |
| Token moderation | Moderator control from JWT |
| Room metadata modules | Store extra room info |
| Reservation modules | Room booking or room validation |
| External services module | TURN credential delivery |
| Rate limiting modules | Abuse protection |
| Anti-spam modules | Public server protection |
| Webhook-style custom module | Send events to external backend |
| Custom access control module | Per-room or per-user policy |
For Docker deployments, custom Prosody plugins are usually mounted into the Prosody config/plugin path and enabled through Prosody/Jitsi configuration. The official Docker guide creates a `prosody/prosody-plugins-custom` directory for custom plugin use. ([Jitsi][2])
## 12. Monitoring and Observability
| Software | Purpose | Notes |
| ------------------- | ------------------------------- | -------------------------------------- |
| Prometheus | Metrics collection | Official Docker overlay exists |
| Grafana | Dashboards | Official Docker overlay exists |
| Jitsi Meet Exporter | Prometheus exporter | Exposes Jitsi metrics |
| Loki | Log aggregation | Used in log analyzer stack |
| OpenTelemetry | Telemetry/log pipeline | Used in log analyzer stack |
The Jitsi Docker repository includes `prometheus.yml`, `grafana.yml`, `rtcstats.yml`, and `log-analyser.yml`; the log analyser uses Grafana Loki and OpenTelemetry for log management and analysis. ([GitHub][1])