Files

133 lines
3.9 KiB
Django/Jinja

services:
jitsi-web:
image: jitsi/web:{{ jitsi_version }}
container_name: jitsi-web
restart: unless-stopped
environment:
PUBLIC_URL: "https://{{ jitsi_domain }}"
JITSI_WATERMARKLINK: "https://{{ base_domain }}"
XMPP_SERVER: jitsi-prosody
XMPP_DOMAIN: meet.jitsi
XMPP_AUTH_DOMAIN: auth.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
XMPP_MUC_DOMAIN: muc.meet.jitsi
XMPP_BOSH_URL_BASE: http://jitsi-prosody:5280
XMPP_RECORDER_DOMAIN: recorder.meet.jitsi
ENABLE_AUTH: 1
ENABLE_GUESTS: 1
AUTH_TYPE: jwt
JWT_APP_ID: "jitsi"
JWT_APP_SECRET: "{{ jitsi_turn_secret }}"
TURN_CREDENTIALS: "{{ jitsi_turn_secret }}"
LETSENCRYPT_DOMAIN: "{{ jitsi_domain }}"
TZ: UTC
volumes:
- {{ jitsi_data_dir }}/web:/config
labels:
- "traefik.enable=true"
- "traefik.http.routers.jitsi.rule=Host(`{{ jitsi_domain }}`)"
- "traefik.http.routers.jitsi.tls=true"
- "traefik.http.routers.jitsi.tls.certresolver=letsencrypt"
- "traefik.http.services.jitsi.loadbalancer.server.port=80"
networks:
- internal
- {{ sovereign_network_name }}
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "jitsi-web"
jitsi-prosody:
image: jitsi/prosody:{{ jitsi_version }}
container_name: jitsi-prosody
restart: unless-stopped
environment:
XMPP_DOMAIN: meet.jitsi
XMPP_AUTH_DOMAIN: auth.meet.jitsi
XMPP_MUC_DOMAIN: muc.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
XMPP_RECORDER_DOMAIN: recorder.meet.jitsi
JICOFO_AUTH_USER: focus
JICOFO_AUTH_PASSWORD: "{{ jitsi_jicofo_auth_password }}"
JVB_AUTH_USER: jvb
JVB_AUTH_PASSWORD: "{{ jitsi_jvb_auth_password }}"
JIBRI_RECORDER_USER: recorder
JIBRI_RECORDER_PASSWORD: "{{ jitsi_jibri_recorder_password }}"
JIBRI_XMPP_USER: jibri
JIBRI_XMPP_PASSWORD: "{{ jitsi_jibri_xmpp_password }}"
JWT_APP_ID: "jitsi"
JWT_APP_SECRET: "{{ jitsi_turn_secret }}"
ENABLE_AUTH: 1
ENABLE_GUESTS: 1
AUTH_TYPE: jwt
TZ: UTC
volumes:
- {{ jitsi_data_dir }}/prosody:/config
networks:
- internal
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "jitsi-prosody"
jitsi-jicofo:
image: jitsi/jicofo:{{ jitsi_version }}
container_name: jitsi-jicofo
restart: unless-stopped
depends_on:
- jitsi-prosody
environment:
XMPP_SERVER: jitsi-prosody
XMPP_DOMAIN: meet.jitsi
XMPP_AUTH_DOMAIN: auth.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
JICOFO_AUTH_USER: focus
JICOFO_AUTH_PASSWORD: "{{ jitsi_jicofo_auth_password }}"
JVB_BREWERY_MUC: jvbbrewery
TZ: UTC
volumes:
- {{ jitsi_data_dir }}/jicofo:/config
networks:
- internal
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "jitsi-jicofo"
jitsi-jvb:
image: jitsi/jvb:{{ jitsi_version }}
container_name: jitsi-jvb
restart: unless-stopped
depends_on:
- jitsi-prosody
environment:
XMPP_SERVER: jitsi-prosody
XMPP_DOMAIN: meet.jitsi
XMPP_AUTH_DOMAIN: auth.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi
JVB_AUTH_USER: jvb
JVB_AUTH_PASSWORD: "{{ jitsi_jvb_auth_password }}"
JVB_BREWERY_MUC: jvbbrewery
JVB_PORT: 10000
JVB_TCP_HARVESTER_DISABLED: "true"
TZ: UTC
ports:
- "10000:10000/udp"
volumes:
- {{ jitsi_data_dir }}/jvb:/config
networks:
- internal
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "jitsi-jvb"
networks:
internal:
{{ sovereign_network_name }}:
external: true