Check out Jitsi as a Service. Connect the users of your website or app. Get branding & tight access controls. Have notifications, transcriptions & recordings delivered straight to your backend Learn more Start & join meetings for free No account needed. Connect your calendar to view all your meetings in Jitsi. Jitsi Meet is an open-source video-conferencing application based on WebRTC. In this tutorial, you will install and configure a Jitsi Meet server on Ubuntu 18.04. The default configuration allows anyone to create a new conference room. Jitsi Application Overview Jitsi is a free open source live video conference web application. It doesn’t require an account and also has mobile apps for Apple and Android. Jitsi is a great way to quickly setup a teleconference. What else can you do with Jitsi Meet?. Share your desktop. Deliver presentations. Display YouTube videos. Jitsi Meet is a free encrypted video conferencing software. Jitsi Meet is open source and uses end-to-server/transit encryption, whereby your communication is encrypted before it leaves your device, and is then decrypted on the server, processed, and encrypted again before being sent to the recipient(s). — Setting the System Hostname. In this step, you will change the system’s hostname to match the.
In this section a global overview of the Jitsi infrastructure is provided. If you just started contributing to the project, we highly recommend reading this section thoroughly.
Jitsi comprises a collection of projects:
- Jitsi Videobridge (JVB) - WebRTC compatible server designed to route video streams amongst participants in a conference.
- Jitsi Conference Focus (jicofo) - server-side focus component used in Jitsi Meet conferences that manages media sessions and acts as load balancer between each of the participants and the videobridge.
- Jitsi Gateway to SIP (jigasi) - server-side application that allows regular SIP clients to join Jitsi Meet conferences
- Jitsi Broadcasting Infrastructure (jibri) - set of tools for recording and/or streaming a Jitsi Meet conference that works by launching a Chrome instance rendered in a virtual framebuffer and capturing and encoding the output with ffmpeg.
External Software used by Jitsi:
- Prosody - XMPP server used for signalling
The individual connections between the previously described components, as well as their external integrations are described in the figure below.
The external connections can be categorized into two main groups. Firstly, the connections between clients that request a video or audio connection performed through remote requests and data streams. The second category of external connections is those to external services that help store recordings, stream recordings, stream videos or help with creating meetings.
In this section we will look at the main parts of the codebase and see what they can be used for.
./react/featuresThis folder is where it is best to start writing your code, as it contains most of the app components that are used in the apps on Android and iOS, as well as on the web version. This source folder is split up into all the different features that Jitsi has to offer, such as authentication, chat interaction, keyboard shortcuts, screenshot capture, remote control and virtual background. Each of these features has its own folder in this map, which is then again split up to keep a hierarchy and consistency throughout the code.
Each feature folder consists of a subfolder called components, in this folder all of the React, or React Native for mobile, components are expressed. Usually in this folder there will be a separation between native and web components, however in some cases the same component could be used for both Android, iOS and web browser, in which case there is no separation made.
As stated before, the codebase mostly consists of React and React Native, which is the React version for mobile applications. Most of the features make use of the so-called class component by React , however some new features start to use the new way to write functional components by using hooks.
The application makes use of React Redux as well, this is used as a general state store to keep track of important parameters that are used throughout the application. More on React Redux can be found here .
Most features also contain a file called
middleware.js. This file acts as a bridge between the component and the functionality of the rest of the application.
./modules/external-apiIn this folder, the external API can be found. This API can be used in various events like participants joining/leaving the meeting, changes in avatars or chat, as well as errors in using the microphone or camera.
./android and ./iosBoth of these folders contain the basics of the Android and iOS app respectively. However, the code for the application itself and its components can be found in the react/features folder, which will be explained later in this section.
./conference.jsThis file can be found at the root of the project, and contains the foundation of any interaction between a user and a conference room. This consists of setting up a connection to it, joining the meeting room, muting and unmuting, but also functions to gather information about the participants that are in the room.
./langThis folder contains all the different translations that are present in Jitsi Meet. The translations can be found in the code with each of the keys in the translation maps that can be found in
./cssThis folder contains all the css that is used in the project. The files (mostly .scss files) are split up into features like the React features that they are used in.
The main form of testing code changes is done through torture tests, next to this the code is tested manually.
The torture tests are located in a separate repository, Jitsi Meet Torture. The project contains end to end tests for several key functions such as peer to peer and invites. The testing can be done for iOS, Android and web, which are all the platforms that Jitsi Meet can be used on. The testing is done automatically for pull requests by project members, where it is used in combination with the continuous integration by a Jenkins instance running the tests, testing on the meet.jit.si instance. Other members can run the tests locally. The test results can be viewed on an automatically generated web page.
Manual testing is performed while doing code reviews, however there are also testing releases that can be freely downloaded and deployed, or can be used on the beta test server.
We recommend following the quick-install document. The current document describes the steps that are needed to install a working deployment, but steps are easy to mess up, and the debian packages are more up-to-date, where this document is sometimes not updated to reflect latest changes.
This describes configuring a server
jitsi.example.com 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
There are also some complete example config files available, mentioned in each section.
There are additional configurations to be done for a scalable installation.
This is how the network looks:
Add config file in
- add your domain virtual host section:
Jitsi Meet Pdf
- add domain with authentication for conference focus user:
- add focus user to server admins:
- and finally configure components:
Add link for the added configuration
Generate certs for the domain:
Add auth.jitsi.example.com to the trusted certificates on the local machine:
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:
Create conference focus user:
Restart prosody XMPP server with the new config
Add a new file
/etc/nginx/sites-available (see also the example config file):
Add link for the added configuration
Install Jitsi Videobridge
Visit https://download.jitsi.org/jitsi-videobridge/linux to determine the current build number, download and unzip it:
Install JRE if missing:
Jitsi Share Pdf
NOTE: When installing on older Debian releases keep in mind that you need JRE >= 1.7.
~/.sip-communicator/sip-communicator.properties in the home folder of the user that will be starting Jitsi Videobridge:
Start the videobridge with:
Or autostart it by adding the line in
Install Jitsi Conference Focus (jicofo)
Install JDK and Maven if missing:
NOTE: When installing on older Debian releases keep in mind that you need JDK >= 1.7.
Clone source from Github repo:
Build the package.
Deploy Jitsi Meet
Checkout and configure Jitsi Meet:
Jitsi Meet Manual Pdf
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):
Verify that nginx config is valid and reload nginx:
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
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/sip-communicator.properties (in the home directory of the user running the videobridge):
Hold your first conference
Jitsi Anleitung Pdf
You are now all set and ready to have your first meet by going to http://jitsi.example.com
Jibri is a set of tools for recording and/or streaming a Jitsi Meet conference.