How to Record Jitsi Meet Sessions with Docker and Jibri

Learn how to record Jitsi Meet sessions using Docker and Jibri. Step-by-step setup guide with troubleshooting tips for seamless video recording.

How to Record Jitsi Meet Sessions with Docker and Jibri

Introduction

Setting up the ability to record Jitsi Meet sessions has become essential for businesses, educational institutions, and content creators who want to preserve important conversations and presentations. Whether you’re conducting team meetings, hosting webinars, or running online classes, having a reliable recording system ensures you never lose valuable content.

Recording video conferences might seem complicated, but with the right tools and guidance, you can create a professional recording setup that captures high-quality audio and video from your Jitsi Meet sessions. This comprehensive guide will walk you through every step of setting up Jitsi Meet recording using Docker and Jibri, making the process straightforward even for beginners.

By the end of this tutorial, you’ll have a fully functional recording system that automatically captures your meetings and saves them for future reference, sharing, or archival purposes.

What is Jibri and Why Use It for Recording?

Jibri (Jitsi Broadcasting Infrastructure) is an open-source tool specifically designed to record and stream Jitsi Meet conferences. Think of it as a headless browser that joins your meeting as a participant and captures everything that happens during the session. The main advantages of using Jibri include:

Cost-effective solution: Unlike paid recording services, Jibri is completely free and open-source, making it perfect for organizations with budget constraints.

Complete control: You own and manage your recording infrastructure, ensuring data privacy and security compliance.

High-quality output: Jibri captures both audio and video in excellent quality, suitable for professional use.

Flexible storage options: You can save recordings locally or upload them to cloud storage services automatically.

Customizable settings: Adjust recording parameters like resolution, frame rate, and audio quality to match your specific needs.

Prerequisites and System Requirements

Before diving into the installation process, make sure your system meets the necessary requirements for smooth operation.

Hardware Requirements:

  • Minimum 4GB RAM (8GB recommended for multiple concurrent recordings)
  • At least 2 CPU cores (4 cores preferred)
  • Sufficient storage space for recordings (consider 1GB per hour of recording)
  • Stable internet connection with adequate bandwidth

Software Requirements:

  • Ubuntu 18.04 or newer (other Linux distributions work but Ubuntu is recommended)
  • Docker and Docker Compose installed
  • Basic command-line knowledge
  • Administrative access to your server

Network Considerations:

Your server should have proper firewall configuration allowing necessary ports for Jitsi Meet communication. If you’re behind a corporate firewall, ensure the required ports are open for both incoming and outgoing traffic.

Step 1: Installing Docker and Docker Compose

Docker simplifies the deployment process by packaging all dependencies into containers. Here’s how to install Docker on your Ubuntu server: First, update your system packages:

sudo apt update && sudo apt upgrade -y

Install Docker using the official installation script:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Add your user to the Docker group to run commands without sudo:

sudo usermod -aG docker $USER

Install Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Verify the installation by checking versions:

docker --version
docker-compose --version

Log out and log back in for the group changes to take effect.

Step 2: Setting Up Jitsi Meet with Docker

Now we’ll deploy a complete Jitsi Meet instance using Docker Compose. This setup includes all necessary components for video conferencing and recording.

Create a directory for your Jitsi installation:

mkdir ~/jitsi-meet && cd ~/jitsi-meet

Download the official Docker Compose configuration:

wget https://github.com/jitsi/docker-jitsi-meet/archive/stable.tar.gz
tar -xzf stable.tar.gz
cd docker-jitsi-meet-stable

Copy the environment template:

cp env.example .env

Generate strong passwords for your installation:

./gen-passwords.sh

Edit the environment file to configure your domain and settings:

nano .env

Key configurations to modify:

  • Set your domain name in the HTTP_PORT and HTTPS_PORT variables
  • Configure DOCKER_HOST_ADDRESS to your server’s IP address
  • Enable Jibri by setting ENABLE_RECORDING=1

Step 3: Configuring Jibri for Recording

The Jibri configuration requires careful attention to ensure reliable recording functionality. This step involves modifying several configuration files to enable the record Jitsi Meet capability.

Create a Jibri configuration directory:

mkdir -p ~/.jitsi-meet-cfg/jibri

Create the main Jibri configuration file:

nano ~/.jitsi-meet-cfg/jibri/jibri.conf

Add the following configuration:

jibri {
  recording {
    recordings-directory = "/tmp/recordings"
    finalize-script = "/opt/jitsi/jibri/finalize.sh"
  }
  
  streaming {
    rtmp-allow-list = [
      ".*"
    ]
  }
  
  chrome {
    flags = [
      "--use-fake-ui-for-media-stream",
      "--start-maximized",
      "--kiosk",
      "--enabled",
      "--disable-infobars",
      "--autoplay-policy=no-user-gesture-required"
    ]
  }
  
  stats {
    enable-stats-d = true
  }
  
  webhook {
    subscribers = []
  }
  
  jwt-info {
    signing-key-path = "/opt/jitsi/jibri/asap.key"
    kid = "jibri/recorder"
    issuer = "jibri"
    audience = "jitsi"
    ttl = 1 hour
  }
}

