version: '3.6' services: core: build: mod/core restart: unless-stopped depends_on: - redis environment: DOMAIN: ${DOMAIN} SHARED_SECRET: ${SHARED_SECRET} 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_IPv4: ${EXTERNAL_IPv4} SIP_IP_ALLOWLIST: ${SIP_IP_ALLOWLIST} NETWORK_INTERFACE: ${NETWORK_INTERFACE:-} 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 network_mode: host extra_hosts: - "host.docker.internal:10.7.7.1" - "core:10.7.7.2" - "etherpad:10.7.7.4" - "webrtc-sfu:10.7.7.10" - "html5:10.7.7.11" 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_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_IPv4} ESL_IP: host.docker.internal LOG_LEVEL: info NODE_CONFIG: '{"kurento":[{"ip":"${EXTERNAL_IPv4}","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} 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"