docker/docker-compose.yml

185 lines
4.4 KiB
YAML
Raw Normal View History

2020-04-09 15:43:58 +02:00
version: '3.6'
2020-04-09 08:48:47 +02:00
2019-12-09 04:34:03 +01:00
services:
core:
build: mod/core
restart: unless-stopped
2020-04-11 10:43:25 +02:00
depends_on:
- redis
2019-12-09 04:34:03 +01:00
environment:
2020-07-22 00:39:28 +02:00
DEV_MODE: ${DEV_MODE:-}
DOMAIN: ${DOMAIN}
ENABLE_RECORDING: ${ENABLE_RECORDING:-false}
SHARED_SECRET: ${SHARED_SECRET}
WELCOME_MESSAGE: ${WELCOME_MESSAGE:-}
WELCOME_FOOTER: ${WELCOME_FOOTER}
2020-05-15 23:21:03 +02:00
STUN_SERVER: stun:${STUN_IP}:${STUN_PORT}
TURN_SERVER: ${TURN_SERVER:-}
TURN_SECRET: ${TURN_SECRET:-}
2019-12-09 04:34:03 +01:00
volumes:
2020-08-27 10:46:16 +02:00
- bigbluebutton:/var/bigbluebutton
- vol-freeswitch:/var/freeswitch/meetings
- vol-kurento:/var/kurento
2020-05-15 21:13:59 +02:00
networks:
bbb-net:
ipv4_address: 10.7.7.2
2020-04-09 08:48:47 +02:00
2020-05-14 15:21:21 +02:00
freeswitch:
build: mod/freeswitch
2020-06-06 20:06:28 +02:00
restart: unless-stopped
2020-05-14 15:21:21 +02:00
cap_add:
- IPC_LOCK
- NET_ADMIN
- NET_RAW
- NET_BROADCAST
- SYS_NICE
- SYS_RESOURCE
environment:
DOMAIN: ${DOMAIN}
2020-07-12 19:15:40 +02:00
EXTERNAL_IPv4: ${EXTERNAL_IPv4}
2020-07-13 17:40:55 +02:00
EXTERNAL_IPv6: ${EXTERNAL_IPv6:-::1}
SIP_IP_ALLOWLIST: ${SIP_IP_ALLOWLIST:-}
DISABLE_SOUND_MUTED: ${DISABLE_SOUND_MUTED:-false}
DISABLE_SOUND_ALONE: ${DISABLE_SOUND_ALONE:-false}
2020-05-14 15:21:21 +02:00
volumes:
- ./conf/sip_profiles:/etc/freeswitch/sip_profiles/external
- ./conf/dialplan_public:/etc/freeswitch/dialplan/public_docker
- vol-freeswitch:/var/freeswitch/meetings
2020-05-14 15:21:21 +02:00
network_mode: host
2020-04-09 08:48:47 +02:00
nginx:
build: mod/nginx
restart: unless-stopped
2020-04-09 18:15:06 +02:00
depends_on:
- etherpad
- webrtc-sfu
2020-04-09 22:33:27 +02:00
- html5
2020-04-09 08:48:47 +02:00
ports:
2020-04-12 16:01:57 +02:00
- "8080:80"
2020-04-09 08:48:47 +02:00
volumes:
2020-08-27 10:46:16 +02:00
- bigbluebutton:/var/bigbluebutton
- ${DEFAULT_PRESENTATION:-/dev/null}:/etc/nginx/html/default.pdf
2020-07-12 19:15:40 +02:00
network_mode: host
2020-04-09 08:48:47 +02:00
extra_hosts:
- "host.docker.internal:10.7.7.1"
2020-07-12 19:15:40 +02:00
- "core:10.7.7.2"
- "etherpad:10.7.7.4"
- "webrtc-sfu:10.7.7.10"
- "html5:10.7.7.11"
2020-04-09 08:48:47 +02:00
2020-04-09 15:43:58 +02:00
etherpad:
build: mod/etherpad
restart: unless-stopped
2020-04-09 18:15:06 +02:00
depends_on:
- redis
2020-04-09 15:43:58 +02:00
environment:
ETHERPAD_API_KEY: ${ETHERPAD_API_KEY}
networks:
2020-04-12 16:01:57 +02:00
bbb-net:
2020-04-09 15:43:58 +02:00
ipv4_address: 10.7.7.4
2020-04-09 08:48:47 +02:00
2020-04-09 15:43:58 +02:00
redis:
2020-05-22 15:00:17 +02:00
image: redis:6.0-alpine
restart: unless-stopped
2020-08-27 10:46:16 +02:00
volumes:
- ./redis-data:/data
2020-04-09 15:43:58 +02:00
networks:
2020-04-12 16:01:57 +02:00
bbb-net:
2020-04-09 15:43:58 +02:00
ipv4_address: 10.7.7.5
2020-04-09 18:13:18 +02:00
2020-04-09 18:27:47 +02:00
mongodb:
2020-04-12 20:34:48 +02:00
image: mongo:4.2
2020-06-06 20:06:28 +02:00
restart: unless-stopped
2020-08-27 10:46:16 +02:00
volumes:
- ./mongo-data:/data/db
2020-04-09 18:27:47 +02:00
networks:
2020-04-12 16:01:57 +02:00
bbb-net:
2020-04-09 18:27:47 +02:00
ipv4_address: 10.7.7.6
2020-04-09 18:13:18 +02:00
kurento:
2020-06-23 00:10:33 +02:00
image: kurento/kurento-media-server:6.14
restart: unless-stopped
2020-04-09 18:13:18 +02:00
environment:
2020-04-10 13:29:06 +02:00
KMS_STUN_IP: ${STUN_IP}
KMS_STUN_PORT: ${STUN_PORT}
2020-04-09 18:13:18 +02:00
KMS_MIN_PORT: 24577
KMS_MAX_PORT: 32768
KMS_TURN_URL:
KMS_NETWORK_INTERFACES: ${NETWORK_INTERFACE:-}
2020-04-09 18:15:06 +02:00
network_mode: host
volumes:
- vol-kurento:/var/kurento
2020-04-09 15:43:58 +02:00
2020-04-09 18:15:06 +02:00
webrtc-sfu:
build:
context: ./bbb-webrtc-sfu
2020-04-12 20:34:48 +02:00
dockerfile: ../mod/webrtc-sfu/Dockerfile
restart: unless-stopped
2020-04-09 18:15:06 +02:00
depends_on:
- redis
- kurento
- core
2020-04-09 18:15:06 +02:00
environment:
CLIENT_HOST: 0.0.0.0
KURENTO_NAME: kurento
REDIS_HOST: redis
FREESWITCH_IP: host.docker.internal
2020-07-12 19:15:40 +02:00
FREESWITCH_SIP_IP: ${EXTERNAL_IPv4}
2020-04-09 18:15:06 +02:00
ESL_IP: host.docker.internal
2020-04-11 10:43:25 +02:00
LOG_LEVEL: info
2020-07-12 19:15:40 +02:00
NODE_CONFIG: '{"kurento":[{"ip":"${EXTERNAL_IPv4}","url":"ws://kurento:8888/kurento"}]}'
2020-04-09 18:15:06 +02:00
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
2020-04-09 18:15:06 +02:00
2020-04-09 22:33:27 +02:00
html5:
build: mod/html5
restart: unless-stopped
2020-04-09 22:33:27 +02:00
depends_on:
- redis
2020-04-11 10:43:25 +02:00
- mongodb
2020-04-09 22:33:27 +02:00
- etherpad
2020-04-10 13:29:06 +02:00
environment:
DOMAIN: ${DOMAIN}
CLIENT_TITLE: ${CLIENT_TITLE}
ETHERPAD_API_KEY: ${ETHERPAD_API_KEY}
LISTEN_ONLY_MODE: ${LISTEN_ONLY_MODE:-true}
DISABLE_ECHO_TEST: ${DISABLE_ECHO_TEST:-false}
AUTO_SHARE_WEBCAM: ${AUTO_SHARE_WEBCAM:-false}
DISABLE_VIDEO_PREVIEW: ${DISABLE_VIDEO_PREVIEW:-false}
CHAT_ENABLED: ${CHAT_ENABLED:-true}
CHAT_START_CLOSED: ${CHAT_START_CLOSED:-false}
2020-07-22 00:39:28 +02:00
DEV_MODE: ${DEV_MODE:-}
2020-04-09 22:33:27 +02:00
networks:
bbb-net:
ipv4_address: 10.7.7.11
2020-04-11 11:29:50 +02:00
2020-05-22 14:56:45 +02:00
periodic:
build: mod/periodic
restart: unless-stopped
depends_on:
- mongodb
volumes:
- /var/run/docker.sock:/var/run/docker.sock
2020-08-27 10:46:16 +02:00
- bigbluebutton:/var/bigbluebutton
2020-05-22 14:56:45 +02:00
networks:
bbb-net:
ipv4_address: 10.7.7.12
2020-05-22 14:56:45 +02:00
2020-04-11 11:29:50 +02:00
volumes:
bigbluebutton:
vol-freeswitch:
vol-kurento:
2020-04-11 11:29:50 +02:00
2020-04-09 08:48:47 +02:00
networks:
2020-04-12 16:01:57 +02:00
bbb-net:
2020-04-09 08:48:47 +02:00
ipam:
2020-04-09 15:43:58 +02:00
driver: default
config:
- subnet: "10.7.7.0/24"