No items found.


To use free service and/or open source software for audio and video conferencing (meeting focused) with option of messaging, screen and media sharing, that can be used both with web browser and mobile app, while remaining flexible with bandwidth option, with ability to be encrypted and optionally visually customizable.

Description of the tool

Jitsi is a collection of free and open-source multiplatform voice (VoIP), video conferencing and instant messaging applications for the web platform, Windows, Linux, macOS, iOS and Android. From expert software like Jitsi Videobridge server designed to run thousands of video streams from a single server, to the small tools and libraries and the most famous Jitsi Meet as JavaScript application that uses Jitsi Videobridge server to provide high quality, scalable video conferences from prominent URL

Jitsi has proven to be a very efficient and affordable option for video conferencing meetings of up to 20 participants with good bandwidth and as audio conferencing option (with screen or media sharing) for much higher numbers. It is possible to use dial-in options in some countries that could reduce risk of dropping out with weaker/unreliable net connection.

Benefits of self-hosting a jitsi server within an organization/institution are with privacy and cost.
Limitation of small delay is present in all WebRTC software and not unique to jitsi. is using another FLOSS solution BigBlueButton (BBB) Video conferencing that is quite stable with more participants and integrates well with Canvas, Moodle, and other Learning Management Solutions (LMS) systems. Unfortunately only used via browser.

Steps of application

This describes configuring a server on a Debian-based distribution.

For other distributions you can adapt the steps (especially changing the dependencies package installations (e.g. for nginx) and paths accordingly) so that it matches your host's distribution.

You will also need to generate some passwords for YOURSECRET1, YOURSECRET2 and YOURSECRET3.

There are also some complete example config files available, mentioned in each section.

There are additional configurations to be done for a scalable installation.

Network description

This is how the network looks:

                  +                           +

                   |                           |

                   |                           |

                   v                           |

                  443                          |

               +-------+                       |

               |       |                       |

               | Nginx |                       |

               |       |                       |

               +--+-+--+                       |

                  | |                          |

+------------+    | |    +--------------+      |

|            |    | |    |              |      |

| jitsi-meet +<---+ +--->+ prosody/xmpp |      |

|            |files 5280 |              |      |

+------------+           +--------------+      v

                     5222,5347^    ^5347   4443,10000

                +--------+    |    |    +-------------+

                |        |    |    |    |             |

                | jicofo +----^    ^----+ videobridge |

                |        |              |             |

                +--------+              +-------------+

Install prosody

apt-get install prosody

Configure prosody

Add config file in /etc/prosody/conf.avail/ :

  • add your domain virtual host section:

