Giter Site home page Giter Site logo

tiredofit / docker-jitsi-meet Goto Github PK

View Code? Open in Web Editor NEW
64.0 6.0 21.0 46 KB

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

License: MIT License

JavaScript 18.80% Shell 0.64% Dockerfile 80.56%
docker jitsi-meet jitsi-videobridge webrtc webrtc-video prosody debian s6-overlay alpine jicofo

docker-jitsi-meet's Introduction

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

docker-jitsi-meet's People

Contributors

sapkra avatar simjost avatar stephenmoloney avatar tiredofit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.