This document outlines the steps to set up a self-hosted Jitsi Meet server using Docker. Jitsi is an open-source video conferencing solution that can be hosted on our own infrastructure for secure and private video meetings.

In order to quickly run Jitsi Meet on a machine running Docker and Docker Compose, follow these steps:

Prerequisites

Ensure the following are installed on your server:

Setup Steps

  1. Download the Latest Release
    Run the following command to download the latest ZIP release from GitHub:
    wget $(curl -s https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep 'zipball_url' | cut -d\" -f4) -O docker-jitsi-meet.zip
    (or)
    git clone https://github.com/jitsi/docker-jitsi-meet.git
  2. Unzip the packageunzip <filename> and navigate to that folder 
  3. Enter the extracted folder and Create a .env file by copying and adjusting env.example
    cp env.example .env

  4. Set strong passwords in the security section options of .env file by running the following bash script
    For linux: ./gen-passwords.sh
    For Windows:  bash gen-passwords.sh
  5. Create required CONFIG directories
    • For linux:
      mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    • For Windows:
      echo web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri
      mkdir "~/.jitsi-meet-cfg/$_"
  6. Run   sudo docker compose up -d --build 
  7. Access the web UI at https://localhost:8443/ (or a different port, in case you edited the .env file).  Now we can get this from our domain https://vc.piramalswasthya.org/

  8. Enabling Recording with Jibri, by starting the jibri container by running the following command:
    docker compose -f docker-compose.yml -f jibri.yml up -d
  9. Add the following to .env file
    ENABLE_RECORDING=1
    ENABLE_RECORDING_FILE=1
    JIBRI_RECORDER_USER=recorder
    JIBRI_RECORDER_PASSWORD=<password>
    JIBRI_XMPP_USER=jibri
    JIBRI_XMPP_PASSWORD=<password>
    JIBRI_BREWERY_MUC=jibribrewery (must match with jibri.yml)

    For Recording behaviors and locations:

    JIBRI_RECORDING_DIR=/srv/jitsi-recordings
    JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
    JIBRI_LOGS_DIR=/config/logs
    JVB_ADVERTISE_IPS=<internal-docker-ip>
    ENABLE_TURN=true

    Note:Replace <password> and <internal-docker-ip> with actual values.

  10. Ensure the following volume mappings are present in jibri.yml to match the .env file:

    volumes:
      - /srv/jitsi-recordings:/srv/jitsi-recordings
      - ./jibri/finalize.sh:/config/finalize.sh
      - ./jibri/logs:/config/logs

  11. Create the Recording directory using the following commands.
    sudo mkdir -p /srv/jitsi recordings
    sudo chown 1000:1000 /srv/jitsi-recordings
    sudo chmod 777 /srv/jitsi-recordings

  12. Add the Finalize Recording script.  

    Inside the jibri/ folder, create a file called finalize.sh with the following content:

    #!/bin/bash
    RECORDINGS_DIR=$1
    echo "Finalizing recording in $RECORDINGS_DIR"
    mv "$RECORDINGS_DIR"/* /srv/recordings/
    rm -rf "$RECORDINGS_DIR"
    exit 0

    Make it executable chmod +x jibri/finalize.sh






  • No labels