VirtualHost ""

    authentication = "anonymous"

    ssl = {

        key = "/var/lib/prosody/";

        certificate = "/var/lib/prosody/";


    modules_enabled = {




    c2s_require_encryption = false

  • add domain with authentication for conference focus user:

VirtualHost ""

    ssl = {

        key = "/var/lib/prosody/";

        certificate = "/var/lib/prosody/";


    authentication = "internal_hashed"

  • add focus user to server admins:

admins = { "" }

  • and finally configure components:

Component "" "muc"

Component ""

    component_secret = "YOURSECRET1"

Component ""

    component_secret = "YOURSECRET2"

Add link for the added configuration

ln -s /etc/prosody/conf.avail/ /etc/prosody/conf.d/

Generate certs for the domain:

prosodyctl cert generate

prosodyctl cert generate

Add to the trusted certificates on the local machine:

ln -sf /var/lib/prosody/ /usr/local/share/ca-certificates/

update-ca-certificates -f

Note that the -f flag is necessary if there are symlinks left from a previous installation.

If you are using a JDK package not provided by Debian, as the ones from adopjdk, you should also make your JDK aware of the new debian certificate keystore replacing or linking the JDK cacerts. Example, if you use JDK from adoptjdk:

cd /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre

ln -sf /etc/ssl/certs/java/cacerts lib/security/cacerts

Create conference focus user:

prosodyctl register focus YOURSECRET3

Restart prosody XMPP server with the new config

prosodyctl restart

Install Nginx

apt-get install nginx

Add a new file in /etc/nginx/sites-available (see also the example config file):

server_names_hash_bucket_size 64;

server {

    listen ssl http2;

    listen [::]:443 ssl http2;

    # tls configuration that is not covered in this guide

    # we recommend the use of


    # set the root

    root /srv/jitsi-meet;

    index index.html;

    location ~ ^/([a-zA-Z0-9=\?]+)$ {

        rewrite ^/(.*)$ / break;


    location / {

        ssi on;


    # BOSH, Bidirectional-streams Over Synchronous HTTP


    location /http-bind {

        proxy_pass      http://localhost:5280/http-bind;

        proxy_set_header X-Forwarded-For $remote_addr;

        proxy_set_header Host $http_host;


    # external_api.js must be accessible from the root of the

    # installation for the electron version of Jitsi Meet to work


    location /external_api.js {

        alias /srv/jitsi-meet/libs/external_api.min.js;



Add link for the added configuration

cd /etc/nginx/sites-enabled

ln -s ../sites-available/

Install Jitsi Videobridge

Visit to determine the current build number, download and unzip it:


unzip jitsi-videobridge-linux-{arch-buildnum}.zip

Install JRE if missing:

apt-get install openjdk-8-jre

NOTE: When installing on older Debian releases keep in mind that you need JRE >= 1.7.

Create ~/.sip-communicator/ in the home folder of the user that will be starting Jitsi Videobridge:

mkdir -p ~/.sip-communicator

cat > ~/.sip-communicator/ << EOF


# The videobridge uses 443 by default with 4443 as a fallback, but since we're already

# running nginx on 443 in this example doc, we specify 4443 manually to avoid a race condition



Start the videobridge with:

./ --host=localhost --port=5347 --secret=YOURSECRET1 &

Or autostart it by adding the line in /etc/rc.local:

/bin/bash /root/jitsi-videobridge-linux-{arch-buildnum}/ --host=localhost --port=5347 --secret=YOURSECRET1 </dev/null >> /var/log/jvb.log 2>&1

Install Jitsi Conference Focus (jicofo)

Install JDK and Maven if missing:

apt-get install openjdk-8-jdk maven

NOTE: When installing on older Debian releases keep in mind that you need JDK >= 1.7.

Clone source from Github repo:

git clone

Build the package.

cd jicofo

mvn package -DskipTests -Dassembly.skipAssembly=false

Run jicofo:


unzip target/

cd jicofo-1.1-SNAPSHOT-archive'

./ --host=localhost --secret=YOURSECRET2 --user_name=focus --user_password=YOURSECRET3

Deploy Jitsi Meet

Checkout and configure Jitsi Meet:

cd /srv

git clone

cd jitsi-meet

npm install


NOTE: When installing on older distributions keep in mind that you need Node.js >= 12 and npm >= 6.

Edit host names in /srv/jitsi-meet/config.js (see also the example config file):

var config = {

    hosts: {

        domain: '',

        muc: '',

        bridge: '',

        focus: ''


    useNicks: false,

    bosh: '//', // FIXME: use xep-0156 for that

    //chromeExtensionId: 'diibjkoicjeejcmhdnailmkgecihlobk', // Id of desktop streamer Chrome extension

    //minChromeExtVersion: '0.1' // Required version of Chrome extension


Verify that nginx config is valid and reload nginx:

nginx -t && nginx -s reload

Running behind NAT

Jitsi Videobridge can run behind a NAT, provided that both required ports are routed (forwarded) to the machine that it runs on. By default these ports are TCP/4443 and UDP/10000.

If you do not route these two ports, Jitsi Meet will only work with video for two people, breaking upon 3 or more people trying to show video.

TCP/443 is required for the webserver which can be running on another machine than the Jitsi Videobrige is running on.

The following extra lines need to be added to the file ~/.sip-communicator/ (in the home directory of the user running the videobridge):<Local.IP.Address><Public.IP.Address>

Hold your first conference

You are now all set and ready to have your first meet by going to

Enabling recording

Jibri is a set of tools for recording and/or streaming a Jitsi Meet conference.

For more information:


2003 Emil Ivov, a student at the University of Strasbourg, France, creates SIP Communicator.  

2005 SIP communicator is completely refactored, to accommodate plugin development

2008 SIP Communicator gets its first end-to-end encryption 

2009 Emil Ivov and Yana Stamcheva register Blue Jimp company, which employs Jitsi’s main  contributors. They offer professional support and development services.

2011 SIP Communicator is renamed Jitsi (Bulgarian “жици” wires), since it now also supports audio and video over XMPP’s Jingle extensions

2012 Jitsi adds video conferencing capabilities based on the concept of routing video streams. The client of the conference organizer acts as a video router.

2013 Jitsi’s video routing capabilities are extracted in a separate server application and Jitsi Videobridge is born. Jitsi Videobridge adds support for ICE and DTLS/SRTP, thus becoming compatible with WebRTC clients.

With the growth of WebRTC (Real Time Communication) technologies, the project team focus shifted to the Jitsi Videobridge for allowing web-based multi-party video calling.

2014 Using a prototype from Philipp Hancke as a basis, the Jitsi community starts the Jitsi Meet project: a Web Conferencing application that rivals Hangouts and Skype

This full video conferencing application that includes web, Android, and iOS clients. Jitsi also operates, a version of Jitsi Meet hosted by Jitsi for free community use. Jitsi has received support from various institutions such as the NLnet Foundation, the University of Strasbourg and the Region of Alsace and it has also had multiple participations in the Google Summer of Code program.

2015 Atlassian corporation acquires Blue Jimp, making a long-term investment in keeping Jitsi open source, community-based, and pushing the envelope of great video conferences.

2018 8x8 acquires the Jitsi Technology and team from Atlassian. Jitsi now powers all 8×8 Video Meetings and continues to grow in the heart of many successful initiatives

2020 Jitsi surpasses 20 million monthly active users!

Jitsi codebase is used by numerous new web based video conferencing services/platforms.

Context of origin

Visual representation




JITSI should be adopted at least as an individual use by all that care about price, flexibility, data privacy and use of open standards. Ideally it should be introduced first as mobile phone app and web use existing free community service and then installed locally for organizations and institutions that have tech person and option to host services on their own network (then a limitation of about 20-30 connections can be surpassed).


Original author: Emil Ivov, now shared with many contributors

Brand holder 8x8, VoIP products' company (main contributor to jitsi)