This configuration sets up the recording directory, Chrome browser flags for headless operation, and authentication settings.

Step 4: Docker Compose Configuration

Modify your Docker Compose file to include Jibri service and proper recording setup. Open the docker-compose.yml file and add the Jibri service configuration.

The Jibri service needs specific volume mounts for recordings and access to the host system for browser automation. Pay special attention to the shared memory settings, as insufficient shared memory can cause recording failures.

Key points for the Jibri Docker configuration:

  • Mount the recordings directory to preserve files
  • Set appropriate shared memory size (recommended: 2GB)
  • Configure environment variables for Jitsi integration
  • Enable necessary capabilities for browser automation

Step 5: Network and Firewall Configuration

Proper network configuration ensures smooth communication between all Jitsi components and external participants. Configure your firewall to allow the necessary ports while maintaining security. Essential ports to configure:

  • Port 80/443 for web interface
  • Port 10000 for video traffic
  • Port 4443 for harvester fallback
  • Additional ports for TURN server if configured

For Ubuntu systems using UFW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 4443/tcp

If you’re using iptables, create appropriate rules for the same ports. Remember to save your iptables rules to persist after reboot.

Step 6: Starting the Services

Launch your Jitsi Meet instance with recording capabilities:

docker-compose up -d

Check that all services are running properly:

docker-compose ps

Monitor the logs to ensure everything starts correctly:

docker-compose logs -f

The startup process may take a few minutes as Docker downloads images and initializes services. Watch for any error messages that might indicate configuration issues.

Step 7: Testing Your Recording Setup

Once your services are running, it’s time to test the record Jitsi Meet functionality. Access your Jitsi Meet instance through your web browser and create a test meeting.

Testing checklist:

  • Join a meeting room
  • Start recording from the meeting interface
  • Verify that the recording indicator appears
  • Check that audio and video are being captured
  • Stop the recording and verify file creation
  • Test playback quality

During testing, monitor the Jibri logs to identify any issues:

docker-compose logs jibri

Common issues during testing include audio problems, video quality issues, or recording failures due to insufficient resources.

Managing Recordings and Storage

Effective recording management ensures you don’t run out of storage space and can easily access your recorded content. Set up automated processes for handling recorded files.

Storage considerations:

  • Implement rotation policies for old recordings
  • Set up automated backup to cloud storage
  • Configure cleanup scripts to remove temporary files
  • Monitor disk usage regularly

Create a simple script to manage recording storage:

#!/bin/bash
# Clean up recordings older than 30 days
find /path/to/recordings -name "*.mp4" -mtime +30 -delete

For cloud storage integration, consider using tools like rclone to automatically sync recordings to services like Google Drive, AWS S3, or Dropbox.

Troubleshooting Common Issues

Even with careful setup, you might encounter issues with your recording system. Here are solutions to the most common problems:

Recording fails to start:

  • Check Jibri service status and logs
  • Verify Chrome browser installation in container
  • Ensure sufficient system resources
  • Confirm firewall settings

Poor audio quality:

  • Adjust audio bitrate settings in Jibri configuration
  • Check system audio configuration
  • Verify microphone permissions

Video sync issues:

  • Monitor system performance during recording
  • Adjust video encoding settings
  • Check network stability

Storage problems:

  • Verify recording directory permissions
  • Check available disk space
  • Review file system configuration

Advanced Configuration Options

For users who need more sophisticated recording setups, Jibri offers advanced configuration options that can enhance your record Jitsi Meet experience.

  • Multi-instance recording: Set up multiple Jibri instances to handle concurrent recordings. This requires load balancing configuration and resource management.
  • Custom recording layouts: Modify the recording layout to highlight specific participants or content areas. This involves customizing CSS and JavaScript files.
  • Integration with external services: Connect your recording system with learning management systems, content management platforms, or video processing workflows.
  • Quality optimization: Fine-tune encoding parameters for different use cases, balancing file size with video quality based on your specific needs.

Security Considerations

When setting up a recording system, security should be a top priority. Implement proper security measures to protect your infrastructure and recorded content. Key security practices:

  • Use strong, unique passwords for all services
  • Enable SSL/TLS encryption for web interfaces
  • Implement access controls for recording management
  • Regular security updates for all components
  • Network segmentation to isolate the recording system

Consider implementing authentication mechanisms to control who can start recordings and access recorded content. This is particularly important in enterprise environments where sensitive information might be discussed.

Performance Optimization

Optimize your system performance to ensure smooth recording operations and handle multiple concurrent sessions effectively.

