added greenlight and api demos

This commit is contained in:
chandi 2020-04-12 16:01:57 +02:00
parent 4b579a6219
commit 8d078b1f7c
10 changed files with 291 additions and 30 deletions

10
docker-compose.demo.yml Normal file
View File

@ -0,0 +1,10 @@
version: '3.6'
services:
demo:
build: mod/demo
environment:
DOMAIN: ${DOMAIN}
SHARED_SECRET: ${SHARED_SECRET}
ports:
- 10.7.7.1:8001:8080

View File

@ -0,0 +1,24 @@
version: '3.6'
services:
greenlight:
container_name: greenlight-v2
image: bigbluebutton/greenlight:v2
env_file: .env
environment:
DB_ADAPTER: postgresql
DB_HOST: postgres
DB_NAME: greenlight
DB_USERNAME: postgres
DB_PASSWORD: password
BIGBLUEBUTTON_ENDPOINT: https://${DOMAIN}/bigbluebutton/api/
BIGBLUEBUTTON_SECRET: ${SHARED_SECRET}
SECRET_KEY_BASE: ${RAILS_SECRET}
ports:
- 10.7.7.1:5000:80
postgres:
image: postgres:12
environment:
POSTGRES_DB: greenlight
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password

View File

@ -12,7 +12,6 @@ services:
DOMAIN: ${DOMAIN}
EXTERNAL_IP: ${EXTERNAL_IP}
SHARED_SECRET: ${SHARED_SECRET}
WELCOME_MESSAGE: ${WELCOME_MESSAGE}
WELCOME_FOOTER: ${WELCOME_FOOTER}
container: docker
tmpfs:
@ -43,13 +42,14 @@ services:
- webrtc-sfu
- html5
ports:
- "80:80"
- "8080:80"
volumes:
- bigbluebutton:/var/bigbluebutton
- ./mod/nginx/bbb:/etc/nginx/bbb
- ./mod/nginx/bigbluebutton:/etc/nginx/conf.d/default.conf
- ./mod/nginx/503.html:/etc/nginx/conf.d/default.conf
networks:
- bluenet
- bbb-net
extra_hosts:
- "host.docker.internal:10.7.7.1"
@ -64,7 +64,7 @@ services:
- ./mod/pad/entrypoint.sh:/entrypoint.sh
entrypoint: /entrypoint.sh
networks:
bluenet:
bbb-net:
ipv4_address: 10.7.7.4
redis:
@ -72,13 +72,13 @@ services:
ports:
- "127.0.0.1:6379:6379" # TODO: remove as soon as we updated all redis host references
networks:
bluenet:
bbb-net:
ipv4_address: 10.7.7.5
mongodb:
image: mongo:3.4
networks:
bluenet:
bbb-net:
ipv4_address: 10.7.7.6
kurento:
@ -88,7 +88,7 @@ services:
KMS_STUN_PORT: ${STUN_PORT}
KMS_MIN_PORT: 24577
KMS_MAX_PORT: 32768
KMS_EXTERNAL_ADDRESS:
KMS_EXTERNAL_ADDRESS: ${EXTERNAL_IP}
KMS_TURN_URL:
network_mode: host
@ -103,7 +103,7 @@ services:
KURENTO_NAME: kurento
REDIS_HOST: redis
FREESWITCH_IP: host.docker.internal
FREESWITCH_SIP_IP: ${EXTERNAL_IP}
FREESWITCH_SIP_IP: 10.7.7.1
ESL_IP: host.docker.internal
LOG_LEVEL: info
NODE_CONFIG: '{"kurento":[{"ip":"${EXTERNAL_IP}","url":"ws://kurento:8888/kurento"}]}'
@ -113,7 +113,7 @@ services:
- host.docker.internal:10.7.7.1
- kurento:10.7.7.1
networks:
- bluenet
- bbb-net
html5:
image: bbb-html5
@ -128,7 +128,7 @@ services:
SCREENSHARE_EXTENSION_LINK: ${SCREENSHARE_EXTENSION_LINK}
ETHERPAD_API_KEY: ${ETHERPAD_API_KEY}
networks:
- bluenet
- bbb-net
volumes:
- ./mod/html5/entrypoint.sh:/entrypoint.sh
- ./mod/html5/settings.yml:/app/programs/server/assets/app/config/settings.yml.tmpl
@ -138,7 +138,7 @@ volumes:
bigbluebutton:
networks:
bluenet:
bbb-net:
ipam:
driver: default
config:

8
mod/core/README.md Normal file
View File

@ -0,0 +1,8 @@
# bbb-core
based on the bigbluebutton/docker with bbb-install.sh setup, but got so far reduced to following components:
- bbb-web
- bbb-freeswitch-core
- bbb-fsesl-akka
- bbb-apps-akka
- bbb-transcode-akka
- bbb-apps-(video|screenshare|video-broadcast)

16
mod/demo/Dockerfile Normal file
View File

