Skip to content
This repository has been archived by the owner on Aug 26, 2023. It is now read-only.

Docker Jitsi Meet WebRTC conferencing system w/Prosody XMPP and s6 overlay

License

Notifications You must be signed in to change notification settings

tiredofit/docker-jitsi-meet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

github.com/tiredofit/docker-jitsi-meet

Build Status Docker Pulls Docker Stars Docker Layers

Introduction

This is a series of Dockerfiles to build a Jitsi Meet webRTC conferencing solution.

  • Prosody 0.10 - Based on Alpine 3.7
  • Jitsi Meet - Based on NodeJS 8.9 + Alpine 3.7
  • Jitsi Conference Focus - Stable - Based on Alpine 3.7
  • Jitsi Video Bridge - Stable - Based on Debian (Alpine source included, but regularly crashes)
  • Works out of the box and supports HOST and NAT modes without any further configuration

Authors

Table of Contents

Prerequisites

This is a complex series of images and relies on all packages to be working together. You will also need to open ports on your firewall (See below).

Installation

Automated builds of the image are available on Docker Hub and is the recommended method of installation.

docker pull tiredofit/jitsi-meet
docker pull tiredofit/jitsi-prosody
docker pull tiredofit/jitsi-videobridge
docker pull tiredofit/jitsi-jicofo

Quick Start

  • The quickest way to get started is using docker-compose. See the examples folder for a working docker-compose.yml that can be modified for development or production use. All you will need to do is change the HOST and VIRTUAL_HOST,LETSENCRYPT_HOST variables and the system will automatically generate certificates for you and the system will function.

  • Set various environment variables to understand the capabilities of this image.

  • Map persistent storage for access to configuration and data files for backup.

Configuration

Data-Volumes

The following directories are used for configuration and can be mapped for persistent storage.

jitsi-prosody

Directory Description
/certs Needed to Automatically Generate Certificates for other containers

jitsi-videobridge

Directory Description
/certs Needed to share certificates between containers for Self Signed variants

jitsi-jicofo

Directory Description
/certs Needed to share certificates between containers for Self Signed variants

jitsi-meet

Directory Description
/assets/jitsi-meet Put your custom config.js/interfaceConfig.js in here and it will be added on bootup

Environment Variables

Below is the complete list of available options that can be used to customize your installation.

jitsi-prosody

Parameter Description
HOST Hostname of your server e.g. meet.example.com Should be same as all other hostnames
JITSI_VIDEO_PASS Jitsi Video Bridge Secret e.g. secret3
JICOFO_PASS Jitsi Conference Focus Secret e.g. secret2
JICOFO_USER_PASS Jitsi Conference Focus User Secret e.g. secret1

jitsi-videobridge

Parameter Description
HOST Hostname of your server e.g. meet.example.com Should be same as all other hostnames
PROSODY_HOST Container Name of your prosody server e.g. prosody
JITSI_VIDEO_PASS Jitsi Video Bridge Secret e.g. secret3
NETWORK_MODE Network Mode NAT or HOST - Defaults to NAT

jitsi-jicofo

Parameter Description
HOST Hostname of your server e.g. meet.example.com Should be same as all other hostnames
PROSODY_HOST Container Name of your prosody server e.g. prosody
JICOFO_PASS Jitsi Conference Focus Secret e.g. secret2
JICOFO_USER_PASS Jitsi Conference Focus User Secret e.g. secret1

jitsi-meet

Parameter Description
PROSODY_HOST Container Name of your prosody server e.g. prosody

Networking

This set of images relies on network ports being exposed to the outside world. 80, 443 for the initial web proxy (which should already be handled by the jwilder/nginx-proxy image) and then you must open port 4443 and 10000-10100/udp to the outside world otherwise you will have issues with video or audio.

See below diagram:

                           80, 443
               +----------------------------+   |      |
               |                            |   |      |
               | Nginx-Proxy w/ Letsecnrypt |   |      |
               |                            |   |      |
               +----------------------------+   |      |
                   +                            |      |
                   |                            |      |
                   |                            |      |
                   |                            |      |
                   |                            |      |
                   v                            |      |
                  80                            |      |
               +-------+                        |      |
               |       |                        |      |
               | Jitsi |                        |      |
               | Meet  |                        |      |
               +--+-+--+                        |      |
                  | |                           |      |
+------------+    | |    +--------------+       |      |
|            |    | |    |              |       |      |
| jitsi-meet +<---+ +--->+ prosody      |       |      |
|            |files 5280 |              |       |      |
+------------+           +--------------+       v      v
                     5222,5347^    ^5347      4443, 10000-10100
                +--------+    |    |    +-------------+
                |        |    |    |    |             |
                | jicofo +----^    ^----+ videobridge |
                |        |              |             |
                +--------+              +-------------+

The following ports are exposed.

jitsi-prosody

Port Description
5222 Prosody Clent Listening Port
5280 Prosody Server Listening Port
5347 Prosody Components

jitsi-videobridge

Port Description
443 Jitsi Video Bridge Harvester Port
5347 Prosody Components
4443 Jitsi Video Bridge Harvester Port
10000-20000/udp Web RTC / ICE

jitsi-jicofo

Port Description
5222 Prosody Client Port
5347 Prosody Components

jitsi-meet

Port Description
80 Nginx Listening Port
5280 Prosody Server Listening Port

Maintenance

Shell Access

For debugging and maintenance purposes you may want access the containers shell.

docker exec -it (whatever your container name is e.g. jitsi-meet) bash

References