Skip to main content

Deploying and Configuring Jitsi Meet Using Docker

Prerequisite: Complete all steps in prerequisites before beginning deployment.

1. Install Required Software

1.1 System Packages

Install essential utilities:

sudo apt install -y git openssl curl coreutils grep jq ufw wget unzip

1.2 Docker and Compose

Install Docker and enable the service, then install the compose plugin:

sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh
sudo systemctl enable --now docker

sudo apt install docker-compose-plugin docker-compose

2. Install Jitsi Meet

2.1 Download the Latest Release

Retrieve the most recent Jitsi Docker distribution and save it under /opt:

sudo -i
umask 0022
cd /opt
wget "$(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)"

2.2 Extract Archive

The downloaded archive is typically named stable-*.

unzip <filename>

2.3 Prepare Environment Configuration

Navigate into the extracted directory (e.g. jitsi-docker-jitsi-meet-*) and copy the example environment file:

cd /opt/jitsi-docker-jitsi-meet-*
cp env.example .env

2.4 Generate Passwords

Use the provided utility to populate secure passwords:

./gen-passwords.sh

2.5 Configure .env Variables

Edit .env and set the following values:

  • HTTP_PORT="80"
  • HTTPS_PORT="443"
  • TZ="Asia/Kolkata" (adjust timezone as required)
  • PUBLIC_URL="https://meet.yourdomain.com"
  • ENABLE_LETSENCRYPT="1"
  • LETSENCRYPT_DOMAIN="meet.yourdomain.com"
  • LETSENCRYPT_EMAIL="admin@yourdomain.com"
  • ENABLE_AUTH="1"
  • ENABLE_GUESTS="1"
  • AUTH_TYPE="internal"

Modify any additional variables according to your deployment needs.

2.6 Create Configuration Directories

Jitsi stores runtime configuration under ~/.jitsi-meet-cfg:

mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

3. Deploy the Jitsi Stack

3.1 Pull Docker Images

cd /opt/jitsi-docker-jitsi-meet-*
docker compose pull

3.2 Start Containers


docker compose -f docker-compose.yml -f jibri.yml up -d

Verify that all services are running with docker compose ps.

4. Configure Administrative Users

Enter the Prosody container to register accounts:

docker compose exec prosody /bin/bash
prosodyctl --config /config/prosody.cfg.lua register <username> meet.jitsi <strong_password>

Repeat for each administrator or moderator required.

5. Accessing the Service

Open a web browser and navigate to:

https://meet.yourdomain.com

Log in with one of the accounts created in the previous step.