@ -0,0 +1,16 @@
FROM tomcat:7-jdk8-openjdk
ENV DOCKERIZE_VERSION v0.6.1
RUN apt-get update && apt-get install -y wget binutils
# download & install bbb-demo package manually
RUN PACKAGE_PATH=$(curl -s https://ubuntu.bigbluebutton.org/xenial-220/dists/bigbluebutton-xenial/main/binary-amd64/Packages | grep -E 'Filename.*bbb-demo' | awk '{print $2}') \
&& wget https://ubuntu.bigbluebutton.org/xenial-220/$PACKAGE_PATH \
&& ar x bbb-demo_*.deb \
&& tar x -f data.tar.gz ./var/tmp/demo.war \
&& unzip ./var/tmp/demo.war -d /usr/local/tomcat/webapps/demo
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT /entrypoint.sh

14
mod/demo/entrypoint.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
FILE=/usr/local/tomcat/webapps/demo/bbb_api_conf.jsp
echo -n "<%" > $FILE
echo "!
// This is the security salt that must match the value set in the BigBlueButton server
String salt = \"$SHARED_SECRET\";
// This is the URL for the BigBlueButton server
String BigBlueButtonURL = \"https://$DOMAIN/bigbluebutton/\";
%>
" >> $FILE
/usr/local/tomcat/bin/catalina.sh run

View File

@ -1,7 +1,10 @@
# Forward request to /demo to tomcat. This is for
# the BigBlueButton api demos.
location /demo {
proxy_pass http://host.docker.internal:8080;
location = /demo/ {
return 301 /demo/demo1.jsp;
}
location /demo {
proxy_pass http://host.docker.internal:8001;
proxy_redirect default;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@ -19,5 +22,5 @@
proxy_temp_file_write_size 64k;
include fastcgi_params;
}
}

View File

@ -0,0 +1,27 @@
# Routes requests to Greenlight based on the '/b' prefix.
# Use this file to route '/b' paths on your BigBlueButton server
# to the Greenlight application. If you are using a different
# subpath, you should change it here.
location /b {
proxy_pass http://host.docker.internal:5000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
}
location /b/cable {
proxy_pass http://host.docker.internal:5000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_http_version 1.1;
proxy_read_timeout 6h;
proxy_send_timeout 6h;
client_body_timeout 6h;
send_timeout 6h;
}

View File

@ -3,6 +3,11 @@ server {
server_name _;
access_log /var/log/nginx/bigbluebutton.access.log;
# redirect to greenlight
location = / {
return 302 /b;
}
# Handle RTMPT (RTMP Tunneling). Forwards requests
# to Red5 on port 5080
location ~ (/open/|/close/|/idle/|/send/|/fcs/) {
@ -39,22 +44,7 @@ server {
include fastcgi_params;
}
# BigBlueButton landing page.
location / {
root /var/www/bigbluebutton-default;
index index.html index.htm;
expires 1m;
}
# Include specific rules for record and playback
include /etc/nginx/bbb/*.nginx;
#error_page 404 /404.html;
# Redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
}

View File

@ -1,7 +1,7 @@
# important! change these to random values
ETHERPAD_API_KEY=NEQKi2eFXSBce4kyGjwAzMn2jeF66peNYQmyFVRr
SHARED_SECRET=w6y7nycPafjPhVz3gZdBpQhR4H4MvEQzcZzia5LT
RAILS_SECRET=cdfbae48b197805a435ab7881da31c642ac1a7d4d5c006441efa8125ae63865ce7c915c651117e0f14358cd98f5287c431929e0f796f4100b2b1c3eb5baad1b0
DOMAIN=bbb.example.com
@ -17,3 +17,172 @@ SCREENSHARE_EXTENSION_LINK=https://chrome.google.com/webstore/detail/bigbluebutt
CLIENT_TITLE=BigBlueButton
WELCOME_FOOTER=This server is running <a href="http://docs.bigbluebutton.org/" target="_blank"><u>BigBlueButton</u></a>.
# -------------------------------
# greenlight configuration
# -------------------------------
# Microsoft Office365 Login Provider (optional)
#
# For in-depth steps on setting up a Office 365 Login Provider, see:
#
# https://docs.bigbluebutton.org/greenlight/gl-config.html#office365-oauth2
#
OFFICE365_KEY=
OFFICE365_SECRET=
OFFICE365_HD=
# OAUTH2_REDIRECT allows you to specify the redirect_url passed to oauth on sign in.
# It is useful for cases when Greenlight is deployed behind a Network Load Balancer or proxy
OAUTH2_REDIRECT=
# LDAP Login Provider (optional)
#
# You can enable LDAP authentication by providing values for the variables below.
# Configuring LDAP authentication will take precedence over all other providers.
# For information about setting up LDAP, see:
#
# https://docs.bigbluebutton.org/greenlight/gl-config.html#ldap-auth
#
# LDAP_SERVER=ldap.example.com
# LDAP_PORT=389
# LDAP_METHOD=plain
# LDAP_UID=uid
# LDAP_BASE=dc=example,dc=com
# LDAP_BIND_DN=cn=admin,dc=example,dc=com
# LDAP_PASSWORD=password
# LDAP_ROLE_FIELD=ou
LDAP_SERVER=
LDAP_PORT=
LDAP_METHOD=
LDAP_UID=
LDAP_BASE=
LDAP_BIND_DN=
LDAP_PASSWORD=
LDAP_ROLE_FIELD=
# Set this to true if you want GreenLight to support user signup and login without
# Omniauth. For more information, see:
#
# https://docs.bigbluebutton.org/greenlight/gl-overview.html#accounts-and-profile
#
ALLOW_GREENLIGHT_ACCOUNTS=true
# Set this to true if you want GreenLight to send verification emails upon
# the creation of a new account
#
# ALLOW_MAIL_NOTIFICATIONS=true
#
# The notifications are sent using sendmail, unless the SMTP_SERVER variable is set.
# In that case, make sure the rest of the variables are properly set.
#
# SMTP_SERVER=smtp.gmail.com
# SMTP_PORT=587
# SMTP_DOMAIN=gmail.com
# SMTP_USERNAME=<youremail@gmail.com>
# SMTP_PASSWORD=<yourpassword>
# SMTP_AUTH=plain
# SMTP_STARTTLS_AUTO=true
#
SMTP_SERVER=
SMTP_PORT=
SMTP_DOMAIN=
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_AUTH=
SMTP_STARTTLS_AUTO=
# Specify the email address that all mail is sent from
SMTP_SENDER=
# Prefix for the applications root URL.
# Useful for deploying the application to a subdirectory, which is highly recommended
# if deploying on a BigBlueButton server. Keep in mind that if you change this, you'll
# have to update your authentication callback URL's to reflect this change.
#
# The recommended prefix is "/b".
#
RELATIVE_URL_ROOT=/b
# Specify which settings you would like the users to configure on room creation
# or edit after the room has been created
# By default, all settings are turned OFF.
#
# Current settings available:
# mute-on-join: Automatically mute users by default when they join a room
# require-moderator-approval: Require moderators to approve new users before they can join the room
# anyone-can-start: Allows anyone with the join url to start the room in BigBlueButton
# all-join-moderator: All users join as moderators in BigBlueButton
ROOM_FEATURES=mute-on-join,require-moderator-approval,anyone-can-start,all-join-moderator
# Specify the maximum number of records to be sent to the BigBlueButton API in one call
# Default is set to 25 records
PAGINATION_NUMBER=25
# Specify the maximum number of rows that should be displayed per page for a paginated table
# Default is set to 25 rows
NUMBER_OF_ROWS=25
# Set the application into Maintenance Mode
#
# Current options supported:
# true: Renders an error page that does not allow users to access any of the features in the application
# false: Application runs normally
MAINTENANCE_MODE=false
# Displays a flash that appears to inform the user of a scheduled maintenance window
# This variable should contain ONLY the date and time of the scheduled maintenance
#
# Ex: MAINTENANCE_WINDOW=Friday August 18 6pm-10pm EST
MAINTENANCE_WINDOW=
# The link to the Report an Issue button that appears on the 500 page and in the Account Dropdown
#
# Defaults to the Github Issues Page for Greenlight
# Button can be disabled by setting the value to blank
REPORT_ISSUE_URL=https://github.com/bigbluebutton/greenlight/issues/new
# Comment this out to send logs to STDOUT in production instead of log/production.log .
#
# RAILS_LOG_TO_STDOUT=true
#
# When using docker-compose the logs can be sent to an centralized repository like PaperTrail
# just by using the built in driver. Make sure to add to docker-compose.yml the next lines:
#
# logging:
# driver: $LOG_DRIVER
# options:
# syslog-address: $LOG_ADDRESS
# tag: $LOG_TAG
#
# And set this variables up:
#
# LOG_DRIVER=syslog
# LOG_ADDRESS=udp://logs4.papertrailapp.com:[99999]
# LOG_TAG=greenlight.example.com:v2
#
# Check docker-compose and papertrail documentation for encrypting and
# protecting access to the log repository.
# https://docs.docker.com/config/containers/logging/syslog/#options
# https://help.papertrailapp.com/kb/configuration/encrypting-remote-syslog-with-tls-ssl/
#
# For sending logs to a remote aggregator enable these variables:
#
# RAILS_LOG_REMOTE_NAME=logxx.papertrailapp.com
# RAILS_LOG_REMOTE_PORT=9999
# RAILS_LOG_REMOTE_TAG=greenlight
#
# Force SSL
#
# ENABLE_SSL=true
# Specify the default registration to be used by Greenlight until an administrator sets the
# registration method
# Allowed values are:
# open - For open registration
# invite - For invite only registration
# approval - For approve/decline registration
DEFAULT_REGISTRATION=open