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 cap_add: - IPC_LOCK - NET_ADMIN - NET_RAW - NET_BROADCAST - SYS_NICE - SYS_RESOURCE environment: DOMAIN: ${DOMAIN} EXTERNAL_IP: ${EXTERNAL_IP} volumes: - ./conf/sip_profiles:/etc/freeswitch/sip_profiles/external - ./conf/dialplan_public:/etc/freeswitch/dialplan/public_docker network_mode: host nginx: image: nginx:1.18-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 extra_hosts: - "host.docker.internal:10.7.7.1" etherpad: image: etherpad/etherpad:1.8.4 restart: unless-stopped depends_on: - redis environment: ETHERPAD_API_KEY: ${ETHERPAD_API_KEY} volumes: - ./mod/pad/settings.json:/opt/etherpad-lite/settings.json - ./mod/pad/entrypoint.sh:/entrypoint.sh entrypoint: /entrypoint.sh 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 networks: bbb-net: ipv4_address: 10.7.7.6 kurento: image: kurento/kurento-media-server:6.13 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: 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 html5: build: mod/html5 restart: unless-stopped depends_on: - redis - mongodb - etherpad environment: DOMAIN: ${DOMAIN} CLIENT_TITLE: ${CLIENT_TITLE} SCREENSHARE_EXTENSION_KEY: ${SCREENSHARE_EXTENSION_KEY} SCREENSHARE_EXTENSION_LINK: ${SCREENSHARE_EXTENSION_LINK} ETHERPAD_API_KEY: ${ETHERPAD_API_KEY} networks: - bbb-net 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 volumes: bigbluebutton: networks: bbb-net: ipam: driver: default config: - subnet: "10.7.7.0/24"