Grok 3

Here’s a step-by-step guide to set up Jitsi Meet primarily for voice chat using Docker Compose, leveraging your existing Nginx Proxy Manager to simplify the configuration. This procedure ensures a straightforward deployment while integrating with your reverse proxy setup.


Prerequisites

  • Docker and Docker Compose are installed on your system.

  • You have an existing Nginx Proxy Manager instance running (assumed to be in Docker, but adjustments are provided if it’s not).

  • A domain name (e.g., jitsi.example.com) pointed to your server’s public IP.

  • Your server’s firewall allows incoming traffic on TCP port 443 (HTTPS) and UDP port 10000 (media traffic).


Setup Procedure

  1. Obtain the Jitsi Docker Compose Setup
  • Clone the official Jitsi Docker repository:

    bash

    git clone https://github.com/jitsi/docker-jitsi-meet.git
    cd docker-jitsi-meet
  • This repository provides a docker-compose.yml file and a .env template to configure Jitsi’s services: web, prosody, jicofo, and jvb (Jitsi Videobridge).

  1. Configure the Environment
  • Copy the example .env file:

    bash

    cp env.example .env
  • Edit the .env file with a text editor (e.g., nano .env) and set the following key variables:

    • PUBLIC_URL: Set this to your domain with HTTPS, as it’s the URL users will access:

      PUBLIC_URL=https://jitsi.example.com
    • DOCKER_HOST_ADDRESS: Set this to your server’s public IP (e.g., 203.0.113.1), which the JVB advertises for media traffic:

      DOCKER_HOST_ADDRESS=203.0.113.1
    • Optionally, adjust other settings like timezone (TZ) if needed, but defaults are fine for a basic setup.

  1. Define a Docker Network
  • Open docker-compose.yml in a text editor.

  • Add a custom network at the bottom of the file to connect Jitsi services and Nginx Proxy Manager:

    yaml

    networks:
      jitsi-network:
        driver: bridge
  • For each service (web, prosody, jicofo, jvb), add the network under their configuration. For example:

    yaml

    services:
      web:
        image: jitsi/web
        # ... other settings ...
        networks:
          - jitsi-network
      prosody:
        image: jitsi/prosody
        # ... other settings ...
        networks:
          - jitsi-network
      jicofo:
        image: jitsi/jicofo
        # ... other settings ...
        networks:
          - jitsi-network
      jvb:
        image: jitsi/jvb
        # ... other settings ...
        networks:
          - jitsi-network
  1. Verify JVB Port Configuration
  • Ensure the jvb service publishes UDP port 10000 for media traffic. Check the ports section in docker-compose.yml:

    yaml

    jvb:
      # ... other settings ...
      ports:
        - '10000:10000/udp'
  • This is typically already set in the default file, but confirm it’s present.

  1. Start the Jitsi Services
  • Launch the containers in detached mode:

    bash

    docker-compose up -d
  • This starts all Jitsi services (web, prosody, jicofo, jvb) on the jitsi-network.

  1. Connect Nginx Proxy Manager to the Network
  • If your Nginx Proxy Manager is running in Docker, attach it to the jitsi-network. First, find its container name:

    bash

    docker ps
  • Look for the Nginx Proxy Manager container (e.g., nginx-proxy-manager). Then connect it:

    bash

    docker network connect jitsi-network nginx-proxy-manager
  • Note: If Nginx Proxy Manager is running on the host (not in Docker), skip this step and use the host IP (e.g., http://localhost:8000) in step 7 instead, after publishing the web service port (e.g., add - '8000:80' under web ports).

  1. Configure Nginx Proxy Manager
  • Log in to your Nginx Proxy Manager web interface.

  • Add a new Proxy Host:

    • Domain Names: jitsi.example.com

    • Scheme: http

    • Forward Hostname: web (the Jitsi web service name on the shared network)

    • Forward Port: 80

    • Advanced Settings: Enable Websockets Support (required for Jitsi’s real-time communication).

  • Go to the SSL tab:

    • Request a new SSL certificate (e.g., via Let’s Encrypt) or use an existing one.

    • Enable Force SSL to ensure all traffic uses HTTPS.

  • Save the configuration. Nginx Proxy Manager will now reverse proxy https://jitsi.example.com to the Jitsi web service.

  1. Adjust Firewall Settings
  • Ensure your server’s firewall allows:

    • TCP 443: For HTTPS traffic to Nginx Proxy Manager.

    • UDP 10000: For JVB media traffic (voice data).

  • Example using ufw:

    bash

    sudo ufw allow 443/tcp
    sudo ufw allow 10000/udp
  1. Test the Setup
  • Open a browser and navigate to https://jitsi.example.com.

  • Create a new meeting room (e.g., testroom) and join it.

  • Verify voice chat works by speaking and hearing audio. Optionally, disable video in the interface (click the camera icon) to focus on voice.

  1. Optional: Optimize for Voice Chat
  • To start meetings with video off by default, append #config.startWithVideoMuted=true to the room URL (e.g., https://jitsi.example.com/testroom#config.startWithVideoMuted=true).

  • For permanent changes, customize config.js:

    • Create a custom config.js file with startWithVideoMuted: true.

    • Mount it into the web container by editing docker-compose.yml:

      yaml

      web:
        # ... other settings ...
        volumes:
          - ./custom-config.js:/config/config.js
    • Restart the services: docker-compose down && docker-compose up -d.

  • The default Opus audio codec is high quality and suitable for voice chat, so no further audio tweaks are typically needed.


Additional Notes

  • Authentication: By default, Jitsi allows anonymous access. To secure it, edit .env with:

    ENABLE_AUTH=1
    AUTH_TYPE=internal

    Then manage users via Prosody (see Jitsi documentation). This is optional unless security is a concern.

  • Scaling: For more participants, consider additional JVB instances (refer to the Jitsi Docker docs).

  • Troubleshooting: Check container logs with docker-compose logs (e.g., web, jvb) if issues arise.


This setup provides a fully functional Jitsi instance optimized for voice chat, integrated seamlessly with your existing Nginx Proxy Manager for simplified domain and SSL management. Access it at your domain and enjoy secure, open-source voice communication!


This page was last edited on 2025-03-10 01:59

Powered by Wiki|Docs

This page was last edited on 2025-03-10 01:59

Mac
To whom it may concern

Powered by Wiki|Docs