Hosting and installing a server JitsiMeet
Installation of a container “Ubuntu 22” on the Proxmox. I set 2 Cores and 4GB RAM.
The next step (not mandatory) is to activate SSH on the container (more comfortable than using the Console of the Proxmox). ⇒ you know what to do….
# apt-get install nginx
No config needed.
Following this tuto: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
etc/hosts
but don't modify!# apt install software-properties-common # apt-add-repository universe # apt update # 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 $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/prosody-debian-packages.list # apt install lua5.2 # curl -sL https://download.jitsi.org/jitsi-key.gpg.key | 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/" | tee /etc/apt/sources.list.d/jitsi-stable.list # apt-get update # apt install jitsi-meet
During the installation let Jitsi generate a self signed cert.
Reboot and “https://jitsi.mydomain.tld” should now display the welcome screen.
The following extra lines need to be added to the file /etc/jitsi/videobridge/sip-communicator.properties
with the internal and external IPs:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address> | at the beginning of the file # org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES | add # to comment this line org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address> | at the end of the file
Target: the current external IP must be present into the conf file in order that Jitsi runs correctly.
Following steps are therefore necessary by using a dynamic IP:
(this script comes from an internet forum… and is modified!)
# nano /etc/init.d/script_IP.sh
#!/bin/sh ### BEGIN INIT INFO # Provides: Nom du script # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Description courte # Description: Description longue ### END INIT INFO DNSNAME="jitsi.domain.tld" ##### adjust according your settings # get the actual IP from the Internet IPint=$(curl ifcfg.me) # get the configured IP of Jitsi IPjitsi=$(grep 'NAT_HARVESTER_PUBLIC_ADDRESS' /etc/jitsi/videobridge/sip-communicator.properties | grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") if [ "$IPjitsi" = "$IPint" ] then echo "IP has not been changed!" exit 0 fi #clear config sed -i '/NAT_HARVESTER_PUBLIC_ADDRESS/d' /etc/jitsi/videobridge/sip-communicator.properties #get IP and renew line echo org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=$IPint >> /etc/jitsi/videobridge/sip-communicator.properties #restart services systemctl restart jicofo systemctl restart prosody systemctl restart jitsi-videobridge2
# chmod +x /etc/init.d/script_IP.sh
Source: https://www.jbnet.fr/systeme/linux/debian-executer-un-script-au-demarrage-de-la-machine.html
# cd /etc/init.d # update-rc.d script_IP.sh defaults
# nano /etc/cron.d/IP_jitsi
0 */1 * * * root /etc/init.d/script_IP.sh
/etc/prosody/conf.avail/jitsi.domain.tld.cfg.lua
VirtualHost "jitsi.domain.tld" authentication = "internal_hashed" | instad of jitsi-anonymous ... and add another virtualhost after it: VirtualHost "guest.jitsi.domain.tld" authentication = "anonymous" c2s_require_encryption = false
/etc/jitsi/jicofo/jicofo.conf
add at the beginng: jicofo { authentication: { enabled: true type: XMPP login-url: jitsi.domain.tld }
# prosodyctl register the_user jitsi.domain.tls the_password_of_the_user
or follow this tuto: https://crosstalksolutions.com/how-to-enable-jitsi-server-authentication/