JITSI-MEET - Base Documentation
Jitsi Meet Configuration
Configuration Files
Jitsi Meet is configured through several key files. These files control the behavior of Jitsi Meet, such as authentication, video quality, and the user interface.
Key configuration files:
- **/etc/jitsi/meet/{your-domain}-config.js**: This file contains the main configuration options for Jitsi Meet, including UI settings, authentication, and video quality.
- **/etc/jitsi/jicofo/sip-communicator.properties**: Configuration file for Jicofo (Jitsi Conference Focus), which handles conference management.
- **/etc/jitsi/videobridge/config**: This configuration file is for the Jitsi Videobridge, which handles media routing for video conferences.
Example configuration in `/etc/jitsi/meet/{your-domain}-config.js`:
var config = {
hosts: {
domain: 'meet.example.com',
muc: 'conference.meet.example.com',
focus: 'focus.meet.example.com'
},
testing: {
enableFirefoxHD: true
},
resolution: 720,
enableDisplayName: true
};
This example configures basic domain names and enables 720p resolution.
Configuring Jitsi Videobridge
The Jitsi Videobridge is responsible for routing video and audio streams during a conference. It can be configured through `/etc/jitsi/videobridge/config`.
Example to set the number of video channels:
# In /etc/jitsi/videobridge/config VIDEOBRIDGE_MAX_CHANNELS=50
This increases the number of video channels the bridge can handle.
Security Concepts
SSL/TLS Encryption
Jitsi Meet should be configured to use SSL/TLS to secure communication between clients and the server. Let's Encrypt can be used for automatic certificate generation.
To enable SSL on Jitsi Meet:
- Configure Nginx to use SSL for the domain hosting Jitsi Meet.
- Use the `certbot` tool to automatically fetch and renew SSL certificates from Let's Encrypt.
Example configuration for Nginx (found in `/etc/nginx/sites-available/{your-domain}`):
server {
listen 443 ssl;
server_name meet.example.com;
ssl_certificate /etc/letsencrypt/live/meet.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meet.example.com/privkey.pem;
...
}
This configures SSL for the domain and ensures secure HTTPS connections.
Authentication and User Management
For added security, Jitsi Meet can integrate with various authentication systems (e.g., JWT, LDAP, OAuth).
To enable JWT authentication, configure the `prosody` server (XMPP server used by Jitsi) to validate tokens:
# In /etc/prosody/conf.d/meet.example.com.cfg.lua
VirtualHost "meet.example.com"
authentication = "token"
app_id = "your-app-id"
app_secret = "your-app-secret"
This example shows how to configure token authentication by setting an app ID and secret.
Protecting Jitsi Meet Services
To protect your Jitsi Meet services, such as Jicofo and Jitsi Videobridge, make sure only authorized clients can connect.
Configure firewalls to block unnecessary ports and limit service exposure. For example, only allow HTTPS traffic on port 443 and disable other unused ports.
Example of firewall rules with `ufw`:
ufw allow 443/tcp ufw allow 10000:20000/udp ufw enable
This opens only the necessary ports for Jitsi Meet (HTTPS and media ports).
Advanced Configurations
Configuring Jitsi Meet for Large Conferences
Jitsi Meet supports scaling to handle larger conferences by adjusting video resolution and load balancing between multiple Videobridges.
You can configure the maximum number of participants per conference in the config file:
# In /etc/jitsi/meet/{your-domain}-config.js
constraints: {
video: {
height: {
ideal: 720,
max: 1080
}
},
maxParticipants: 50
}
This sets a maximum of 50 participants per conference and limits video height to 1080p.
Multi-Server Setup
For better performance and scalability, you can deploy multiple Jitsi Videobridges across different machines. This requires configuring load balancing.
First, set up a load balancer (such as HAProxy) to distribute traffic to multiple Videobridges. Then, configure each Videobridge with the same domain in `/etc/jitsi/videobridge/config`.
Example of HAProxy configuration:
frontend https_front
bind *:443
default_backend videobridge_back
backend videobridge_back
balance roundrobin
server bridge1 192.168.1.2:8080 check
server bridge2 192.168.1.3:8080 check
This configures HAProxy to distribute requests between `bridge1` and `bridge2`.
Troubleshooting
Jitsi Meet Not Loading or Connecting
If Jitsi Meet is not loading or connecting:
- Check if the Nginx server is running and serving SSL correctly.
systemctl status nginx
- Ensure that the correct ports are open for HTTPS and media (ports 443, 10000–20000 UDP).
ufw status
- Verify if the necessary Jitsi services are running (Jicofo, Videobridge). systemctl status jicofo systemctl status jitsi-videobridge2
If services are not running, try restarting them:
systemctl restart jicofo systemctl restart jitsi-videobridge2
Audio and Video Issues
If participants are experiencing audio or video problems:
- Check if your Videobridges are properly configured and running.
systemctl status jitsi-videobridge2
- Verify network connectivity for the UDP media ports (10000–20000).
- Ensure that the client’s browser is supported (e.g., Chrome or Firefox).
For more detailed troubleshooting:
journalctl -u jicofo journalctl -u jitsi-videobridge2
These logs can provide insights into errors or misconfigurations.
Performance Issues
If you notice performance issues, such as lag or high CPU usage:
- Monitor server resources:
top
- Verify server load and traffic using:
netstat -tuln
- If running a multi-server setup, check load balancing and resource allocation between Videobridges.
Example of checking CPU usage for Jitsi services:
ps aux | grep jitsi
Useful Links
- https://jitsi.org/
- https://github.com/jitsi/jitsi-meet
- https://jitsi.github.io/handbook/
- https://community.jitsi.org/
- https://jitsi.org/downloads/
- https://github.com/jitsi/jicofo
- https://github.com/jitsi/jitsi-videobridge
- https://www.digitalocean.com/community/tutorials/how-to-set-up-jitsi-meet-video-conferencing-on-ubuntu-20-04
