# jitsi - https://awesome-docker-compose.com/jitsi-meet
services:
  web:
    image: jitsi/web:stable
    restart: unless-stopped
    ports:
      - "${HTTP_PORT}:80"
      - "${HTTPS_PORT}:443"
    volumes:
      - ${DATA_DIR}/config/web:/config
      - ${DATA_DIR}/config/transcripts:/usr/share/jitsi-meet/transcripts
    environment:
      - PUBLIC_URL
      - XMPP_DOMAIN
      - XMPP_AUTH_DOMAIN
      - XMPP_BOSH_URL_BASE
      - XMPP_MUC_DOMAIN
      - XMPP_INTERNAL_MUC_DOMAIN
      - TZ
    networks:
      - meet.jitsi

  prosody:
    image: jitsi/prosody:stable
    restart: unless-stopped
    expose:
      - "5222"
      - "5347"
      - "5280"
    volumes:
      - ${DATA_DIR}/config/prosody:/config
    environment:
      - XMPP_DOMAIN
      - XMPP_AUTH_DOMAIN
      - XMPP_MUC_DOMAIN
      - XMPP_INTERNAL_MUC_DOMAIN
      - JICOFO_COMPONENT_SECRET
      - JICOFO_AUTH_USER
      - JICOFO_AUTH_PASSWORD
      - JVB_AUTH_USER
      - JVB_AUTH_PASSWORD
      - TZ
    networks:
      - meet.jitsi

  jicofo:
    image: jitsi/jicofo:stable
    restart: unless-stopped
    volumes:
      - ${DATA_DIR}/config/jicofo:/config
    environment:
      - XMPP_DOMAIN
      - XMPP_AUTH_DOMAIN
      - XMPP_INTERNAL_MUC_DOMAIN
      - JICOFO_COMPONENT_SECRET
      - JICOFO_AUTH_USER
      - JICOFO_AUTH_PASSWORD
      - TZ
    depends_on:
      - prosody
    networks:
      - meet.jitsi

  jvb:
    image: jitsi/jvb:stable
    restart: unless-stopped
    ports:
      - "${JVB_PORT}:10000/udp"
    volumes:
      - ${DATA_DIR}/config/jvb:/config
    environment:
      - PUBLIC_URL
      - XMPP_DOMAIN
      - XMPP_AUTH_DOMAIN
      - XMPP_INTERNAL_MUC_DOMAIN
      - JVB_AUTH_USER
      - JVB_AUTH_PASSWORD
      - JVB_PORT
      - TZ
      - DOCKER_HOST_ADDRESS
    depends_on:
      - prosody
    networks:
      - meet.jitsi

networks:
  meet.jitsi:
    driver: bridge