Unofficial docker image for Mconf Web Conferencing Platform for BigBlueButton.
This repository contains the Dockerfile and all other files needed to build the
image and launch a full blown web video conferencing platform. More info about
Mconf can be found at: http://www.mconf.org
We use docker-compose
to build and run the images. Clone this repo and then:
cd docker-mconf-web
sudo docker-compose build
If you don't want to build the image and just use the images available at docker hub then
you can use this other docker-compose.yml
file, and bring up the containers like this:
sudo docker-compose -f docker-compose-prod.yml up
Upon container startup, the images of other needed container will be pulled, like:
SMTP relay, a redis container, a Mariadb database, a nginx proxy server, and a bigbluebutton server.
By default, when the Mconf container is run it will be configured according to the
setup_conf.yml
configuration file. The database configuration file database.yml
is already configured to use the included mariadb
container, it only needs to be
configured if you plan to use another database.
If you are building a derived image from this one you can add your own custom
configuration file in the Dockerfile
, copying them to /var/www/mconf-web/config/
. If
not you can use the following environment variables to configure the container
in the file docker-compose.yml
:
MCONF_DB_PASSWORD
: Mconf user database password. By default is set tochangeme
.MYSQL_ROOT_PASSWORD
: database root user password needed to create the database and fill it up. Default password is alsochangeme
, to change it, change it on themariadb
service definition (look at thedocker-compose.yml
files for an example).
MCONF_ADMIN_USERNAME
MCONF_ADMIN_EMAIL
MCONF_ADMIN_PASSWORD
MCONF_ADMIN_NAME
MCONF_SITE_NAME
MCONF_SITE_DESC
MCONF_SITE_LOCALE
available languages are en, es-419 and pt-br (default is en).MCONF_SITE_DOMAIN
MCONF_SITE_FEEDBACK_URL
MCONF_SITE_ANALYTICS_CODE
MCONF_SITE_SIGNATURE
MCONF_SITE_SSL
MCONF_DISABLE_REGISTRATION
Disable user registration.
We use a SMTP Relay container to send notification emails. This only need to be set if the included postfix container isn't used.
MCONF_SITE_SMTP_SERVER
MCONF_SITE_SMTP_PORT
MCONF_SITE_SMTP_DOMAIN
MCONF_SITE_SMTP_SENDER
MCONF_SITE_SMTP_USE_TLS
MCONF_SITE_SMTP_AUTO_TLS
MCONF_SITE_SMTP_AUTH_TYPE
MCONF_WEBCONF_NAME
Name for the BigBlueButton server.MCONF_WEBCONF_SERVER
BigBlueButton server hostname.MCONF_WEBCONF_SALT
Salt of the BigBlueButton server.MCONF_WEBCONF_VERSION
version of the BigBlueButton server. This one is optional.
If there's linked a BigBlueButton container then there's no need to set MCONF_WEBCONF_SERVER as mconf will be automatically configured to use the linked container.
We also include a redis
container so the following variables only need to be set
if you plan to use a different one:
MCONF_REDIS_HOST
MCONF_REDIS_PORT
MCONF_REDIS_DB
MCONF_REDIS_PASSWORD
The default database password is changeme
, to change it, edit the docker-compose.yml
file and change the MYSQL_ROOT_PASSWORD
environment variable on the mariadb
image definition before running docker-compose
.
Use this docker-compose.yml
file that points to pre-built images to be pulled from docker hub and run instead of
building them:
sudo docker-compose -f docker-compose-prod.yml up
This docker compose file will pull all needed pieces as mentioned before, including
the proxy container. This one is needed to be able to run both mconf-web and the
BigBlueButton container on the same host. The proxy is based on jwilder/nginx-proxy
and increases client_max_body_size=10m
to allow bigger presentation uploads. To
use it we need to define an environment variable called VIRTUAL_HOST on the mconf
and BigBlueButton services with the DNS hostname of each of them as their value. By
default default VIRTUAL_HOST is set to mconf.example.com and bbb.example.com
respectively.
After the containers finish starting up you can access the Mconf portal at:
or whatever other hostname you specified on the VIRTUAL_HOST environment variables
for mconf-web
and BigBlueButton
services. If you are just testing you could add
mconf.example.com
and bbb.example.com
to your /etc/hosts
file pointing to your
docker machine and test it.
I have included backup and restore scripts to backup an mconf install including
the database contents. Scripts are still very basic, there's lots of room for
improvement. Use them at your own risk.
On a running Mconf container exec the following script:
sudo docker exec mconfweb_mconf_1 /mconf_backup.sh
The backup script will create a tarball and copy it to /data/backups
which you
can host mount to have access to the backup files from the docker host. The
backup directory can be changed with the MCONF_BACKUP_DIR environment variable.
To restore a backup file created with the previous backup script, two environment variables need to be set:
MCONF_RESTORE=yes
Will restore the backup specified byMCONF_RESTORE_FILE
environment variable.MCONF_RESTORE_FILE
is the backup name to restore, compressed as a bz2 file. Backups must be inside the/data/backups
directory.
You need to mount that backups volume from somewhere, it can be from another volume (using --volumes-from) or mounting a host volume which contains the backup files.