diff --git a/docker-compose.demo.yml b/docker-compose.demo.yml
new file mode 100644
index 0000000..6249114
--- /dev/null
+++ b/docker-compose.demo.yml
@@ -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
\ No newline at end of file
diff --git a/docker-compose.greenlight.yml b/docker-compose.greenlight.yml
new file mode 100644
index 0000000..002a598
--- /dev/null
+++ b/docker-compose.greenlight.yml
@@ -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
diff --git a/docker-compose.yml b/docker-compose.yml
index df0498c..e81badf 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -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:
diff --git a/mod/core/README.md b/mod/core/README.md
new file mode 100644
index 0000000..2f99bb7
--- /dev/null
+++ b/mod/core/README.md
@@ -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)
diff --git a/mod/demo/Dockerfile b/mod/demo/Dockerfile
new file mode 100644
index 0000000..0c3bc79
--- /dev/null
+++ b/mod/demo/Dockerfile
@@ -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
\ No newline at end of file
diff --git a/mod/demo/entrypoint.sh b/mod/demo/entrypoint.sh
new file mode 100755
index 0000000..cb0069a
--- /dev/null
+++ b/mod/demo/entrypoint.sh
@@ -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
\ No newline at end of file
diff --git a/mod/nginx/bbb/demo.nginx b/mod/nginx/bbb/demo.nginx
index 9e6ff55..8b68775 100644
--- a/mod/nginx/bbb/demo.nginx
+++ b/mod/nginx/bbb/demo.nginx
@@ -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;
- }
+ }
diff --git a/mod/nginx/bbb/greenlight.nginx b/mod/nginx/bbb/greenlight.nginx
new file mode 100644
index 0000000..4e648d1
--- /dev/null
+++ b/mod/nginx/bbb/greenlight.nginx
@@ -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;
+}
\ No newline at end of file
diff --git a/mod/nginx/bigbluebutton b/mod/nginx/bigbluebutton
index dbc2534..fbfe289 100644
--- a/mod/nginx/bigbluebutton
+++ b/mod/nginx/bigbluebutton
@@ -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;
- }
}
diff --git a/sample.env b/sample.env
index 6f2661d..7e208e6 100644
--- a/sample.env
+++ b/sample.env
@@ -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 BigBlueButton.
+
+
+
+# -------------------------------
+# 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=
+# SMTP_PASSWORD=
+# 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
\ No newline at end of file