Jitsi
Self-host Jitsi Meet for video conferencing on a Debian/Ubuntu server.
Contents
- Domain setup
- Update and install necessary packages
- Configure firewall
- Installing Jitsi
- Securing room creation
- Register names
- Restart services
Domain setup
Set up your domain with DNS pointing to your server. Ensure you have a static IP and reverse DNS (RDNS) configured.
Update and install necessary packages
First, update your package list and install necessary transport packages:
sudo apt update
sudo apt install apt-transport-https gnupg2 nginx-full curl
Ensure the universe repository is added:
sudo apt-add-repository universe
Set the hostname for your server:
sudo hostnamectl set-hostname jitsi.[DOMAIN_NAME]
Edit the /etc/hosts file to map your static IP to the hostname:
sudo nano /etc/hosts
Add the following lines, replacing x.x.x.x with your static IP:
/etc/hosts
127.0.0.1
x.x.x.x jitsi.[DOMAIN_NAME]
Configure firewall
Allow necessary ports through the firewall:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw allow 10000/udp
Check the firewall status and enable it if necessary:
sudo ufw status
sudo ufw enable
Installing Jitsi
Add Prosody repository
Add the Prosody repository and install lua5.2:
sudo curl -sL https://prosody.im/files/prosody-debian-packages.key -o /etc/apt/keyrings/prosody-debian-packages.key
echo "deb [signed-by=/etc/apt/keyrings/prosody-debian-packages.key] http://packages.prosody.im/debian jammy main" | sudo tee /etc/apt/sources.list.d/prosody-debian-packages.list
sudo apt install lua5.2
Add Jitsi repository
Add the Jitsi repository and install Jitsi Meet:
curl -sL https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo "deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/" | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
Update the package list and install Jitsi Meet:
sudo apt update
sudo apt install jitsi-meet
Note: Ensure you use the correct hostname and configure Let's Encrypt for SSL.
Securing room creation
Configure Prosody
Edit the Prosody configuration file:
sudo nano /etc/prosody/conf.avail/jitsi.[DOMAIN_NAME].cfg.lua
Enable authentication by modifying the VirtualHost block:
VirtualHost "jitsi.[DOMAIN_NAME]"
authentication = "internal_hashed"
Add the following to the end of the file:
VirtualHost "guest.jitsi.[DOMAIN_NAME]"
authentication = "anonymous"
c2s_require_encryption = false
modules_enabled = {
"bosh";
"ping";
"pubsub";
"speakerstats";
"turncredentials";
"conference_duration";
}
Update Jitsi configuration
Edit the Jitsi Meet configuration file:
sudo nano /etc/jitsi/meet/jitsi.[DOMAIN_NAME]-config.js
Search for anonymousdomain: and update it:
anonymousdomain: 'guest.jitsi.[DOMAIN_NAME]',
Configure Jicofo
Edit the Jicofo configuration file:
sudo nano /etc/jitsi/jicofo/sip-communicator.properties
Update the auth.URL property:
org.jitsi.jicofo.auth.URL=XMPP:jitsi.[DOMAIN_NAME]
Register names
Register the Jitsi user:
sudo prosodyctl register user jitsi.[DOMAIN_NAME] password
Use unregister to remove a user if needed.
Restart services
Restart the necessary services:
sudo systemctl restart prosody.service jicofo.service jitsi-videobridge2.service
Note: Ensure that RDNS is set to
jitsi.[DOMAIN_NAME].
Navigation
Quick Links
Projects
Server (discourse)
- Host
- Cloudflare Tunnel
- Tailscale
- SFTP
- Discourse
- Forgejo
- Filedrop
- Filebrowser
- Landing Sites
- Onboarding
- Backups
- Recovery
Window Managers
Homelab
Docker
Software
Thoughts
Archived
Connect
Butterbian — my Debian 13 distro · butterrepo — community APT repo · butterknife — TUI installer
justaguylinux.com · Butterforge · Butter Lab · The Churn · YouTube · Mastodon · Links · Contact · Support on Buy Me a Coffee
"Not an expert. Just A Guy." — Licensed CC BY-SA 4.0 · © 2026 JustAGuy Linux