version: '3.5' services: web: image: jitsi/web:stable-8218 container_name: jitsi-web restart: unless-stopped volumes: - {{ data_dir }}/web:/config:Z - {{ data_dir }}/web/crontabs:/var/spool/cron/crontabs:Z - {{ data_dir }}/transcripts:/usr/share/jitsi-meet/transcripts:Z environment: - DISABLE_HTTPS=1 - ENABLE_AUTH=1 - ENABLE_GUESTS=1 - ENABLE_IPV6=1 - ENABLE_LETSENCRYPT=0 - PUBLIC_URL=https://{{ public_domain }} - TZ=Europe/Amsterdam networks: - meet.jitsi - traefik labels: - traefik.enable=true - traefik.http.routers.jitsi-web.entrypoints=websecure - traefik.http.routers.jitsi-web.rule=Host(`{{ public_domain }}`) - traefik.http.routers.jitsi-web.tls=true - traefik.http.routers.jitsi-web.tls.certresolver=pizzapim - traefik.http.services.jitsi-web.loadbalancer.server.port=80 - traefik.http.routers.jitsi-web.service=jitsi-web - traefik.docker.network=traefik prosody: image: jitsi/prosody:stable-8218 container_name: jitsi-xmpp restart: unless-stopped expose: - '5222' - '5347' - '5280' volumes: - {{ data_dir }}/prosody/config:/config:Z - {{ data_dir }}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z environment: - AUTH_TYPE=internal - ENABLE_AUTH=1 - ENABLE_GUESTS=1 - ENABLE_IPV6=1 - ENABLE_LOBBY=1 - JIBRI_RECORDER_PASSWORD={{ jibri_recorder_password }} - JIBRI_XMPP_PASSWORD={{ jibri_xmpp_password }} - JICOFO_AUTH_PASSWORD={{ jicofo_auth_password }} - JIGASI_XMPP_PASSWORD={{ jigasi_xmpp_password }} - JVB_AUTH_PASSWORD={{ jvb_auth_password }} - PUBLIC_URL=https://{{ public_domain }} - TZ=Europe/Amsterdam networks: meet.jitsi: aliases: - xmpp.meet.jitsi jicofo: image: jitsi/jicofo:stable-8218 container_name: jitsi-focus restart: unless-stopped volumes: - {{ data_dir }}/jicofo:/config:Z environment: - AUTH_TYPE=internal - ENABLE_AUTH=1 - JICOFO_AUTH_PASSWORD={{ jicofo_auth_password }} - SENTRY_DSN=0 - TZ=Europe/Amsterdam depends_on: - prosody networks: meet.jitsi: jvb: image: jitsi/jvb:stable-8218 container_name: jitsi-videobridge restart: unless-stopped ports: - '{{ jitsi_videobridge_port }}:{{ jitsi_videobridge_port }}/udp' volumes: - {{ data_dir }}/jvb:/config:Z environment: - JVB_ADVERTISE_IPS={{ jvb_advertise_ips }} - JVB_AUTH_PASSWORD={{ jvb_auth_password }} - JVB_PORT={{ jitsi_videobridge_port }} - PUBLIC_URL=https://{{ public_domain }} - SENTRY_DSN=0 - COLIBRI_REST_ENABLED=0 - TZ=Europe/Amsterdam depends_on: - prosody networks: meet.jitsi: labels: - traefik.enable=true - traefik.udp.routers.jitsi-videobridge.rule=HostSNI(`*`) - traefik.udp.routers.jitsi-videobridge.entrypoints=video - traefik.udp.routers.jitsi-videobridge.service=jitsi-videobridge - traefik.udp.services.jitsi-videobridge.loadbalancer.server.port={{ jitsi_videobridge_port }} networks: meet.jitsi: traefik: external: true