ansible-role-docker_jitsimeet/templates/docker-compose.yml

113 lines
3.6 KiB
YAML

# {{ ansible_managed }}
version: '3.5'
services:
# Frontend
web:
image: jitsi/web:{{ docker_jitsimeet_version }}
restart: always
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/web:/config
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/web/crontabs:/var/spool/cron/crontabs
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/transcripts:/usr/share/jitsi-meet/transcripts
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
{% if docker_jitsimeet_etherpad_enabled %}
- ETHERPAD_PUBLIC_URL={{ docker_jitsimeet_etherpad_public_url }}
{% endif %}
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.{{ docker_jitsimeet_service_id }}.entrypoints=web"
- "traefik.http.routers.{{ docker_jitsimeet_service_id }}.rule=Host(`{{ docker_jitsimeet_fqdn }}`)"
- "traefik.http.services.{{ docker_jitsimeet_service_id }}.loadbalancer.server.port=80"
networks:
- jitsimeet
- traefik
# XMPP server
prosody:
image: jitsi/prosody:{{ docker_jitsimeet_version }}
restart: always
expose:
- '5222'
- '5347'
- '5280'
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/prosody/config:/config
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/prosody/prosody-plugins-custom:/prosody-plugins-custom
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
- JVB_AUTH_PASSWORD={{ docker_jitsimeet_jvb_auth_password }}
{% if docker_jitsimeet_turnserver_enabled %}
- TURN_CREDENTIALS={{ docker_jitsimeet_turnserver_credentials }}
- TURN_HOST={{ docker_jitsimeet_turnserver_fqdn }}
- TURN_PORT={{ docker_jitsimeet_turnserver_port }}
- TURN_TRANSPORT={{ docker_jitsimeet_turnserver_transport }}
{% endif %}
networks:
jitsimeet:
aliases:
- xmpp.meet.jitsi
# Focus component
jicofo:
image: jitsi/jicofo:{{ docker_jitsimeet_version }}
restart: always
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/jicofo:/config
environment:
- JICOFO_AUTH_PASSWORD={{ docker_jitsimeet_jicofo_auth_password }}
depends_on:
- prosody
networks:
- jitsimeet
# Video bridge
jvb:
image: jitsi/jvb:{{ docker_jitsimeet_version }}
restart: always
ports:
- '10000:10000/udp'
volumes:
- {{ docker_jitsimeet_data_dir }}/{{ docker_jitsimeet_service_id }}/jvb:/config
environment:
- PUBLIC_URL=https://{{ docker_jitsimeet_fqdn }}
- DOCKER_HOST_ADDRESS={{ docker_jitsimeet_jvb_host_address }}
- JVB_AUTH_PASSWORD={{ docker_jitsimeet_jvb_auth_password }}
{% if docker_jitsimeet_exporter_enabled %}
# metriques
- COLIBRI_REST_ENABLED=true
- JVB_ENABLE_APIS=rest,colibri
- JVB_TCP_API_PORT=8080
- JVB_TCP_MAPPED_API_PORT=8080
{% endif %}
depends_on:
- prosody
networks:
- jitsimeet
- jitsivideo
{% if docker_jitsimeet_exporter_enabled %}
exporter:
image: systemli/prometheus-jitsi-meet-exporter:latest
restart: always
command: -videobridge-url http://jvb:8080/colibri/stats
ports:
- {{ docker_jitsimeet_exporter_port }}:9888
depends_on:
- jvb
networks:
- jitsivideo
- traefik
{% endif %}
networks:
traefik:
external: true
jitsimeet:
internal: true
jitsivideo: