docker/docker-compose.yml

174 lines
4.1 KiB
YAML

version: '3.6'
services:
core:
build: mod/core
restart: unless-stopped
depends_on:
- redis
environment:
DOMAIN: ${DOMAIN}
SHARED_SECRET: ${SHARED_SECRET}
WELCOME_MESSAGE: ${WELCOME_MESSAGE}
WELCOME_FOOTER: ${WELCOME_FOOTER}
STUN_SERVER: stun:${STUN_IP}:${STUN_PORT}
TURN_SERVER: ${TURN_SERVER:-}
TURN_SECRET: ${TURN_SECRET:-}
volumes:
- bigbluebutton:/var/bigbluebutton
networks:
bbb-net:
ipv4_address: 10.7.7.2
freeswitch:
build: mod/freeswitch
restart: unless-stopped
cap_add:
- IPC_LOCK
- NET_ADMIN
- NET_RAW
- NET_BROADCAST
- SYS_NICE
- SYS_RESOURCE
environment:
DOMAIN: ${DOMAIN}
EXTERNAL_IP: ${EXTERNAL_IP}
SIP_IP_ALLOWLIST: ${SIP_IP_ALLOWLIST}
NETWORK_INTERFACE: ${NETWORK_INTERFACE:-}
DISABLE_SOUND_MUTED: ${DISABLE_SOUND_MUTED:-false}
DISABLE_SOUND_ALONE: ${DISABLE_SOUND_ALONE:-false}
volumes:
- ./conf/sip_profiles:/etc/freeswitch/sip_profiles/external
- ./conf/dialplan_public:/etc/freeswitch/dialplan/public_docker
network_mode: host
nginx:
image: nginx:1.19-alpine
restart: unless-stopped
depends_on:
- etherpad
- webrtc-sfu
- html5
ports:
- "8080:80"
volumes:
- bigbluebutton:/var/bigbluebutton
- ./mod/nginx/bbb:/etc/nginx/bbb
- ./mod/nginx/bigbluebutton:/etc/nginx/conf.d/default.conf
- ${DEFAULT_PRESENTATION:-/dev/null}:/etc/nginx/html/default.pdf
networks:
bbb-net:
ipv4_address: 10.7.7.13
extra_hosts:
- "host.docker.internal:10.7.7.1"
etherpad:
build: mod/etherpad
restart: unless-stopped
depends_on:
- redis
environment:
ETHERPAD_API_KEY: ${ETHERPAD_API_KEY}
networks:
bbb-net:
ipv4_address: 10.7.7.4
redis:
image: redis:6.0-alpine
restart: unless-stopped
ports:
- "127.0.0.1:6379:6379" # TODO: remove as soon as we updated all redis host references
networks:
bbb-net:
ipv4_address: 10.7.7.5
mongodb:
image: mongo:4.2
restart: unless-stopped
networks:
bbb-net:
ipv4_address: 10.7.7.6
kurento:
image: kurento/kurento-media-server:6.14
restart: unless-stopped
environment:
KMS_STUN_IP: ${STUN_IP}
KMS_STUN_PORT: ${STUN_PORT}
KMS_MIN_PORT: 24577
KMS_MAX_PORT: 32768
KMS_EXTERNAL_ADDRESS: ${EXTERNAL_IP}
KMS_TURN_URL:
KMS_NETWORK_INTERFACES: ${NETWORK_INTERFACE:-}
network_mode: host
webrtc-sfu:
build:
context: ./bbb-webrtc-sfu
dockerfile: ../mod/webrtc-sfu/Dockerfile
restart: unless-stopped
depends_on:
- redis
- kurento
- core
environment:
CLIENT_HOST: 0.0.0.0
KURENTO_NAME: kurento
REDIS_HOST: redis
FREESWITCH_IP: host.docker.internal
FREESWITCH_SIP_IP: ${EXTERNAL_IP}
ESL_IP: host.docker.internal
LOG_LEVEL: info
NODE_CONFIG: '{"kurento":[{"ip":"${EXTERNAL_IP}","url":"ws://kurento:8888/kurento"}]}'
ports:
- "127.0.0.1:3008:3008"
extra_hosts:
- host.docker.internal:10.7.7.1
- kurento:10.7.7.1
networks:
bbb-net:
ipv4_address: 10.7.7.10
html5:
build: mod/html5
restart: unless-stopped
depends_on:
- redis
- mongodb
- etherpad
environment:
DOMAIN: ${DOMAIN}
CLIENT_TITLE: ${CLIENT_TITLE}
ETHERPAD_API_KEY: ${ETHERPAD_API_KEY}
LISTEN_ONLY_MODE: ${LISTEN_ONLY_MODE}
SKIP_CHECK: ${SKIP_CHECK}
AUTO_SHARE_WEBCAM: ${AUTO_SHARE_WEBCAM}
SKIP_VIDEO_PREVIEW: ${SKIP_VIDEO_PREVIEW}
CHAT_ENABLED: ${CHAT_ENABLED}
CHAT_START_CLOSED: ${CHAT_START_CLOSED}
networks:
bbb-net:
ipv4_address: 10.7.7.11
periodic:
build: mod/periodic
restart: unless-stopped
depends_on:
- mongodb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- bigbluebutton:/var/bigbluebutton
networks:
bbb-net:
ipv4_address: 10.7.7.12
volumes:
bigbluebutton:
networks:
bbb-net:
ipam:
driver: default
config:
- subnet: "10.7.7.0/24"