System tuning recommendations:

  • Allocate adequate CPU and memory resources
  • Use SSD storage for better I/O performance
  • Configure swap space appropriately
  • Monitor system metrics during recording

For high-volume recording scenarios, consider implementing horizontal scaling by adding multiple Jibri instances behind a load balancer.

Monitoring and Maintenance

Regular monitoring and maintenance keep your recording system running smoothly and help identify issues before they impact users. Monitoring checklist:

  • Service health and uptime
  • Resource utilization (CPU, memory, disk)
  • Recording success rates
  • Storage usage and trends
  • Network performance metrics

Set up automated alerts for critical issues like service failures, storage space running low, or performance degradation.

Integration with Other Systems

Your Jitsi Meet recording system can integrate with various other platforms and services to create a comprehensive video conferencing and content management solution.

Common integration scenarios:

  • Learning Management Systems (LMS) for educational content
  • Customer Relationship Management (CRM) for sales meeting recordings
  • Content Delivery Networks (CDN) for global content distribution
  • Video processing services for automated transcription or editing

API integration allows for automated workflow creation, where recordings can be processed, tagged, and distributed according to predefined rules.

Scaling Your Recording Infrastructure

As your recording needs grow, you’ll need to scale your infrastructure to handle increased demand while maintaining performance and reliability. Scaling strategies:

  • Horizontal scaling with multiple Jibri instances
  • Load balancing to distribute recording requests
  • Database clustering for metadata management
  • Content distribution networks for recorded content

Plan your scaling approach based on expected usage patterns and growth projections. Consider both technical and cost factors when designing your scaled infrastructure.

Best Practices for Production Deployment

Deploying a recording system in production requires careful planning and adherence to best practices to ensure reliability and user satisfaction.

Production deployment checklist:

  • Comprehensive testing in staging environment
  • Backup and recovery procedures
  • Documentation for operations team
  • User training and support materials
  • Performance monitoring and alerting

Implement gradual rollout strategies to minimize risk and gather user feedback before full deployment.

Conclusion

Setting up a system to record Jitsi Meet sessions using Docker and Jibri provides organizations with a powerful, cost-effective solution for capturing important video conferences. This comprehensive guide has walked you through every step of the process, from initial system setup to advanced configuration options.

The combination of Jitsi Meet’s open-source video conferencing platform with Jibri’s recording capabilities creates a robust solution that rivals expensive commercial alternatives. By following the steps outlined in this guide, you now have the knowledge to deploy, configure, and maintain a professional-grade recording system.

Remember that successful implementation requires ongoing maintenance, monitoring, and optimization. Regular updates, security patches, and performance tuning will ensure your recording system continues to serve your organization’s needs effectively.

Take action today and start implementing your own Jitsi Meet recording solution. Begin with a test environment to familiarize yourself with the setup process, then gradually move to production deployment as you gain confidence with the system.

Professional Jitsi Meet recording setup services - Get expert Docker and Jibri installation, configuration, and ongoing support for your business needs.

Frequently Asked Questions

The storage requirements depend on recording quality and duration. On average, plan for approximately 1GB per hour of recording at standard quality (720p). Higher quality recordings (1080p) may require 2-3GB per hour. Consider your typical meeting length and frequency to calculate total storage needs.

Yes, you can configure automatic recording through Jibri settings or by using the Jitsi Meet API to start recordings programmatically. This requires additional configuration but allows for hands-free recording based on meeting schedules or other triggers.

For stable recording, you need at least 4GB RAM, 2 CPU cores, and sufficient storage. However, 8GB RAM and 4 CPU cores are recommended for better performance, especially when handling multiple concurrent recordings or high-quality video.

Start by checking the Jibri logs using docker-compose logs jibri. Common issues include insufficient system resources, incorrect permissions, or network connectivity problems. Verify that all services are running and check the configuration files for errors.

Yes, Jibri allows extensive customization of recording parameters including resolution, frame rate, audio bitrate, and layout. You can modify these settings in the Jibri configuration file to match your specific requirements.

Absolutely! Jibri supports simultaneous recording and streaming to platforms like YouTube, Facebook Live, or custom RTMP endpoints. Configure the streaming settings in your Jibri configuration file to enable this functionality.

Implement security measures including strong passwords, SSL/TLS encryption, firewall configuration, and regular updates. Consider setting up authentication for recording access and implementing network segmentation to isolate your recording infrastructure.

Jibri primarily outputs recordings in MP4 format with H.264 video encoding and AAC audio encoding. This format provides good compression while maintaining compatibility with most video players and platforms.

Set up post-recording scripts that use tools like rclone, aws-cli, or similar utilities to automatically transfer completed recordings to cloud storage services like Google Drive, AWS S3, or Dropbox immediately after recording finishes.
Your subscription could not be saved. Please try again.
Your subscription has been successful.

Get in Touch

Get Started with Us Today!

Looking to set up or optimize your Jitsi? Let's connect and make it happen.