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
- This image assumes that you are using a reverse proxy such as jwilder/nginx-proxy and optionally the Let's Encrypt Proxy Companion @ https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion in order to serve your pages.
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).
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
-
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
andVIRTUAL_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.
The following directories are used for configuration and can be mapped for persistent storage.
Directory | Description |
---|---|
/certs |
Needed to Automatically Generate Certificates for other containers |
Directory | Description |
---|---|
/certs |
Needed to share certificates between containers for Self Signed variants |
Directory | Description |
---|---|
/certs |
Needed to share certificates between containers for Self Signed variants |
Directory | Description |
---|---|
/assets/jitsi-meet |
Put your custom config.js/interfaceConfig.js in here and it will be added on bootup |
Below is the complete list of available options that can be used to customize your installation.
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 |
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 |
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 |
Parameter | Description |
---|---|
PROSODY_HOST |
Container Name of your prosody server e.g. prosody |
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.
Port | Description |
---|---|
5222 |
Prosody Clent Listening Port |
5280 |
Prosody Server Listening Port |
5347 |
Prosody Components |
Port | Description |
---|---|
443 |
Jitsi Video Bridge Harvester Port |
5347 |
Prosody Components |
4443 |
Jitsi Video Bridge Harvester Port |
10000-20000/udp |
Web RTC / ICE |
Port | Description |
---|---|
5222 |
Prosody Client Port |
5347 |
Prosody Components |
Port | Description |
---|---|
80 |
Nginx Listening Port |
5280 |
Prosody Server Listening Port |
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