mirror of
https://github.com/bigbluebutton/docker.git
synced 2024-11-25 09:33:13 +01:00
add webhooks
This commit is contained in:
parent
e0d019d999
commit
8b921bc624
13
docker-compose.webhooks.yml
Normal file
13
docker-compose.webhooks.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
version: '3.6'
|
||||||
|
services:
|
||||||
|
webhooks:
|
||||||
|
build: mod/webhooks
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
DOMAIN: ${DOMAIN}
|
||||||
|
SHARED_SECRET: ${SHARED_SECRET}
|
||||||
|
extra_hosts:
|
||||||
|
- "redis:10.7.7.5"
|
||||||
|
networks:
|
||||||
|
bbb-net:
|
||||||
|
ipv4_address: 10.7.7.15
|
9
mod/nginx/bbb/webhooks.nginx
Normal file
9
mod/nginx/bbb/webhooks.nginx
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Pass to the webhooks app all requests made to the webhooks API.
|
||||||
|
location /bigbluebutton/api/hooks {
|
||||||
|
proxy_pass http://10.7.7.15:3005;
|
||||||
|
proxy_redirect default;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
}
|
26
mod/webhooks/Dockerfile
Normal file
26
mod/webhooks/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
FROM node:12-alpine
|
||||||
|
|
||||||
|
# download dockerize
|
||||||
|
ENV DOCKERIZE_VERSION v0.6.1
|
||||||
|
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||||
|
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||||
|
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||||
|
&& apk add subversion \
|
||||||
|
&& mkdir /app \
|
||||||
|
&& adduser -D -u 2002 -g webhooks webhooks \
|
||||||
|
&& chown webhooks:webhooks /app
|
||||||
|
|
||||||
|
USER webhooks
|
||||||
|
|
||||||
|
|
||||||
|
ENV TAG v2.2.19
|
||||||
|
RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \
|
||||||
|
&& rm -rf /app/.svn \
|
||||||
|
&& cd /app && npm install --production
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
COPY config.yml /app/config/default.yml.tmpl
|
||||||
|
|
||||||
|
ENTRYPOINT /entrypoint.sh
|
||||||
|
|
||||||
|
|
67
mod/webhooks/config.yml
Normal file
67
mod/webhooks/config.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# Shared secret of your BigBlueButton server.
|
||||||
|
bbb:
|
||||||
|
serverDomain: {{ .Env.DOMAIN }}
|
||||||
|
sharedSecret: {{ .Env.SHARED_SECRET }}
|
||||||
|
# Whether to use Auth2.0 or not, Auth2.0 sends the sharedSecret whithin an Authorization header as a bearer
|
||||||
|
auth2_0: true
|
||||||
|
apiPath: /bigbluebutton/api
|
||||||
|
|
||||||
|
# The port in which the API server will run.
|
||||||
|
server:
|
||||||
|
port: 3005
|
||||||
|
|
||||||
|
# Web hooks configs
|
||||||
|
hooks:
|
||||||
|
channels:
|
||||||
|
- from-akka-apps-redis-channel
|
||||||
|
- from-bbb-web-redis-channel
|
||||||
|
- from-akka-apps-chat-redis-channel
|
||||||
|
- bigbluebutton:from-bbb-apps:meeting
|
||||||
|
- bigbluebutton:from-bbb-apps:users
|
||||||
|
- bigbluebutton:from-bbb-apps:chat
|
||||||
|
- bigbluebutton:from-rap
|
||||||
|
# IP where permanent hook will post data (more than 1 URL means more than 1 permanent hook)
|
||||||
|
permanentURLs: []
|
||||||
|
# How many messages will be enqueued to be processed at the same time
|
||||||
|
queueSize: 10000
|
||||||
|
# Allow permanent hooks to receive raw message, which is the message straight from BBB
|
||||||
|
getRaw: false
|
||||||
|
# If set to higher than 1, will send events on the format:
|
||||||
|
# "event=[{event1},{event2}],timestamp=000" or "[{event1},{event2}]" (based on using auth2_0 or not)
|
||||||
|
# when there are more than 1 event on the queue at the moment of processing the queue.
|
||||||
|
multiEvent: 1
|
||||||
|
# Retry intervals for failed attempts for perform callback calls.
|
||||||
|
# In ms. Totals to around 5min.
|
||||||
|
retryIntervals:
|
||||||
|
- 100
|
||||||
|
- 500
|
||||||
|
- 1000
|
||||||
|
- 2000
|
||||||
|
- 4000
|
||||||
|
- 8000
|
||||||
|
- 10000
|
||||||
|
- 30000
|
||||||
|
- 60000
|
||||||
|
- 60000
|
||||||
|
- 60000
|
||||||
|
- 60000
|
||||||
|
# Reset permanent interval when exceeding maximum attemps
|
||||||
|
permanentIntervalReset: 8
|
||||||
|
|
||||||
|
# Mappings of internal to external meeting IDs
|
||||||
|
mappings:
|
||||||
|
cleanupInterval: 10000 # 10 secs, in ms
|
||||||
|
timeout: 86400000 # 24 hours, in ms
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
redis:
|
||||||
|
host: redis
|
||||||
|
port: 6379
|
||||||
|
keys:
|
||||||
|
hookPrefix: bigbluebutton:webhooks:hook
|
||||||
|
hooks: bigbluebutton:webhooks:hooks
|
||||||
|
mappings: bigbluebutton:webhooks:mappings
|
||||||
|
mappingPrefix: bigbluebutton:webhooks:mapping
|
||||||
|
eventsPrefix: bigbluebutton:webhooks:events
|
||||||
|
userMaps: bigbluebutton:webhooks:userMaps
|
||||||
|
userMapPrefix: bigbluebutton:webhooks:userMap
|
9
mod/webhooks/entrypoint.sh
Executable file
9
mod/webhooks/entrypoint.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export NODE_ENV=production
|
||||||
|
cd /app
|
||||||
|
dockerize \
|
||||||
|
-wait tcp://redis:6379 \
|
||||||
|
-template /app/config/default.yml.tmpl:/app/config/default.yml \
|
||||||
|
node app.js
|
||||||
|
|
@ -15,6 +15,9 @@ ENABLE_COTURN=true
|
|||||||
# https://docs.bigbluebutton.org/greenlight/gl-overview.html
|
# https://docs.bigbluebutton.org/greenlight/gl-overview.html
|
||||||
ENABLE_GREENLIGHT=true
|
ENABLE_GREENLIGHT=true
|
||||||
|
|
||||||
|
# Enable Webhooks
|
||||||
|
# used by some integrations
|
||||||
|
#ENABLE_WEBHOOKS=true
|
||||||
|
|
||||||
# ====================================
|
# ====================================
|
||||||
# SECRETS
|
# SECRETS
|
||||||
|
@ -24,4 +24,8 @@ if [ "$ENABLE_GREENLIGHT" == true ]; then
|
|||||||
COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.greenlight.yml"
|
COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.greenlight.yml"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$ENABLE_WEBHOOKS" == true ]; then
|
||||||
|
COMPOSE_FILES="$COMPOSE_FILES -f docker-compose.webhooks.yml"
|
||||||
|
fi
|
||||||
|
|
||||||
docker-compose $COMPOSE_FILES $@
|
docker-compose $COMPOSE_FILES $@
|
||||||
|
Loading…
Reference in New Issue
Block a user