Jitsi Meet is an open-source video conferencing platform you can install on your server.

  1. To install Jitsi, your server needs to meet some requirements:
    • Jitsi can run in a 1GB RAM server (for 3-4 users meetings) but I recommend using a server with at least 2GB of RAM.
    • You should be able to access server ports 80 (TCP), 443 (TCP) and 10000 (UDP).
    • You need a domain and configure your domain DNS to server’s public IP.
  2. Execute these commands in your server (instructions for Ubuntu):
    • Login as root and download Jitsi.
      sudo su -
      echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
      wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
      apt update
      
    • Increase these default limits, Jitsi need it for working properly.
      echo 'DefaultLimitNOFILE=65000' >> /etc/systemd/system.conf
      echo 'DefaultLimitNPROC=65000' >> /etc/systemd/system.conf
      echo 'DefaultTasksMax=65000' >> /etc/systemd/system.conf
      systemctl daemon-reload
      
    • Install Jitsi.
      apt -y install jitsi-meet
      
    • Installation will ask for the configured domain and if you want to generate certificates. Accept first option.
    • Install LetsEncrypt certificates.
      /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
      
    • Type an email.
  3. Enabling authentication.
    • Open this file with your preferred editor (I will use vim):
      # replace YOUR_DOMAIN with your configured domain for Jitsi
      vim /etc/prosody/conf.avail/YOUR_DOMAIN.cfg.lua
      
    • Look for this line and change it to this (remember to replace YOUR_DOMAIN):
      VirtualHost "YOUR_DOMAIN" authentication = "internal_hashed"
      
    • Add this.
      VirtualHost "guest.YOUR_DOMAIN" authentication = "anonymous" modules_enabled = { "turncredentials";
       } c2s_require_encryption = false
      
    • Save changes and close editor.
    • Open this file:
      vim /etc/jitsi/meet/YOUR_DOMAIN-config.js
      
    • Look for this line and change it to this (do not change or remove any code that does not appear here):
      var config = { hosts: { domain: 'YOUR_DOMAIN', anonymousdomain: 'guest.YOUR_DOMAIN',
         ...
       },
       ...
      }
      
    • Save changes and close the editor.
    • Type this command:
      echo 'org.jitsi.jicofo.auth.URL=XMPP:YOUR_DOMAIN' >> /etc/jitsi/jicofo/sip-communicator.properties
      
    • Add a user (replace USERNAME, YOUR_DOMAIN and PASSWORD with your info).
      prosodyctl register USERNAME YOUR_DOMAIN PASSWORD
      
    • Restart all required services
      systemctl restart prosody
      systemctl restart jicofo
      systemctl restart jitsi-videobridge2
      
  4. Now, you can access YOUR_DOMAIN and put the USERNAME and PASSWORD.
  5. Type a meeting name (I recommend you to type a long name).
  6. Users can access the meeting by typing YOUR_DOMAIN/MEETING_NAME.

If you have any suggestion, feel free to contact me via social media or email.