version: '3.6' services: core: build: mod/core depends_on: - redis cap_add: - SYS_NICE # for realtime scheduling - SYS_ADMIN # for systemd environment: DOMAIN: ${DOMAIN} EXTERNAL_IP: ${EXTERNAL_IP} SHARED_SECRET: ${SHARED_SECRET} WELCOME_FOOTER: ${WELCOME_FOOTER} container: docker tmpfs: - /run - /run/lock - /tmp:exec,mode=777 volumes: - bigbluebutton:/var/bigbluebutton - /sys/fs/cgroup:/sys/fs/cgroup:ro # for systemd - ./mod/core/entrypoint.sh:/entrypoint.sh - ./mod/core/red5.properties:/usr/share/red5/conf/red5.properties - ./mod/core/bigbluebutton.properties:/usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties - ./mod/core/bigbluebutton-sip.properties:/usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties - ./mod/freeswitch/vars.xml:/opt/freeswitch/conf/vars.xml.tmpl - ./mod/freeswitch/external.xml:/opt/freeswitch/conf/sip_profiles/external.xml - ./mod/freeswitch/acl.conf.xml:/opt/freeswitch/conf/autoload_configs/acl.conf.xml - ./mod/freeswitch/event_socket.conf.xml:/opt/freeswitch/conf/autoload_configs/event_socket.conf.xml - ./mod/web/bigbluebutton.properties:/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl - ./mod/core/bigbluebutton.yml:/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml - ./mod/bbb-apps-akka/application.conf:/usr/share/bbb-apps-akka/conf/application.conf.tmpl - ./mod/bbb-fsesl-akka/application.conf:/etc/bbb-fsesl-akka/application.conf network_mode: host nginx: image: nginx:1.17 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 networks: - bbb-net extra_hosts: - "host.docker.internal:10.7.7.1" etherpad: image: etherpad/etherpad:1.8.0 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:5.0-alpine 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 environment: KMS_STUN_IP: ${STUN_IP} KMS_STUN_PORT: ${STUN_PORT} KMS_MIN_PORT: 24577 KMS_MAX_PORT: 32768 KMS_EXTERNAL_ADDRESS: KMS_TURN_URL: network_mode: host webrtc-sfu: build: context: ./bbb-webrtc-sfu dockerfile: ../mod/webrtc-sfu/Dockerfile 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 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 volumes: - ./mod/html5/entrypoint.sh:/entrypoint.sh - ./mod/html5/settings.yml:/app/programs/server/assets/app/config/settings.yml.tmpl volumes: bigbluebutton: networks: bbb-net: ipam: driver: default config: - subnet: "10.7.7.0/24"