Jitsi Meet Self-Hosting Guide
|
This documentation hasn’t been updated in a while. Some information might no longer be valid. You can find the latest version of the upstream documentation at https://jitsi.github.io/handbook/docs/devops-guide/ |
Jitsi video conferencing stack enables users to create virtual meetings, conferences, and collaboration sessions among other notable use-cases. Jitsi video conferencing stack provides:
-
Jitsi Meet (
jitsi-meet): a web-based client application used by conference participants -
Jitsi Videobridge (
jitsi-videobridge): a server-side component of the Jitsi stack. Acts as a central hub for video conferences, where participants can join by accessing a uniquely generated conference URL from the server. Jitsi Videobridge conducts negotiation of audio and video streams between conference participants and also provides the necessary infrastructure for seamless experience. -
Webserver configurations (
jitsi-meet-nginx) and (jitsi-meet-apache): components that help serve the Jitsi Meet web client to handle incoming HTTPS requests. -
Configuration for Prosody (
jitsi-meet-prosody): a server-side component providing user authentication and management, conference room management. Ensures secure communication within Jitsi video conferencing stack. -
Jicofo (
jicofo): a server-side component for conference management, participant control and media routing.
Installing Jitsi
The installation instructions are similar to the official Debian/Ubuntu instructions. Notable differences are:
-
Slightly different file locations
-
The
JicofoandJitsi Videobridgecomponents log tosysloginstead of to their own logfiles. -
The
Jicofocomponent runs from a service, not from aninitscript.
-
Small server, which is accessible from the Internet
-
Domain name and an SSL certificate for that domain
-
Enable the
jitsirepository:$ sudo dnf copr enable lcts/jitsi
-
Install the
jitsimeta package to be able to configure a Jitsi server:$ sudo dnf install jitsi
Alternatively, you can install other packages from the
jitsirepository:-
jitsi-meet- the Jitsi Meet web app -
jitsi-meet-nginx- Jitsi configuration for NGinx -
jitsi-meet-apache-Jitsi configuration for Apache -
jitsi-meet-prosody- Jitsi configuration for Prosody -
jitsi-videobridge- the Jitsi Videobridge component -
jicofo- the Jitsi Conference Focus component
-
-
After installation, you need to configure all packages before you use them. For more information, see the
/usr/share/doc/<package>/README-fedora.mdfile. -
You can report issues with packages at jitsi-rpm queue.
If you encounter problems with software, contact the respective upstream developers.
Configuring Jitsi
After installation, you need to perform a few additional configuration steps. The steps consist of replacing various placeholder variables with your values to ensure that Jitsi is correctly configured to work in your specific deployment. The placeholders are identified by underscores for example __variableName__.
In all files, replace __jitsiFQDN__ with the fully-qualified domain name of your instance and __<component>Secret__ with a strong random password. You need three secrets:
-
__focusSecret__ -
__focusUserSecret__ -
__jvbUserSecret__
You do not need to memorize the secrets. They are only used by different Jitsi components to communicate to each other.
Configuring Jitsi Prosody
You can find Prosody configuration for Jitsi in the /etc/prosody/conf.d/jitsi-meet.cfg.lua file.
-
Generate the SSL/TLS certificate for the Jitsi domain:
$ prosodyctl cert generate __jitsiFQDN__
You need to replace
__jitsiFQDN__with the actual domain name of your Jitsi installation. The generated certificate secures the Jitsi Meet web interface and enables encrypted communication. -
Generate the SSL/TLS certificate for the auth subdomain:
$ prosodyctl cert generate auth.__jitsiFQDN__
The
authsubdomain is typically used for authentication purposes in Jitsi Meet. Replace__jitsiFQDN__with your Jitsi domain name to generate the certificate for the auth subdomain. -
Add the Jitsi domain certificate as a trusted anchor to ensure that it is recognized as a valid certificate by the system:
$ trust anchor /var/lib/prosody/__jitsiFQDN__
The certificate file is typically located at
/var/lib/prosody/__jitsiFQDN__. Therefore you need to replace__jitsiFQDN__with the actual domain name to specify the correct file path. -
Add the auth subdomain certificate as a trusted anchor:
$ trust anchor /var/lib/prosody/auth.__jitsiFQDN__
The certificate file is expected to be located at
/var/lib/prosody/auth.__jitsiFQDN__. Replace__jitsiFQDN__with your Jitsi domain name to provide the accurate file path. -
Register a user with the username
focusin the Prosody XMPP server:$ prosodyctl register focus auth.__jitsiFQDN__ __focusUserSecret__
The
focususer is a special user for Jitsi Meet conference management and coordination. It is responsible for example for creating and controlling conferences. Theauth.__jitsiFQDN__portion specifies the domain where the user is registered.Replace
__jitsiFQDN__with your Jitsi domain name. The__focusUserSecret__is the password or secret associated with thefocususer. Replace__focusUserSecret__with a strong and secure password. -
Register a user with the username
jvbin the Prosody XMPP server:$ prosodyctl register jvb auth.__jitsiFQDN__ __jvbUserSecret__
The
jvbuser is used by Jitsi Videobridge component to handle video streams in Jitsi Meet. Theauth.__jitsiFQDN__portion specifies the domain where the user is registered.Replace
__jitsiFQDN__with your Jitsi domain name. The__jvbUserSecret__is the password or secret associated with thejvbuser. Replace__jvbUserSecret__with a strong and secure password. -
Enable and start the prosody service:
$ sudo systemctl enable --now prosody
Configuring Jitsi Meet
-
Locate the
/etc/jitsi-meet/config.jsconfiguration file. -
Replace the placeholder variables in
config.js.
Configuring Jitsi webserver
-
Configure an HTTPS server for
__jitsiFQDN__.
-
For Apache:
-
Replace the placeholders in the
/etc/httpd/conf.d/jitsi-meet.conffile. -
Restart the
httpdservice:$ sudo systemctl restart httpd
-
-
For Nginx:
-
Replace the placeholders in the
/etc/nginx/conf.d/jitsi-meet.conffile. -
Restart the
nginxservice:$ sudo systemctl restart nginx
-
Configuring Jicofo
-
Replace the
__jitsiFQDN__and__focusSecret__placeholder variables in/etc/jicofo/configand/etc/jicofo/sip-communicator.propertiesfiles. -
Enable and start
jicofo.service:$ sudo systemctl enable --now jicofo.service
Configuring Jitsi Videobridge
-
Open the port
10000/udpif you use Network Address Translation (NAT):-
Install the
jitsi-videobridge-firewalldpackage to obtain service definition forjitsi-videobridge.service -
Use the service definition to configure
firewalldto open10000/udpfor Jitsi Videobridge.
-
-
Replace the
__jitsiFQDN__and__jvbUserSecret__placeholders in the/etc/jitsi-videobridge/jvb.conffile. -
Enable and start
jitsi-videobridge.service:$ sudo systemctl enable --now jitsi-videobridge.service
-
/etc/sysconfig/jitsi-videobridge
For more information see jitsi
Want to help? Learn how to contribute to Fedora Docs ›