127 lines
3.3 KiB
YAML
127 lines
3.3 KiB
YAML
# ignore: true
|
|
# documentation: https://jitsi.github.io/handbook/docs/intro
|
|
# slogan: World's easiest way to add meetings to your apps
|
|
# logo: svgs/jitsi.svg
|
|
# tags: video, conferencing, meetings, communication, open-source
|
|
|
|
services:
|
|
jitsi-web:
|
|
image: "jitsi/web:${JITSI_IMAGE_VERSION:-unstable}"
|
|
container_name: jitsi-web
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8001:80"
|
|
- "8443:443"
|
|
volumes:
|
|
- ~/.jitsi-meet-cfg/web:/config:Z
|
|
- ~/.jitsi-meet-cfg/web/crontabs:/var/spool/cron/crontabs:Z
|
|
- ~/.jitsi-meet-cfg/transcripts:/usr/share/jitsi-meet/transcripts:Z
|
|
environment:
|
|
- SERVICE_FQDN_JITSI
|
|
- PUBLIC_URL=$SERVICE_FQDN_JITSI
|
|
- JITSI_IMAGE_VERSION=unstable
|
|
- JIBRI_RECORDER_PASSWORD=$SERVICE_PASSWORD_JITSI
|
|
- JIBRI_XMPP_PASSWORD=$SERVICE_PASSWORD_JITSI
|
|
- JICOFO_AUTH_PASSWORD=$SERVICE_PASSWORD_JITSI
|
|
- JIGASI_XMPP_PASSWORD=$SERVICE_PASSWORD_JITSI
|
|
- JVB_AUTH_PASSWORD=$SERVICE_PASSWORD_JITSI
|
|
- TZ=UTC
|
|
networks:
|
|
meet.jitsi:
|
|
aliases:
|
|
- meet.jitsi
|
|
depends_on:
|
|
- jvb
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
|
|
prosody:
|
|
image: "jitsi/prosody:${JITSI_IMAGE_VERSION:-unstable}"
|
|
expose:
|
|
- '5222'
|
|
- '5347'
|
|
- '5280'
|
|
container_name: jitsi-xmpp
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ~/.jitsi-meet-cfg/prosody/config:/config:Z
|
|
- ~/.jitsi-meet-cfg/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
|
|
environment:
|
|
- JICOFO_AUTH_PASSWORD
|
|
- JVB_AUTH_PASSWORD
|
|
- PUBLIC_URL=$SERVICE_FQDN_JITSI
|
|
- TZ
|
|
networks:
|
|
meet.jitsi:
|
|
aliases:
|
|
- xmpp.meet.jitsi
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:5280/http-bind"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
|
|
jicofo:
|
|
image: "jitsi/jicofo:${JITSI_IMAGE_VERSION:-unstable}"
|
|
container_name: jitsi-jicofo
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ~/.jitsi-meet-cfg/jicofo:/config:Z
|
|
environment:
|
|
- XMPP_SERVER=prosody
|
|
- JICOFO_AUTH_PASSWORD
|
|
- TZ
|
|
- JICOFO_ENABLE_HEALTH_CHECKS=1
|
|
depends_on:
|
|
- prosody
|
|
networks:
|
|
meet.jitsi:
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8888/about/health"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
|
|
jvb:
|
|
image: "jitsi/jvb:${JITSI_IMAGE_VERSION:-unstable}"
|
|
container_name: jitsi-jvb
|
|
restart: unless-stopped
|
|
expose:
|
|
- '10000:10000/udp'
|
|
- '8080:8080'
|
|
- '10000'
|
|
volumes:
|
|
- ~/.jitsi-meet-cfg/jvb:/config:Z
|
|
environment:
|
|
- JVB_ADVERTISE_IPS
|
|
- JVB_AUTH_PASSWORD
|
|
- PUBLIC_URL=$SERVICE_FQDN_JITSI
|
|
- TZ
|
|
- XMPP_SERVER=prosody
|
|
depends_on:
|
|
- prosody
|
|
networks:
|
|
meet.jitsi:
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.udp.routers.my-udp-router.entrypoints=video"
|
|
- "traefik.udp.routers.my-udp-router.service=my-udp-service"
|
|
- "traefik.udp.services.my-udp-service.loadbalancer.server.port=10000"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/about/health"]
|
|
interval: 2s
|
|
timeout: 10s
|
|
retries: 15
|
|
|
|
networks:
|
|
meet.jitsi:
|
|
|
|
volumes:
|
|
jitsi-web:
|
|
jitsi-xmpp:
|
|
jitsi-jicofo:
|
|
jitsi-jvb:
|