2018-06-15 21:21:03 +08:00
|
|
|
version: '2'
|
|
|
|
|
2018-07-26 02:14:55 +08:00
|
|
|
services:
|
|
|
|
mongo:
|
|
|
|
image: mongo:3.4
|
|
|
|
restart: unless-stopped
|
2018-06-15 21:21:03 +08:00
|
|
|
|
|
|
|
redis:
|
|
|
|
image: redis
|
|
|
|
restart: unless-stopped
|
2018-07-26 02:14:55 +08:00
|
|
|
|
|
|
|
bbb-html5:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-html5${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- mongo
|
|
|
|
- redis
|
|
|
|
environment:
|
|
|
|
MONGO_URL: mongodb://mongo/bbbhtml5
|
2018-08-01 09:00:33 +08:00
|
|
|
METEOR_SETTINGS_MODIFIER: ".public.kurento.wsUrl = \"wss://${SERVER_DOMAIN}/bbb-webrtc-sfu\" | .public.kurento.enableVideo = true | .public.kurento.enableScreensharing = true | .public.kurento.chromeDefaultExtensionKey = \"${SCREENSHARE_EXTENSION_KEY}\" | .public.kurento.chromeDefaultExtensionLink = \"${SCREENSHARE_EXTENSION_LINK}\" | .public.kurento.enableVideoStats = true | .public.kurento.enableListenOnly = true"
|
2018-07-26 02:14:55 +08:00
|
|
|
REDIS_HOST: redis
|
|
|
|
ROOT_URL: http://127.0.0.1/html5client
|
2018-08-03 23:05:00 +08:00
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-html5"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /html5client,/_timesync"
|
2018-06-15 21:21:03 +08:00
|
|
|
|
|
|
|
bbb-webhooks:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-webhooks${TAG_SUFFIX}
|
2018-06-15 21:21:03 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-06-15 21:21:03 +08:00
|
|
|
- redis
|
|
|
|
environment:
|
|
|
|
REDIS_HOST: redis
|
2018-07-26 02:14:55 +08:00
|
|
|
SHARED_SECRET: ${SHARED_SECRET}
|
2018-08-16 09:37:56 +08:00
|
|
|
BEARER_AUTH: 1
|
2018-08-22 01:23:17 +08:00
|
|
|
SERVER_DOMAIN: ${SERVER_DOMAIN}
|
2018-08-04 01:47:52 +08:00
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-webhooks"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /bigbluebutton/api/hooks"
|
2018-06-15 21:21:03 +08:00
|
|
|
|
2018-07-26 02:14:55 +08:00
|
|
|
bbb-freeswitch:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-freeswitch${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- coturn
|
2018-08-01 09:00:33 +08:00
|
|
|
volumes:
|
|
|
|
- media-audio:/var/freeswitch/meetings
|
2018-06-15 21:21:03 +08:00
|
|
|
|
2018-07-26 02:14:55 +08:00
|
|
|
bbb-webrtc-sfu:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-webrtc-sfu${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- redis
|
|
|
|
- kurento
|
2018-08-01 09:00:33 +08:00
|
|
|
- bbb-freeswitch
|
2018-07-26 02:14:55 +08:00
|
|
|
environment:
|
2018-08-03 04:51:38 +08:00
|
|
|
KURENTO_NAME: kurento
|
2018-07-26 02:14:55 +08:00
|
|
|
KURENTO_URL: ws://kurento:8888/kurento
|
|
|
|
REDIS_HOST: redis
|
2018-08-01 09:00:33 +08:00
|
|
|
FREESWITCH_IP: bbb-freeswitch
|
2018-08-03 04:51:38 +08:00
|
|
|
LOG_LEVEL: debug
|
2018-08-04 01:47:52 +08:00
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-webrtc-sfu"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /bbb-webrtc-sfu"
|
2018-06-15 21:21:03 +08:00
|
|
|
|
2018-07-26 02:14:55 +08:00
|
|
|
coturn:
|
2018-08-03 22:03:23 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-coturn${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
|
|
|
environment:
|
2018-08-09 11:16:46 +08:00
|
|
|
TURN_DOMAIN: ${SERVER_DOMAIN}
|
2018-07-26 02:14:55 +08:00
|
|
|
SECRET: ${COTURN_REST_SECRET}
|
|
|
|
EXTERNAL_IP: ${EXTERNAL_IP}
|
|
|
|
ENABLE_REST_API: 1
|
|
|
|
PORT: 3478
|
|
|
|
ports:
|
|
|
|
- 3478:3478/udp
|
|
|
|
- 3478:3478/tcp
|
2018-06-15 21:21:03 +08:00
|
|
|
|
2018-07-26 02:14:55 +08:00
|
|
|
kurento:
|
2018-08-03 22:03:23 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-kurento${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-01 09:00:33 +08:00
|
|
|
volumes:
|
|
|
|
- media-video:/var/kurento/recordings
|
|
|
|
- media-screenshare:/var/kurento/screenshare
|
2018-07-26 02:14:55 +08:00
|
|
|
environment:
|
2019-02-02 04:44:04 +08:00
|
|
|
STUN_IP: ${EXTERNAL_IP}
|
|
|
|
STUN_PORT: 3478
|
2018-07-26 02:14:55 +08:00
|
|
|
|
|
|
|
bbb-apps-akka:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-apps-akka${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- redis
|
|
|
|
environment:
|
|
|
|
JAVA_OPTS: -Dredis.host=redis
|
|
|
|
|
|
|
|
bbb-fsesl-akka:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-fsesl-akka${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- bbb-freeswitch
|
|
|
|
- redis
|
2018-08-03 04:51:38 +08:00
|
|
|
command: ["wait-for-it.sh", "bbb-freeswitch:8021", "--timeout=60", "--strict", "--", "/usr/share/bbb-fsesl-akka/bin/bbb-fsesl-akka"]
|
2018-07-26 02:14:55 +08:00
|
|
|
environment:
|
|
|
|
JAVA_OPTS: -Dredis.host=redis -Dfreeswitch.esl.host=bbb-freeswitch
|
|
|
|
|
|
|
|
bbb-web:
|
2018-08-01 05:25:35 +08:00
|
|
|
image: ${TAG_PREFIX}bbb-web${TAG_SUFFIX}
|
2018-07-26 02:14:55 +08:00
|
|
|
restart: unless-stopped
|
2018-08-03 04:51:38 +08:00
|
|
|
depends_on:
|
2018-07-26 02:14:55 +08:00
|
|
|
- redis
|
|
|
|
volumes:
|
|
|
|
- bigbluebutton:/var/bigbluebutton
|
|
|
|
environment:
|
|
|
|
SERVER_DOMAIN: ${SERVER_DOMAIN}
|
|
|
|
SHARED_SECRET: ${SHARED_SECRET}
|
2018-08-09 11:16:46 +08:00
|
|
|
TURN_DOMAIN: ${SERVER_DOMAIN}
|
2018-07-26 02:14:55 +08:00
|
|
|
TURN_SECRET: ${COTURN_REST_SECRET}
|
2018-08-03 23:05:00 +08:00
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-web"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /bigbluebutton"
|
2018-06-15 21:21:03 +08:00
|
|
|
|
2018-08-24 10:46:29 +08:00
|
|
|
bbb-greenlight:
|
|
|
|
image: bigbluebutton/greenlight:v2
|
|
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
|
|
- greenlight_db:/usr/src/app/db/production
|
|
|
|
- greenlight_logs:/usr/src/app/log
|
|
|
|
environment:
|
|
|
|
BIGBLUEBUTTON_ENDPOINT: https://${SERVER_DOMAIN}/bigbluebutton/
|
|
|
|
BIGBLUEBUTTON_SECRET: ${SHARED_SECRET}
|
|
|
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
|
|
|
ALLOW_GREENLIGHT_ACCOUNTS: "true"
|
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-greenlight"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /b"
|
|
|
|
|
2018-08-04 04:22:34 +08:00
|
|
|
# when we're able to setup traefik properly for wss, nginx is no longer needed
|
|
|
|
nginx:
|
|
|
|
image: ${TAG_PREFIX}bbb-nginx${TAG_SUFFIX}
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
- bbb-freeswitch
|
|
|
|
environment:
|
|
|
|
SERVER_DOMAIN: ${SERVER_DOMAIN}
|
|
|
|
labels:
|
|
|
|
- "traefik.backend=bbb-freeswitch"
|
|
|
|
- "traefik.frontend.rule=PathPrefix: /ws"
|
|
|
|
|
2018-08-03 23:05:00 +08:00
|
|
|
traefik:
|
|
|
|
image: traefik
|
|
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
|
|
- 80:80
|
|
|
|
- 8080:8080
|
|
|
|
- 443:443
|
2018-08-09 11:16:46 +08:00
|
|
|
command: traefik
|
|
|
|
- --docker
|
|
|
|
- --logLevel=INFO
|
|
|
|
- --acme
|
|
|
|
- --acme.httpchallenge
|
|
|
|
- --acme.httpchallenge.entrypoint=http
|
|
|
|
- --acme.acmelogging
|
|
|
|
- --acme.storage=/etc/traefik/acme/acme.json
|
|
|
|
- --acme.email=felipe@mconf.com
|
|
|
|
- --acme.entrypoint=https
|
|
|
|
- --acme.domains=${SERVER_DOMAIN}
|
|
|
|
- --defaultentrypoints=http,https
|
|
|
|
- --entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
|
|
|
|
- --entryPoints='Name:https Address::443 TLS'
|
2018-08-03 23:05:00 +08:00
|
|
|
volumes:
|
2018-08-09 11:16:46 +08:00
|
|
|
- traefik-acme:/etc/traefik/acme/
|
2018-08-03 23:05:00 +08:00
|
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
|
2018-06-15 21:21:03 +08:00
|
|
|
volumes:
|
2018-08-09 11:16:46 +08:00
|
|
|
traefik-acme:
|
2018-07-26 02:14:55 +08:00
|
|
|
static:
|
|
|
|
bigbluebutton:
|
2018-08-01 09:00:33 +08:00
|
|
|
media-audio:
|
|
|
|
media-video:
|
|
|
|
media-screenshare:
|
2018-08-24 10:46:29 +08:00
|
|
|
greenlight_db:
|
|
|
|
greenlight_logs:
|