# bbb-docker Development ## Basics normally people start BBB with the pre-built docker images, but for developing you need to build them by yourself. For that you need to ensure that the submodules are also checked out: ```sh $ git submodule update --init ``` ## Running you can run bbb-docker locally without any certificate issues with following `.env` configurations: ``` DEV_MODE=true ENABLE_HTTPS_PROXY=true #ENABLE_COTURN=true #ENABLE_GREENLIGHT=true #ENABLE_WEBHOOKS=true #ENABLE_PROMETHEUS_EXPORTER=true #ENABLE_RECORDING=true DOMAIN=10.7.7.1 EXTERNAL_IPv4=10.7.7.1 STUN_IP=216.93.246.18 STUN_PORT=3478 TURN_SERVER=turns:localhost:5349?transport=tcp TURN_SECRET=SuperTurnSecret SHARED_SECRET=SuperSecret ETHERPAD_API_KEY=SuperEtherpadKey RAILS_SECRET=SuperRailsSecret # ==================================== # CUSTOMIZATION # ==================================== [... add rest of sample.env here ...] ``` - regenerate `docker-compose.yml` \ `$ ./scripts/generate-compose` - build the images \ `$ docker-compose build` - you can than start it with \ `$ docker-compose up -d` - view the logs with \ `$ docker-compose logs -f` - and access the API via \ https://mconf.github.io/api-mate/#server=https://10.7.7.1/bigbluebutton/api&sharedSecret=SuperSecret * At some point your browser will warn you about an invalid certificate, but you can press _"Accept the Risk and Continue" / "Proceed to 10.7.7.1 (unsafe)"_ ## Notes - Joining a room via Greenlight currently leads to a "401 session not found" error (see https://github.com/alangecker/bigbluebutton-docker/issues/66). Use the API Mate instead ## Changes - After doing some changes you usually must... - recreate `docker-compose.yml` \ `$ ./scripts/generate-compose` * rebuild the image(s): \ `$ docker-compose build [containername]` * restart changes image(s): \ `$ docker-compose up -d` ## How to do create a new update for a newer BBB release? This always consists out of following steps 1. **Get an understanding about changes that happened and find out what changes to bbb-docker that require.** \ * main source for that are the release notes in https://github.com/bigbluebutton/bigbluebutton/releases 2. **Apply these changes to this project.** * Often you only need to update the TAGS in `tags.env` * make sure only to switch to a newer tag if there were changes made avoid creating new (partialy big) images unnecessarily * Also update submodules to the new state. * List of all submodules `git submodule` * for the main submodules you can use `./scripts/checkout-submodules` to checkout the tags specified in `tags.env` 3. Test everything (with firefox **and** chromium/chrome) * Audio * Video * Presentation upload * Shared Notes 4. Create a `CHANGELOG.md` entry 5. Create a Pull Request 6. Receive big thanks from @alangecker