coolify/templates/compose/jitsi.yaml
2026-04-24 09:40:01 +05:30

139 lines
4.1 KiB
YAML

# documentation: https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker/
# slogan: Self-hosted Jitsi Meet — open-source video conferencing platform
# tags: jitsi,video,conference,webrtc,meeting,self-hosted
# category: productivity
# logo: svgs/jitsi.svg
# port: 80
services:
jitsi-web:
image: "jitsi/web:stable-10888"
restart: unless-stopped
environment:
- SERVICE_URL_JITSI
- PUBLIC_URL=$SERVICE_URL_JITSI
- ENABLE_AUTH=0
- ENABLE_GUESTS=1
- ENABLE_LETSENCRYPT=0
- ENABLE_HTTP_REDIRECT=0
- DISABLE_HTTPS=1
- XMPP_DOMAIN=meet.jitsi
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
- XMPP_GUEST_DOMAIN=guest.meet.jitsi
- XMPP_MUC_DOMAIN=conference.meet.jitsi
- XMPP_INTERNAL_MUC_DOMAIN=internal.auth.meet.jitsi
- XMPP_BOSH_URL_BASE=http://prosody:5280
- JVB_BREWERY_MUC=jvbbrewery
- JICOFO_COMPONENT_SECRET=${SERVICE_PASSWORD_JICOFO}
- JICOFO_AUTH_PASSWORD=${SERVICE_PASSWORD_JICOFO}
- JVB_AUTH_PASSWORD=${SERVICE_PASSWORD_JVB}
- TZ=${TZ:-UTC}
depends_on:
- prosody
- jicofo
- jvb
volumes:
- jitsi-web:/config
networks:
meet.jitsi:
aliases:
- meet.jitsi
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 5s
timeout: 10s
retries: 15
prosody:
image: "jitsi/prosody:stable-10888"
restart: unless-stopped
environment:
- AUTH_TYPE=internal
- ENABLE_AUTH=0
- ENABLE_GUESTS=1
- XMPP_DOMAIN=meet.jitsi
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
- XMPP_GUEST_DOMAIN=guest.meet.jitsi
- XMPP_MUC_DOMAIN=conference.meet.jitsi
- XMPP_INTERNAL_MUC_DOMAIN=internal.auth.meet.jitsi
- JICOFO_COMPONENT_SECRET=${SERVICE_PASSWORD_JICOFO}
- JICOFO_AUTH_PASSWORD=${SERVICE_PASSWORD_JICOFO}
- JVB_AUTH_PASSWORD=${SERVICE_PASSWORD_JVB}
- PUBLIC_URL=$SERVICE_URL_JITSI
- TZ=${TZ:-UTC}
- LOG_LEVEL=${LOG_LEVEL:-info}
volumes:
- jitsi-prosody:/config
networks:
meet.jitsi:
aliases:
- xmpp.meet.jitsi
- auth.meet.jitsi
- guest.meet.jitsi
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5280/http-bind"]
interval: 5s
timeout: 10s
retries: 15
jicofo:
image: "jitsi/jicofo:stable-10888"
restart: unless-stopped
environment:
- AUTH_TYPE=internal
- ENABLE_AUTH=0
- XMPP_DOMAIN=meet.jitsi
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
- XMPP_INTERNAL_MUC_DOMAIN=internal.auth.meet.jitsi
- XMPP_MUC_DOMAIN=conference.meet.jitsi
- XMPP_SERVER=prosody
- JICOFO_COMPONENT_SECRET=${SERVICE_PASSWORD_JICOFO}
- JICOFO_AUTH_PASSWORD=${SERVICE_PASSWORD_JICOFO}
- JVB_BREWERY_MUC=jvbbrewery
- JICOFO_ENABLE_HEALTH_CHECKS=1
- TZ=${TZ:-UTC}
depends_on:
- prosody
volumes:
- jitsi-jicofo:/config
networks:
meet.jitsi:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8888/about/health"]
interval: 5s
timeout: 10s
retries: 15
jvb:
image: "jitsi/jvb:stable-10888"
restart: unless-stopped
ports:
- "10000:10000/udp"
environment:
- XMPP_SERVER=prosody
- XMPP_DOMAIN=meet.jitsi
- XMPP_AUTH_DOMAIN=auth.meet.jitsi
- XMPP_INTERNAL_MUC_DOMAIN=internal.auth.meet.jitsi
- XMPP_MUC_DOMAIN=conference.meet.jitsi
- JVB_AUTH_USER=jvb
- JVB_AUTH_PASSWORD=${SERVICE_PASSWORD_JVB}
- JVB_BREWERY_MUC=jvbbrewery
- JVB_PORT=10000
- JVB_ADVERTISE_IPS=${JVB_ADVERTISE_IPS:-} #Optional: set your public IP only if STUN auto-detection fails or the server is behind NAT / multiple interfaces
- JVB_STUN_SERVERS=${JVB_STUN_SERVERS:-stun.l.google.com:19302}
- PUBLIC_URL=$SERVICE_URL_JITSI
- TZ=${TZ:-UTC}
depends_on:
- prosody
volumes:
- jitsi-jvb:/config
networks:
meet.jitsi:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/about/health"]
interval: 5s
timeout: 10s
retries: 15
networks:
meet.jitsi: