JITSI-MEET - Base Documentation

From IT-Arts.net


Return to Wiki Index

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

Return to Wiki Index