diff --git a/.gitmodules b/.gitmodules
index cc00452..9065c08 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,18 +1,24 @@
-[submodule "bbb-webrtc-sfu"]
- path = mod/webrtc-sfu/bbb-webrtc-sfu
- url = https://github.com/bigbluebutton/bbb-webrtc-sfu.git
-[submodule "mod/etherpad/bbb-etherpad-skin"]
- path = mod/etherpad/bbb-etherpad-skin
+[submodule "repos/bbb-etherpad-skin"]
+ path = repos/bbb-etherpad-skin
url = https://github.com/alangecker/bbb-etherpad-skin
-[submodule "mod/etherpad/bbb-etherpad-plugin"]
- path = mod/etherpad/bbb-etherpad-plugin
+[submodule "repos/bbb-etherpad-plugin"]
+ path = repos/bbb-etherpad-plugin
url = https://github.com/alangecker/bbb-etherpad-plugin
-[submodule "mod/bbb-pads/bbb-pads"]
- path = mod/bbb-pads/bbb-pads
- url = https://github.com/bigbluebutton/bbb-pads
-[submodule "mod/webhooks/bbb-webhooks"]
- path = mod/webhooks/bbb-webhooks
+[submodule "repos/bbb-webhooks"]
+ path = repos/bbb-webhooks
url = https://github.com/bigbluebutton/bbb-webhooks
-[submodule "mod/nginx/bbb-playback"]
- path = mod/nginx/bbb-playback
+[submodule "repos/bbb-playback"]
+ path = repos/bbb-playback
url = https://github.com/bigbluebutton/bbb-playback
+[submodule "repos/freeswitch"]
+ path = repos/freeswitch
+ url = https://github.com/signalwire/freeswitch.git
+[submodule "repos/bigbluebutton"]
+ path = repos/bigbluebutton
+ url = https://github.com/bigbluebutton/bigbluebutton.git
+[submodule "repos/bbb-webrtc-sfu"]
+ path = repos/bbb-webrtc-sfu
+ url = https://github.com/bigbluebutton/bbb-webrtc-sfu.git
+[submodule "repos/bbb-pads"]
+ path = repos/bbb-pads
+ url = https://github.com/bigbluebutton/bbb-pads.git
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4e34846..5862751 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
## Unreleased
+## Release v2.7.3 (2023-12-08)
+
+**Breaking change!** make sure to read the [upgrading notes](https://github.com/bigbluebutton/docker/blob/develop/docs/upgrading.md)
+
+- BigBlueButton 2.7.3 @alangecker [#304](https://github.com/bigbluebutton/docker/pull/304)
+- use local sources instead of pulling inside container @alangecker [#307](https://github.com/bigbluebutton/docker/pull/307)
+- BigBlueButton 2.7.0 @alangecker [#291](https://github.com/bigbluebutton/docker/pull/291)
+- Update to ComposeV2 @leonidas-o [#271](https://github.com/bigbluebutton/docker/pull/271)
+- recordings: fix for missing `SHARED_SECRET` @ichdasich [#274](https://github.com/bigbluebutton/docker/issues/274) [#268](https://github.com/bigbluebutton/docker/issues/268)
+- Add RESOLVER_ADDRESS to env for docker-nginx-auto-ssl @pkolmann [#277](https://github.com/bigbluebutton/docker/pull/277)
+- Fix learning-dashboard @yanus [#262](https://github.com/bigbluebutton/docker/pull/262)
+
## Release v2.6.0-2 (2023-04-04)
- hotfix for broken freeswitch container due to enabled compresion with max file count == 1 [#260](https://github.com/bigbluebutton/docker/issues/260)
diff --git a/README.md b/README.md
index b0e3d9a..0a0ebf4 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-# 📦 BigBlueButton 2.6 Docker
+# 📦 BigBlueButton 2.7 Docker
-Version: 2.6.0 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues)
+Version: 2.7.3 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues)
## Features
- Easy installation
@@ -13,22 +13,28 @@ Version: 2.6.0 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigblue
- Full IPv6 support
- Runs on any major linux distributon (Debian, Ubuntu, CentOS,...)
+## Requirements
+- 4GB of RAM
+- Linux (it will not work under WSL)
+- Root access (bbb-docker uses host networking, so it won't work with Kubernetes, any "CaaS"-Service, etc.)
+- Public IPv4 (expect issues with a firewall / NAT)
+
## What is not implemented yet
- bbb-lti
## Install
-1. Install docker-ce & docker-compose
+1. Install docker-ce & docker-compose-plugin
1. follow instructions
* Debian: https://docs.docker.com/engine/install/debian/
* CentOS: https://docs.docker.com/engine/install/centos/
* Fedora: https://docs.docker.com/engine/install/fedora/
* Ubuntu: https://docs.docker.com/engine/install/ubuntu/
2. Ensure docker works with `$ docker run hello-world`
- 3. Install docker-compose: https://docs.docker.com/compose/install/
- 4. Ensure docker-compose works and that you use a version ≥ 1.28 : `$ docker-compose --version`
+ 3. Install docker compose V2: https://docs.docker.com/compose/install/
+ 4. Ensure docker compose works and that you use a version ≥ 1.28 : `$ docker compose --version`
2. Clone this repository
```sh
- $ git clone --recurse-submodules https://github.com/bigbluebutton/docker.git bbb-docker
+ $ git clone https://github.com/bigbluebutton/docker.git bbb-docker
$ cd bbb-docker
# use the more stable main branch (sometimes older)
@@ -46,11 +52,11 @@ Version: 2.6.0 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigblue
```
5. Start containers:
```bash
- $ docker-compose up -d
+ $ docker compose up -d --no-build
```
6. If you use greenlight, you can create an admin account with:
```bash
- $ docker-compose exec greenlight bundle exec rake admin:create
+ $ docker compose exec greenlight bundle exec rake admin:create
```
## Further How-To's
diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml
index 0d56003..aef1b68 100644
--- a/docker-compose.tmpl.yml
+++ b/docker-compose.tmpl.yml
@@ -9,10 +9,12 @@ version: '3.6'
x-html5-backend: &html5backend
build:
context: mod/html5
+ additional_contexts:
+ - source=./repos/bigbluebutton/bigbluebutton-html5
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_HTML5: {{ .Env.TAG_HTML5 }}
- image: alangecker/bbb-docker-html5:{{ .Env.TAG_HTML5 }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ TAG_BBB: {{ .Env.TAG_BBB }}
+ image: alangecker/bbb-docker-html5:{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- redis
@@ -44,11 +46,13 @@ services:
bbb-web:
build:
context: mod/bbb-web
+ additional_contexts:
+ - src-web=./repos/bigbluebutton/bigbluebutton-web
+ - src-common-message=./repos/bigbluebutton/bbb-common-message
+ - src-common-web=./repos/bigbluebutton/bbb-common-web
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_COMMON_MESSAGE: {{ .Env.TAG_COMMON_MESSAGE }}
- TAG_BBB_WEB: {{ .Env.TAG_BBB_WEB }}
- image: alangecker/bbb-docker-web:{{ .Env.TAG_BBB_WEB }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ image: alangecker/bbb-docker-web:{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- redis
@@ -106,12 +110,13 @@ services:
container_name: bbb-freeswitch
build:
context: mod/freeswitch
+ additional_contexts:
+ - freeswitch=./repos/freeswitch/
+ - build-files=./repos/bigbluebutton/build/packages-template/bbb-freeswitch-core/
+ - fs-config=./repos/bigbluebutton/bbb-voice-conference/config/freeswitch/conf/
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_FS_BUILD_FILES: {{ .Env.TAG_FS_BUILD_FILES }}
- TAG_FS_CONFIG: {{ .Env.TAG_FS_CONFIG }}
- TAG_FREESWITCH: {{ .Env.TAG_FREESWITCH }}
- image: alangecker/bbb-docker-freeswitch:{{ .Env.TAG_FS_CONFIG }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ image: alangecker/bbb-docker-freeswitch:{{ .Env.TAG_FREESWITCH }}-{{ .Env.TAG_BBB }}
restart: unless-stopped
cap_add:
- IPC_LOCK
@@ -135,7 +140,7 @@ services:
- vol-freeswitch:/var/freeswitch/meetings
network_mode: host
logging:
- # reduce logs to a minimum, so `docker-compose logs -f` still works
+ # reduce logs to a minimum, so `docker compose logs -f` still works
driver: "local"
options:
max-size: "10k"
@@ -145,10 +150,12 @@ services:
nginx:
build:
context: mod/nginx
+ additional_contexts:
+ - src-learning-dashboard=./repos/bigbluebutton/bbb-learning-dashboard
+ - src-playback=./repos/bbb-playback
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_LEARNING_DASHBOARD: {{ .Env.TAG_LEARNING_DASHBOARD }}
- image: alangecker/bbb-docker-nginx:1.23-{{ .Env.TAG_PLAYBACK }}-{{ .Env.TAG_LEARNING_DASHBOARD }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ image: alangecker/bbb-docker-nginx:1.23-{{ .Env.TAG_PLAYBACK }}-{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- etherpad
@@ -168,8 +175,14 @@ services:
- "greenlight:10.7.7.21"
etherpad:
- build: mod/etherpad
- image: alangecker/bbb-docker-etherpad:1.8.18-3
+ build:
+ context: mod/etherpad
+ additional_contexts:
+ - plugin=./repos/bbb-etherpad-plugin
+ - skin=./repos/bbb-etherpad-skin
+ args:
+ TAG_ETHERPAD: "1.9.1"
+ image: alangecker/bbb-docker-etherpad:1.9.1-s{{ .Env.COMMIT_ETHERPAD_SKIN }}-p{{ .Env.COMMIT_ETHERPAD_PLUGIN }}
restart: unless-stopped
depends_on:
- redis
@@ -180,7 +193,10 @@ services:
ipv4_address: 10.7.7.4
bbb-pads:
- build: mod/bbb-pads
+ build:
+ context: mod/bbb-pads
+ additional_contexts:
+ - src=./repos/bbb-pads
image: alangecker/bbb-docker-pads:{{ .Env.TAG_PADS }}
restart: unless-stopped
depends_on:
@@ -193,7 +209,7 @@ services:
ipv4_address: 10.7.7.18
redis:
- image: redis:7.0-alpine
+ image: redis:7.2-alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
@@ -232,18 +248,23 @@ services:
webrtc-sfu:
build:
context: mod/webrtc-sfu
+ additional_contexts:
+ - source=./repos/bbb-webrtc-sfu
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
image: alangecker/bbb-docker-webrtc-sfu:{{ .Env.TAG_WEBRTC_SFU }}
restart: unless-stopped
depends_on:
- redis
- freeswitch
+ - kurento
environment:
CLIENT_HOST: 10.7.7.1
REDIS_HOST: 10.7.7.5
FREESWITCH_IP: 10.7.7.1
FREESWITCH_SIP_IP: ${EXTERNAL_IPv4}
+ MCS_HOST: 0.0.0.0
+ MCS_ADDRESS: 127.0.0.1
ESL_IP: 10.7.7.1
ESL_PASSWORD: ${FSESL_PASSWORD:-ClueCon}
# TODO: add mediasoup IPv6
@@ -263,11 +284,13 @@ services:
fsesl-akka:
build:
context: mod/fsesl-akka
+ additional_contexts:
+ - src-common-message=./repos/bigbluebutton/bbb-common-message
+ - src-fsesl-client=./repos/bigbluebutton/bbb-fsesl-client
+ - src-fsesl-akka=./repos/bigbluebutton/akka-bbb-fsesl
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_COMMON_MESSAGE: {{ .Env.TAG_COMMON_MESSAGE }}
- TAG_FSESL_AKKA: {{ .Env.TAG_FSESL_AKKA }}
- image: alangecker/bbb-docker-fsesl-akka:{{ .Env.TAG_FSESL_AKKA }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ image: alangecker/bbb-docker-fsesl-akka:{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- redis
@@ -281,11 +304,12 @@ services:
apps-akka:
build:
context: mod/apps-akka
+ additional_contexts:
+ - src-common-message=./repos/bigbluebutton/bbb-common-message
+ - src-apps-akka=./repos/bigbluebutton/akka-bbb-apps
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_COMMON_MESSAGE: {{ .Env.TAG_COMMON_MESSAGE }}
- TAG_APPS_AKKA: {{ .Env.TAG_APPS_AKKA }}
- image: alangecker/bbb-docker-apps-akka:{{ .Env.TAG_APPS_AKKA }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ image: alangecker/bbb-docker-apps-akka:{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- redis
@@ -316,7 +340,7 @@ services:
periodic:
build: mod/periodic
- image: alangecker/bbb-docker-periodic:v2.5.0-rc.1
+ image: alangecker/bbb-docker-periodic:v2.7.0
restart: unless-stopped
depends_on:
- mongodb
@@ -339,17 +363,21 @@ services:
recordings:
build:
context: mod/recordings
+ additional_contexts:
+ - record-core=./repos/bigbluebutton/record-and-playback/core
+ - presentation=./repos/bigbluebutton/record-and-playback/presentation
+ - bbb-conf=./repos/bigbluebutton/bigbluebutton-config
args:
- BBB_BUILD_TAG: {{ .Env.BBB_BUILD_TAG }}
- TAG_RECORDINGS: {{ .Env.TAG_RECORDINGS }}
- TAG_BBB_PRESENTATION_VIDEO: {{ .Env.TAG_BBB_PRESENTATION_VIDEO }}
- image: alangecker/bbb-docker-recordings:{{ .Env.TAG_RECORDINGS }}
+ BBB_BUILD_TAG: bbb27-2023-06-13-java17
+ TAG_BBB_PRESENTATION_VIDEO: "4.0.3"
+ image: alangecker/bbb-docker-recordings:{{ .Env.TAG_BBB }}
restart: unless-stopped
depends_on:
- redis
- bbb-pads
environment:
DOMAIN: ${DOMAIN}
+ SHARED_SECRET: ${SHARED_SECRET}
volumes:
- bigbluebutton:/var/bigbluebutton
- vol-freeswitch:/var/freeswitch/meetings
@@ -366,7 +394,10 @@ services:
{{ if isTrue .Env.ENABLE_WEBHOOKS }}
# webhooks
webhooks:
- build: mod/webhooks
+ build:
+ context: mod/webhooks
+ additional_contexts:
+ - src=./repos/bbb-webhooks
image: alangecker/bbb-docker-webhooks:{{ .Env.TAG_WEBHOOKS }}
restart: unless-stopped
environment:
@@ -401,6 +432,7 @@ services:
{{else}}
ALLOWED_DOMAINS: ${DOMAIN}
{{end}}
+ RESOLVER_ADDRESS: ${RESOLVER_ADDRESS:-9.9.9.9}
network_mode: host
{{end}}
@@ -432,7 +464,7 @@ services:
{{ if isTrue .Env.ENABLE_GREENLIGHT }}
# greenlight
greenlight:
- image: bigbluebutton/greenlight:{{ .Env.TAG_GREENLIGHT }}-alpine
+ image: bigbluebutton/greenlight:v3.0.6.1
restart: unless-stopped
env_file: .env
depends_on:
@@ -449,6 +481,7 @@ services:
{{end}}
BIGBLUEBUTTON_SECRET: ${SHARED_SECRET}
SECRET_KEY_BASE: ${RAILS_SECRET}
+ RELATIVE_URL_ROOT: /
volumes:
- ./greenlight-data:/usr/src/app/storage
networks:
@@ -490,6 +523,11 @@ services:
volumes:
- bigbluebutton:/var/bigbluebutton:ro
{{end}}
+
+ # the exporter requires /etc/bigbluebutton/bigbluebutton-release
+ tmpfs:
+ - /etc/bigbluebutton:mode=777
+ entrypoint: sh -c 'echo "BIGBLUEBUTTON_RELEASE=2.7.3" > /etc/bigbluebutton/bigbluebutton-release && python server.py'
{{end}}
diff --git a/docs/development.md b/docs/development.md
index f499f00..c791b1b 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -42,11 +42,11 @@ RAILS_SECRET=SuperRailsSecret_SuperRailsSecret
- regenerate `docker-compose.yml` \
`$ ./scripts/generate-compose`
- build the images \
- `$ docker-compose build`
+ `$ docker compose build`
- you can than start it with \
- `$ docker-compose up -d`
+ `$ docker compose up -d`
- view the logs with \
- `$ docker-compose logs -f`
+ `$ 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)"_
@@ -60,9 +60,9 @@ RAILS_SECRET=SuperRailsSecret_SuperRailsSecret
- recreate `docker-compose.yml` \
`$ ./scripts/generate-compose`
* rebuild the image(s): \
- `$ docker-compose build [containername]`
+ `$ docker compose build [containername]`
* restart changes image(s): \
- `$ docker-compose up -d`
+ `$ docker compose up -d`
## How to do create a new update for a newer BBB release?
@@ -70,12 +70,8 @@ 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`
-
+ * Often you only need to checkout the git submodules to the specific release tag
+ * List of all submodules: `git submodule`
3. Test everything (with firefox **and** chromium/chrome)
* Audio
* Video
diff --git a/docs/upgrading.md b/docs/upgrading.md
index 92bd003..0000c33 100644
--- a/docs/upgrading.md
+++ b/docs/upgrading.md
@@ -1,16 +1,22 @@
# How To Upgrade bbb-docker
+### Upgrading from `v2.6.x`
+- **Breaking change:** We use now Docker Compose V2
+ * make sure you have docker ≥ 23.0 installed (`$ docker -v`)
+ * update all usages of `docker-compose` to `docker compose` in your scripts
-### Upgrading `v2.5.x` -> `v2.6.x`
+apart from that follow the guide (_within v2.7.x_) below.
-- *Breaking change:* Greenlight got fully rewritten
+### Upgrading from `v2.5.x`
+
+- **Breaking change:** Greenlight got fully rewritten
* it is starting as a fresh installation. you can migrate your data with `./scripts/greenlight-migrate-v2-v3`
* some greenlight settings under `.env` have changed. compare your version with `sample.env`
* it is now served directly under `/` and not in `/b`. If you use an reverse proxy not included in this repo, ensure to update your config accordingly!
apart from that follow the guide below.
-### within `v2.6.x`
+### within `v2.7.x`
#### Backup
if you use greenlight, create a database backup first
```bash
@@ -23,5 +29,5 @@ docker exec -t docker_postgres_1 pg_dumpall -c -U postgres > /root/greenlight_`d
./scripts/upgrade
# restart updated services
-docker-compose up -d
+docker compose up -d --no-build
```
diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile
index 3ad648e..fcd876c 100644
--- a/mod/apps-akka/Dockerfile
+++ b/mod/apps-akka/Dockerfile
@@ -1,20 +1,16 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
-ARG TAG_COMMON_MESSAGE
+COPY --from=src-common-message / /bbb-common-message
-# download bbb-common-message
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
- && cd /bbb-common-message \
- && ./deploy.sh \
- && rm -rf /bbb-common-message
+# build bbb-common-message
+RUN cd /bbb-common-message && ./deploy.sh
# ===================================================
ARG TAG_APPS_AKKA
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_APPS_AKKA/akka-bbb-apps /source \
- && rm -rf /source/.svn
+COPY --from=src-apps-akka / /source
# compile and unzip bin
RUN cd /source \
diff --git a/mod/base-java/Dockerfile b/mod/base-java/Dockerfile
index 571126c..154e876 100644
--- a/mod/base-java/Dockerfile
+++ b/mod/base-java/Dockerfile
@@ -1,4 +1,4 @@
-FROM openjdk:11-jre-slim-bullseye
+FROM eclipse-temurin:17-jre-jammy
RUN apt-get update && apt-get install -y \
wget unzip gosu locales \
diff --git a/mod/bbb-pads/Dockerfile b/mod/bbb-pads/Dockerfile
index fe63b9b..6109675 100644
--- a/mod/bbb-pads/Dockerfile
+++ b/mod/bbb-pads/Dockerfile
@@ -1,13 +1,13 @@
-FROM node:16-bullseye-slim AS builder
+FROM node:18-bullseye-slim AS builder
-COPY ./bbb-pads /bbb-pads
+COPY --from=src / /bbb-pads
RUN cd /bbb-pads && rm -r .git && npm install --production
RUN chmod 777 /bbb-pads/config
# ------------------------------
-FROM node:16-bullseye-slim
+FROM node:18-bullseye-slim
RUN apt update && apt install -y jq moreutils \
&& useradd --uid 2003 --create-home --user-group bbb-pads
diff --git a/mod/bbb-pads/bbb-pads b/mod/bbb-pads/bbb-pads
deleted file mode 160000
index 570921c..0000000
--- a/mod/bbb-pads/bbb-pads
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 570921cff678e4e627a37e781c2a33a50be521f2
diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile
index b0f143c..1b636ec 100644
--- a/mod/bbb-web/Dockerfile
+++ b/mod/bbb-web/Dockerfile
@@ -1,29 +1,19 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
-ARG TAG_COMMON_MESSAGE
+COPY --from=src-common-message / /bbb-common-message
-# download bbb-common-message
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
- && cd /bbb-common-message \
- && ./deploy.sh \
- && rm -rf /bbb-common-message
+# build bbb-common-message
+RUN cd /bbb-common-message && ./deploy.sh
# ===================================================
-ARG TAG_BBB_WEB
-# download bbb-common-web
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_BBB_WEB/bbb-common-web /bbb-common-web \
- && rm -rf /bbb-common-message/.svn
+COPY --from=src-common-web / /bbb-common-web
+# build bbb-common-web
+RUN cd /bbb-common-web && ./deploy.sh
-# compile bbb-common-web
-RUN cd /bbb-common-web \
- && ./deploy.sh
-
-# download bbb-web
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_BBB_WEB/bigbluebutton-web /bbb-web \
- && rm -rf /bbb-web/.svn
+COPY --from=src-web / /bbb-web
# compile bbb-web
RUN cd /bbb-web && grails assemble
diff --git a/mod/etherpad/Dockerfile b/mod/etherpad/Dockerfile
index 7573eed..c530952 100644
--- a/mod/etherpad/Dockerfile
+++ b/mod/etherpad/Dockerfile
@@ -1,26 +1,26 @@
-FROM etherpad/etherpad:1.8.18
+ARG TAG_ETHERPAD
+FROM etherpad/etherpad:$TAG_ETHERPAD
USER root
-RUN apt-get update \
- && apt-get install -y git curl
+RUN apk add git curl
USER etherpad
-RUN npm install \
+RUN npm install \
ep_cursortrace@3.1.16 \
git+https://github.com/mconf/ep_pad_ttl.git#360136cd38493dd698435631f2373cbb7089082d \
- git+https://github.com/mconf/ep_redis_publisher.git#a30a48e4bc1e501b5b102884b9a0b26c30798484 \
+ git+https://github.com/mconf/ep_redis_publisher.git#2b6e47c1c59362916a0b2961a29b259f2977b694 \
ep_disable_chat@0.0.8 \
ep_auth_session@1.1.1 \
# remove npm lockfile, because somehow it prevents etherpad from detecting the manual added plugin ep_bigbluebutton_patches
- && rm package-lock.json
+ && rm package-lock.json package.json
# add skin from git submodule
-COPY --chown=etherpad:0 ./bbb-etherpad-skin /opt/etherpad-lite/src/static/skins/bigbluebutton
+COPY --chown=etherpad:0 --from=skin / /opt/etherpad-lite/src/static/skins/bigbluebutton
# add plugin from git submodule
-COPY --chown=etherpad:0 ./bbb-etherpad-plugin /opt/etherpad-lite/node_modules/ep_bigbluebutton_patches
+COPY --chown=etherpad:0 --from=plugin / /opt/etherpad-lite/node_modules/ep_bigbluebutton_patches
COPY settings.json /opt/etherpad-lite/settings.json
COPY etherpad-export.sh /etherpad-export.sh
diff --git a/mod/etherpad/entrypoint.sh b/mod/etherpad/entrypoint.sh
index 7586f6c..79a0ecd 100755
--- a/mod/etherpad/entrypoint.sh
+++ b/mod/etherpad/entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
echo $ETHERPAD_API_KEY > /tmp/apikey
export NODE_ENV=production
diff --git a/mod/etherpad/etherpad-export.sh b/mod/etherpad/etherpad-export.sh
index a1f8f7c..f23c72e 100755
--- a/mod/etherpad/etherpad-export.sh
+++ b/mod/etherpad/etherpad-export.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
src="$8"
dest="$(echo $8 | sed -E -e 's/html|odt/'$7'/')"
convertTo="$7"
diff --git a/mod/etherpad/settings.json b/mod/etherpad/settings.json
index 11442c6..42466c5 100644
--- a/mod/etherpad/settings.json
+++ b/mod/etherpad/settings.json
@@ -89,7 +89,7 @@
*
* "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2"
*/
-{
+ {
/*
* Name your instance!
*/
@@ -198,8 +198,7 @@
"dbType": "redis",
"dbSettings": {
- "host": "redis",
- "port": 6379
+ "url": "redis://redis:6379"
},
/*
@@ -220,9 +219,10 @@
*/
/*
- * The default text of a pad
- */
- "defaultPadText" : "",
+ * The default text of a pad: A zero-width-space is used to work around an issue with Etherpad 1.9.1 where empty pads are not being created.
+ * See: https://github.com/ether/etherpad-lite/issues/5787
+ */
+ "defaultPadText" : "\u200b",
/*
* Default Pad behavior.
@@ -539,7 +539,7 @@
"windowMs": 90000,
// maximum number of requests per IP to allow during the rate limit window
- "max": 10
+ "max": 16
},
/*
@@ -597,7 +597,40 @@
"loglevel": "INFO",
/* Override any strings found in locale directories */
- "customLocaleStrings": {},
+ "customLocaleStrings": {
+ "de": {
+ "pad.importExport.import_export": "Export",
+ "pad.toolbar.import_export.title": "Export zu verschiedenen Dateiformaten"
+ },
+ "en-gb": {
+ "pad.importExport.import_export": "Export",
+ "pad.toolbar.import_export.title": "Export to different file formats"
+ },
+ "en": {
+ "pad.importExport.import_export": "Export",
+ "pad.toolbar.import_export.title": "Export to different file formats"
+ },
+ "es": {
+ "pad.importExport.import_export": "Exportar",
+ "pad.toolbar.import_export.title": "Exportar a diferentes formatos de archivos"
+ },
+ "fr": {
+ "pad.importExport.import_export": "Exporter",
+ "pad.toolbar.import_export.title": "Exporter vers un format de fichier différent"
+ },
+ "it": {
+ "pad.importExport.import_export": "Esportazione",
+ "pad.toolbar.import_export.title": "Esporta a diversi formati di file"
+ },
+ "pt-br": {
+ "pad.importExport.import_export": "Exportar",
+ "pad.toolbar.import_export.title": "Exportar para diferentes formatos de arquivo"
+ },
+ "pt": {
+ "pad.importExport.import_export": "Exportar",
+ "pad.toolbar.import_export.title": "Exportar para diferentes formatos de ficheiro"
+ }
+ },
/* Disable Admin UI tests */
"enableAdminUITests": false
diff --git a/mod/freeswitch/Dockerfile b/mod/freeswitch/Dockerfile
index 6564607..19107e1 100644
--- a/mod/freeswitch/Dockerfile
+++ b/mod/freeswitch/Dockerfile
@@ -1,13 +1,7 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
-ARG TAG_FREESWITCH
-RUN mkdir -p /build/freeswitch && \
- cd /build/freeswitch && \
- git init && \
- git remote add origin https://github.com/signalwire/freeswitch.git && \
- git fetch --depth 1 origin $TAG_FREESWITCH && \
- git checkout FETCH_HEAD
+COPY --from=freeswitch / /build/freeswitch
# install most recent git version for proper sparse-checkout support
# https://stackoverflow.com/questions/72223738/failed-to-initialize-sparse-checkout
@@ -17,12 +11,7 @@ RUN echo 'deb https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main' >
apt-get install -y git
# get build files for bbb-freeswitch (build/packages-template/bbb-freeswitch-core/)
-ARG TAG_FS_BUILD_FILES
-RUN git clone -b $TAG_FS_BUILD_FILES --depth 1 --filter=blob:none --sparse https://github.com/bigbluebutton/bigbluebutton.git /bbb && \
- cd /bbb && \
- git sparse-checkout set build/packages-template/bbb-freeswitch-core/ && \
- cp build/packages-template/bbb-freeswitch-core/* /build/ && \
- rm -rf /bbb
+COPY --from=build-files / /build/
# mock files expected by build.sh
RUN mkdir -p /build/bbb-voice-conference/config/freeswitch/conf/ && \
@@ -33,7 +22,7 @@ RUN mkdir -p /build/bbb-voice-conference/config/freeswitch/conf/ && \
&& \
echo "" > /usr/local/bin/fpm
-
+# build freeswitch
RUN cd /build && ./build.sh
@@ -48,13 +37,7 @@ RUN mkdir -p /build/staging/opt/freeswitch/share/freeswitch && \
# add bigblugbutton config
ARG TAG_FS_CONFIG
-RUN git clone -b $TAG_FS_CONFIG --depth 1 --filter=blob:none --sparse https://github.com/bigbluebutton/bigbluebutton.git /bbb && \
- cd /bbb && \
- git sparse-checkout set bbb-voice-conference/config/freeswitch/conf/ && \
- cp -r /bbb/bbb-voice-conference/config/freeswitch/conf/* /build/staging/opt/freeswitch/etc/freeswitch/
-
-
-
+COPY --from=fs-config / /build/staging/opt/freeswitch/etc/freeswitch/
# ===============================================
@@ -66,9 +49,9 @@ RUN apt-get update && \
libfreetype6 libcurl4 libspeex1 libspeexdsp1 libopus0 libsndfile1 libopusfile0 liblua5.2-0 libjbig0 libldns2 libedit2 libtiff5 libpng16-16 \
&& \
# install libopusenc0
- wget -O /tmp/libopusenc0_0.2.1-1bbb1_amd64.deb https://launchpad.net/~bigbluebutton/+archive/ubuntu/support/+files/libopusenc0_0.2.1-1bbb1_amd64.deb \
- && dpkg -i /tmp/libopusenc0_0.2.1-1bbb1_amd64.deb \
- && rm /tmp/libopusenc0_0.2.1-1bbb1_amd64.deb
+ wget -O /tmp/libopusenc0_0.2.1-1bbb2_amd64.deb https://launchpad.net/~bigbluebutton/+archive/ubuntu/support/+files/libopusenc0_0.2.1-1bbb2_amd64.deb \
+ && dpkg -i /tmp/libopusenc0_0.2.1-1bbb2_amd64.deb \
+ && rm /tmp/libopusenc0_0.2.1-1bbb2_amd64.deb
# add dockerize
COPY --from=alangecker/bbb-docker-base-java /usr/local/bin/dockerize /usr/local/bin/dockerize
diff --git a/mod/freeswitch/conf/autoload_configs/modules.conf.xml b/mod/freeswitch/conf/autoload_configs/modules.conf.xml
index f30804c..36f5d4b 100644
--- a/mod/freeswitch/conf/autoload_configs/modules.conf.xml
+++ b/mod/freeswitch/conf/autoload_configs/modules.conf.xml
@@ -13,6 +13,7 @@
+
diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile
index 61494d1..8f66f59 100644
--- a/mod/fsesl-akka/Dockerfile
+++ b/mod/fsesl-akka/Dockerfile
@@ -1,24 +1,16 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
-ARG TAG_COMMON_MESSAGE
+COPY --from=src-common-message / /bbb-common-message
-# download bbb-common-message
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \
- && cd /bbb-common-message \
- && ./deploy.sh \
- && rm -rf /bbb-common-message
+# build bbb-common-message
+RUN cd /bbb-common-message && ./deploy.sh
# ===================================================
-ARG TAG_FSESL_AKKA
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL_AKKA/bbb-fsesl-client /bbb-fsesl-client \
- && rm -rf /bbb-fsesl-client/.svn
+COPY --from=src-fsesl-client / /bbb-fsesl-client
+RUN cd /bbb-fsesl-client && ./deploy.sh
-RUN cd /bbb-fsesl-client \
- && ./deploy.sh
-
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL_AKKA/akka-bbb-fsesl /source \
- && rm -rf /source/.svn
+COPY --from=src-fsesl-akka / /source
# compile and unzip bin
RUN cd /source \
diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile
index 92ebb7c..5f092c0 100644
--- a/mod/html5/Dockerfile
+++ b/mod/html5/Dockerfile
@@ -1,13 +1,13 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
# RUN groupadd -g 2000 meteor && useradd -m -u 2001 -g meteor meteor
# USER meteor
ARG TAG_HTML5
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_HTML5/bigbluebutton-html5 /source \
- && cd /source \
- && meteor npm ci --production \
+
+COPY --from=source ./ /source
+RUN cd /source && meteor npm ci --production \
&& METEOR_DISABLE_OPTIMISTIC_CACHING=1 meteor build --architecture os.linux.x86_64 --allow-superuser --directory /app \
&& rm -rf /source
@@ -17,14 +17,14 @@ RUN cd /app/bundle/programs/server \
RUN mkdir -p /app/bundle/programs/web.browser/app/files && \
cp /app/bundle/programs/server/npm/node_modules/@fontsource/*/files/*.woff* /app/bundle/programs/web.browser/app/files/
-RUN sed -i "s/VERSION/$TAG_HTML5/" /app/bundle/programs/web.browser/head.html \
+RUN sed -i "s/VERSION/$TAG_BBB/" /app/bundle/programs/web.browser/head.html \
&& find /app/bundle/programs/web.browser -name '*.js' -exec gzip -k -f -9 '{}' \; \
&& find /app/bundle/programs/web.browser -name '*.css' -exec gzip -k -f -9 '{}' \; \
&& find /app/bundle/programs/web.browser -name '*.wasm' -exec gzip -k -f -9 '{}' \;
# ------------------------------
-FROM node:14-bullseye-slim
+FROM node:14.21-bullseye-slim
RUN apt-get update && apt-get install -y gosu
@@ -37,4 +37,8 @@ COPY --from=builder --chown=meteor:meteor /app/bundle /app
COPY entrypoint.sh /entrypoint.sh
COPY bbb-html5.yml /app/bbb-html5.yml.tmpl
+# expose TAG_BBB in container for the version display
+ARG TAG_BBB
+ENV TAG_BBB $TAG_BBB
+
ENTRYPOINT ["/entrypoint.sh"]
diff --git a/mod/html5/bbb-html5.yml b/mod/html5/bbb-html5.yml
index baf6de8..17db535 100644
--- a/mod/html5/bbb-html5.yml
+++ b/mod/html5/bbb-html5.yml
@@ -1,5 +1,6 @@
public:
app:
+ html5ClientBuild: {{ .Env.TAG_HTML5 }}
bbbServerVersion: {{ .Env.TAG_HTML5 }}-docker
listenOnlyMode: {{ .Env.LISTEN_ONLY_MODE }}
skipCheck: {{ .Env.DISABLE_ECHO_TEST }}
diff --git a/mod/jodconverter/Dockerfile b/mod/jodconverter/Dockerfile
index fdbab6f..8ae7e27 100644
--- a/mod/jodconverter/Dockerfile
+++ b/mod/jodconverter/Dockerfile
@@ -1,6 +1,6 @@
-FROM eugenmayer/jodconverter:rest
+FROM ghcr.io/jodconverter/jodconverter-examples:rest
RUN echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections
-RUN sed -i 's/main/main contrib/' /etc/apt/sources.list && apt-get update
+RUN sed -i 's/main/main contrib/' /etc/apt/sources.list.d/debian.sources && apt-get update
RUN apt-get update && apt -y install --no-install-recommends \
fonts-arkpandora \
fonts-crosextra-carlito \
diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile
index 7e6922a..091ebde 100644
--- a/mod/nginx/Dockerfile
+++ b/mod/nginx/Dockerfile
@@ -1,18 +1,17 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
# --------------------
-ARG TAG_LEARNING_DASHBOARD
-RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_LEARNING_DASHBOARD/bbb-learning-dashboard /bbb-learning-dashboard && rm -r /bbb-learning-dashboard/.svn
+COPY --from=src-learning-dashboard / /bbb-learning-dashboard
RUN cd /bbb-learning-dashboard && npm ci && npm run build
-COPY ./bbb-playback /bbb-playback
-RUN cd /bbb-playback && npm ci && npm run build
+COPY --from=src-playback / /bbb-playback
+RUN cd /bbb-playback && npm install && npm run-script build
# --------------------
-FROM nginx:1.23-alpine
+FROM nginx:1.25-alpine
COPY --from=builder /bbb-learning-dashboard/build /www/learning-analytics-dashboard/
COPY --from=builder /bbb-playback/build /www/playback/presentation/2.3
diff --git a/mod/nginx/bbb-playback b/mod/nginx/bbb-playback
deleted file mode 160000
index 2fd02ed..0000000
--- a/mod/nginx/bbb-playback
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2fd02ed28f9b4f423783b1ba5f43135b9548b5e1
diff --git a/mod/nginx/bbb/learning-dashboard.nginx b/mod/nginx/bbb/learning-dashboard.nginx
index d7899bf..2b78e2a 100644
--- a/mod/nginx/bbb/learning-dashboard.nginx
+++ b/mod/nginx/bbb/learning-dashboard.nginx
@@ -1,5 +1,5 @@
location ~ /learning-analytics-dashboard/([0-9a-f]+-[0-9]+)/(.*) {
- root /var/bigbluebutton/learning-analytics-dashboard/;
+ alias /var/bigbluebutton/learning-dashboard/$1/$2;
autoindex off;
}
diff --git a/mod/nginx/bbb/verto.nginx b/mod/nginx/bbb/verto.nginx
deleted file mode 100644
index cfafdab..0000000
--- a/mod/nginx/bbb/verto.nginx
+++ /dev/null
@@ -1,10 +0,0 @@
-location /verto {
- proxy_pass https://host.docker.internal:8082;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "Upgrade";
- proxy_read_timeout 6h;
- proxy_send_timeout 6h;
- client_body_timeout 6h;
- send_timeout 6h;
-}
diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile
index f7e476b..9f08763 100644
--- a/mod/recordings/Dockerfile
+++ b/mod/recordings/Dockerfile
@@ -70,20 +70,10 @@ RUN wget -q -O /tmp/python3-perfect-freehand.deb https://github.com/bigbluebutto
ARG TAG_RECORDINGS
-# add bbb-record-core (lib, scripts and Gemfile)
-RUN cd /usr/local/bigbluebutton/core \
- && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_RECORDINGS/record-and-playback/core/lib \
- && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_RECORDINGS/record-and-playback/core/scripts \
- && rm -rf /usr/local/bigbluebutton/core/*/.svn \
- && wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG_RECORDINGS/record-and-playback/core/Gemfile.lock \
- && wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG_RECORDINGS/record-and-playback/core/Gemfile \
- && wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG_RECORDINGS/record-and-playback/core/Rakefile
+COPY --from=record-core / /usr/local/bigbluebutton/core
# add bbb-playback-presentation scripts
-RUN cd /tmp \
- && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_RECORDINGS/record-and-playback/presentation/scripts \
- && rsync -av /tmp/scripts/ /usr/local/bigbluebutton/core/scripts/ \
- && rm -rf /tmp/scripts
+COPY --from=presentation /scripts /usr/local/bigbluebutton/core/scripts/
# install ruby dependencies
RUN cd /usr/local/bigbluebutton/core \
@@ -105,8 +95,8 @@ RUN sed -i 's|Journald::Logger\.new.*|Logger.new("/var/log/bigbluebutton/recordi
sed -i 's|Logger\.new.*|Logger.new("/var/log/bigbluebutton/recording.log")|g' /usr/local/bigbluebutton/core/scripts/process/presentation.rb
# add bbb-record with some adjustments so bbb-record works in this environment
+COPY --from=bbb-conf /bin/bbb-record /usr/bin/bbb-record
RUN cd /usr/bin \
- && wget https://raw.githubusercontent.com/bigbluebutton/bigbluebutton/$TAG_RECORDINGS/bigbluebutton-config/bin/bbb-record \
&& chmod +x /usr/bin/bbb-record \
&& sed -i 's/^BBB_WEB.*/BBB_WEB=""/' /usr/bin/bbb-record \
&& sed -i 's/systemctl.*//' /usr/bin/bbb-record \
diff --git a/mod/recordings/bbb-web.properties b/mod/recordings/bbb-web.properties
index c36b7e6..e891d1c 100644
--- a/mod/recordings/bbb-web.properties
+++ b/mod/recordings/bbb-web.properties
@@ -1 +1,2 @@
+bigbluebutton.web.serverURL=https://{{ .Env.DOMAIN }}
securitySalt={{ .Env.SHARED_SECRET }}
\ No newline at end of file
diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile
index 782b6a9..f0aaa9f 100644
--- a/mod/webhooks/Dockerfile
+++ b/mod/webhooks/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:16-bullseye-slim AS builder
+FROM node:18-bullseye-slim AS builder
RUN apt-get update && apt-get install -y git wget
@@ -6,13 +6,13 @@ RUN apt-get update && apt-get install -y git wget
RUN wget -q https://github.com/mikefarah/yq/releases/download/v4.25.1/yq_linux_amd64 -O /usr/bin/yq \
&& chmod +x /usr/bin/yq
-COPY ./bbb-webhooks /bbb-webhooks
+COPY --from=src / /bbb-webhooks
RUN cd /bbb-webhooks && npm install --production
RUN chmod 777 /bbb-webhooks/config
# ------------------------------
-FROM node:16-bullseye-slim
+FROM node:18-bullseye-slim
RUN useradd --uid 2004 --user-group bbb-webhooks
COPY --from=builder /usr/bin/yq /usr/bin/yq
diff --git a/mod/webhooks/bbb-webhooks b/mod/webhooks/bbb-webhooks
deleted file mode 160000
index 2eb5e44..0000000
--- a/mod/webhooks/bbb-webhooks
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2eb5e4471083f9f99e969d5d19a44529ec735808
diff --git a/mod/webrtc-sfu/Dockerfile b/mod/webrtc-sfu/Dockerfile
index 0eb4537..b3f57af 100644
--- a/mod/webrtc-sfu/Dockerfile
+++ b/mod/webrtc-sfu/Dockerfile
@@ -1,20 +1,15 @@
ARG BBB_BUILD_TAG
-FROM gitlab.senfcall.de:5050/senfcall-public/docker-bbb-build:$BBB_BUILD_TAG AS builder
+FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder
RUN useradd --uid 2004 --user-group webrtc-sfu
-ADD ./bbb-webrtc-sfu /app
-
+COPY --from=source / /app
ENV NODE_ENV production
-# due to the git submodule npm install crashes with following error:
-# npm ERR! fatal: Not a git repository: ../.git/modules/bbb-webrtc-sfu
-# we simply delete the .git file
RUN cd /app \
&& cp config/default.example.yml config/production.yml \
- && rm .git \
&& npm install --unsafe-perm \
&& npm cache clear --force \
&& rm -rf node_modules/mediasoup/worker/out/Release/subprojects \
@@ -23,7 +18,7 @@ RUN cd /app \
# =============================
-FROM node:16-bullseye-slim
+FROM node:18-bullseye-slim
RUN useradd --uid 2004 --user-group webrtc-sfu
ENV NODE_ENV production
diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu
deleted file mode 160000
index f74deeb..0000000
--- a/mod/webrtc-sfu/bbb-webrtc-sfu
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f74deebf2fa9ef1fa96b650b9b25c5f32d1b24b5
diff --git a/mod/etherpad/bbb-etherpad-plugin b/repos/bbb-etherpad-plugin
similarity index 100%
rename from mod/etherpad/bbb-etherpad-plugin
rename to repos/bbb-etherpad-plugin
diff --git a/mod/etherpad/bbb-etherpad-skin b/repos/bbb-etherpad-skin
similarity index 100%
rename from mod/etherpad/bbb-etherpad-skin
rename to repos/bbb-etherpad-skin
diff --git a/repos/bbb-pads b/repos/bbb-pads
new file mode 160000
index 0000000..433fe4c
--- /dev/null
+++ b/repos/bbb-pads
@@ -0,0 +1 @@
+Subproject commit 433fe4c3934edff36cddcfb1e892e323c2fe75ea
diff --git a/repos/bbb-playback b/repos/bbb-playback
new file mode 160000
index 0000000..a8f5a72
--- /dev/null
+++ b/repos/bbb-playback
@@ -0,0 +1 @@
+Subproject commit a8f5a72a7dc55cc8bab6f980035291b6e8fe5de5
diff --git a/repos/bbb-webhooks b/repos/bbb-webhooks
new file mode 160000
index 0000000..7c0cd8e
--- /dev/null
+++ b/repos/bbb-webhooks
@@ -0,0 +1 @@
+Subproject commit 7c0cd8e6cad144578598f9fa6ea2d9ab78af560b
diff --git a/repos/bbb-webrtc-sfu b/repos/bbb-webrtc-sfu
new file mode 160000
index 0000000..c0de0ff
--- /dev/null
+++ b/repos/bbb-webrtc-sfu
@@ -0,0 +1 @@
+Subproject commit c0de0ff3857146da4924233d36b710874d16a26f
diff --git a/repos/bigbluebutton b/repos/bigbluebutton
new file mode 160000
index 0000000..5d671b3
--- /dev/null
+++ b/repos/bigbluebutton
@@ -0,0 +1 @@
+Subproject commit 5d671b3b506712e54093f50c2a4bdb9995982fab
diff --git a/repos/freeswitch b/repos/freeswitch
new file mode 160000
index 0000000..4cb05e7
--- /dev/null
+++ b/repos/freeswitch
@@ -0,0 +1 @@
+Subproject commit 4cb05e7f4a23645ec387f3b5391194128be7d193
diff --git a/repos/tags b/repos/tags
new file mode 100644
index 0000000..b569c71
--- /dev/null
+++ b/repos/tags
@@ -0,0 +1,13 @@
+# autogenerated by ./scripts/collect-tags
+#
+# used to determine submodule tags without the need for
+# checking out the whole submodule
+
+repos/bbb-etherpad-plugin 068ded5
+repos/bbb-etherpad-skin 8328b77
+repos/bbb-pads v1.5.2
+repos/bbb-playback v5.0.2
+repos/bbb-webhooks v2.6.1
+repos/bbb-webrtc-sfu v2.12.0
+repos/bigbluebutton v2.7.3
+repos/freeswitch v1.10.10
diff --git a/sample.env b/sample.env
index 3528941..4913308 100644
--- a/sample.env
+++ b/sample.env
@@ -6,6 +6,8 @@
# HTTPS Proxy
# fully automated Lets Encrypt certificates
ENABLE_HTTPS_PROXY=true
+# If your network doesn't allow access to DNS at 8.8.8.8 specify your own resolvers
+#RESOLVER_ADDRESS=x.x.x.x
# coturn (a TURN Server)
# requires either the abhove HTTPS Proxy to be enabled
diff --git a/scripts/bbb-record b/scripts/bbb-record
index 3814956..31071bd 100755
--- a/scripts/bbb-record
+++ b/scripts/bbb-record
@@ -4,11 +4,8 @@ set -e
cd $(dirname $0)/..
# load .env
-if [ -f .env ]
-then
- # exclude WELCOME_FOOTER because it may contain invalid characters
- export $(cat .env | sed 's/#.*//g' | grep -v "WELCOME_FOOTER" | grep -v "WELCOME_MESSAGE" | xargs)
-fi
+. functions.sh
+load_env
if [ ! "$ENABLE_RECORDING" == true ]; then
echo "Error: recording is disabled why can't use bbb-record"
@@ -16,5 +13,5 @@ if [ ! "$ENABLE_RECORDING" == true ]; then
exit 1
fi
-docker-compose exec recordings bbb-record $@
-docker-compose logs --tail=15 recordings
\ No newline at end of file
+docker compose exec recordings bbb-record $@
+docker compose logs --tail=15 recordings
\ No newline at end of file
diff --git a/scripts/checkout-submodules b/scripts/checkout-submodules
deleted file mode 100755
index 8165f33..0000000
--- a/scripts/checkout-submodules
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-# checkouts submodules based on the tag
-# provided in `tags.env`
-
-
-set -e
-cd "$(dirname "$0")/.."
-
-git submodule init
-git submodule update
-
-export $(cat tags.env | sed 's/#.*//g' | xargs)
-
-function checkout {
- path=$1
- ref=$2
- pushd $path
- git fetch
- git checkout $ref
- echo ""
- popd > /dev/null
-}
-
-checkout mod/webrtc-sfu/bbb-webrtc-sfu $TAG_WEBRTC_SFU
-checkout mod/nginx/bbb-playback $TAG_PLAYBACK
-checkout mod/bbb-pads/bbb-pads $TAG_PADS
-checkout mod/webhooks/bbb-webhooks $TAG_WEBHOOKS
-
-echo ""
-echo "# git submodule"
-git submodule
\ No newline at end of file
diff --git a/scripts/collect-tags b/scripts/collect-tags
new file mode 100755
index 0000000..d0e4b73
--- /dev/null
+++ b/scripts/collect-tags
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -e
+cd "$(dirname "$0")/.."
+. scripts/functions.sh
+
+# can't summarize the submodules without having the submodules
+ensure_submodules
+
+FILE=repos/tags
+echo '# autogenerated by ./scripts/collect-tags' > $FILE
+echo '#' >> $FILE
+echo '# used to determine submodule tags without the need for' >> $FILE
+echo '# checking out the whole submodule' >> $FILE
+echo "" >> $FILE
+
+# get list of submodules and their current tag as `git describe` also provides
+
+
+git submodule foreach --quiet 'echo $sm_path $(git describe --tags --always)' >> $FILE
+
diff --git a/scripts/fs_cli b/scripts/fs_cli
index fd1ec54..de7fc5d 100755
--- a/scripts/fs_cli
+++ b/scripts/fs_cli
@@ -4,9 +4,7 @@ set -e
cd $(dirname $0)/..
# load .env
-if [ -f .env ]
-then
- export $(cat .env | sed 's/#.*//g' | grep "FSESL_PASSWORD" | xargs)
-fi
+. functions.sh
+load_env
-docker-compose exec freeswitch /opt/freeswitch/bin/fs_cli -H 10.7.7.1 -p "$FSESL_PASSWORD"
+docker compose exec freeswitch /opt/freeswitch/bin/fs_cli -H 10.7.7.1 -p "$FSESL_PASSWORD"
diff --git a/scripts/functions.sh b/scripts/functions.sh
new file mode 100644
index 0000000..4f42e62
--- /dev/null
+++ b/scripts/functions.sh
@@ -0,0 +1,28 @@
+function load_env {
+ FILE=.env
+ if [ "$BBB_DOCKER_DEV" = "1" ]; then
+ FILE=dev.env
+ else
+ FILE=.env
+ fi
+
+ if [ -f $FILE ]
+ then
+ export $(cat $FILE | sed 's/#.*//g' | grep -v "WELCOME_FOOTER" | grep -v "WELCOME_MESSAGE" | grep -v "CLIENT_TITLE" | xargs)
+ fi
+}
+
+function ensure_submodules {
+ MISSING_SUBMODULES=$(git submodule status | grep -v ' (' | awk '{print $2}' || /bin/true)
+ echo
+ if [ ! -z "$MISSING_SUBMODULES" ]; then
+ echo "ERROR: following submodules are not checked out. we can't continue here"
+ git submodule status | grep -v ' (' | awk '{print " -", $2}'
+ echo ""
+ echo "if you really want to build images by yourself (not required for a normal production setup), use following command to check out all the submodules and try again"
+ echo " git submodule update --init"
+ exit 1
+ fi
+
+}
+
diff --git a/scripts/generate-compose b/scripts/generate-compose
index 077f62a..6348c9c 100755
--- a/scripts/generate-compose
+++ b/scripts/generate-compose
@@ -4,11 +4,8 @@ set -e
cd $(dirname $0)/..
# load .env
-if [ -f .env ]
-then
- # exclude WELCOME_MESSAGE && WELCOME_FOOTER && CLIENT_TITLE because it may contain invalid characters
- export $(cat .env | sed 's/#.*//g' | grep -v "WELCOME_FOOTER" | grep -v "WELCOME_MESSAGE" | grep -v "CLIENT_TITLE" | xargs)
-fi
+. scripts/functions.sh
+load_env
# check for non-optional environment variables,
# which got introduced later and may miss in existing
@@ -33,33 +30,30 @@ if [ "$ENABLE_COTURN" == true ]; then
fi
fi
-export $(cat tags.env | sed 's/#.*//g' | xargs)
+function get_tag {
+ # is submodule checked out?
+ if [ -f "$1/.git" ]; then
+ git --git-dir=$1/.git describe --tags --always
+ else
+ # get cached tag name from repos/tags
+ grep "$1" repos/tags | awk '{print $2}'
+ fi
+}
docker run \
--rm \
-v $(pwd)/docker-compose.tmpl.yml:/docker-compose.tmpl.yml \
- -e BBB_BUILD_TAG=${BBB_BUILD_TAG} \
- -e TAG_COMMON_MESSAGE=${TAG_COMMON_MESSAGE} \
- -e TAG_APPS_AKKA=${TAG_APPS_AKKA} \
- -e TAG_FSESL_AKKA=${TAG_FSESL_AKKA} \
- -e TAG_BBB_WEB=${TAG_BBB_WEB} \
- -e TAG_HTML5=${TAG_HTML5} \
- -e TAG_FS_CONFIG=${TAG_FS_CONFIG} \
- -e TAG_FS_BUILD_FILES=${TAG_FS_BUILD_FILES} \
- -e TAG_LEARNING_DASHBOARD=${TAG_LEARNING_DASHBOARD} \
- -e TAG_RECORDINGS=${TAG_RECORDINGS} \
- -e TAG_WEBRTC_SFU=${TAG_WEBRTC_SFU} \
- -e TAG_WEBHOOKS=${TAG_WEBHOOKS} \
- -e TAG_PLAYBACK=${TAG_PLAYBACK} \
- -e TAG_PADS=${TAG_PADS} \
- -e TAG_FREESWITCH=${TAG_FREESWITCH} \
- -e TAG_BBB_PRESENTATION_VIDEO=${TAG_BBB_PRESENTATION_VIDEO} \
- -e TAG_GREENLIGHT=${TAG_GREENLIGHT} \
+ -e TAG_BBB=$(get_tag repos/bigbluebutton) \
+ -e TAG_FREESWITCH=$(get_tag repos/freeswitch) \
+ -e TAG_WEBRTC_SFU=$(get_tag repos/bbb-webrtc-sfu) \
+ -e TAG_WEBHOOKS=$(get_tag repos/bbb-webhooks) \
+ -e TAG_PLAYBACK=$(get_tag repos/bbb-playback) \
+ -e TAG_PADS=$(get_tag repos/bbb-pads) \
+ -e COMMIT_ETHERPAD_SKIN=$(get_tag repos/bbb-etherpad-skin) \
+ -e COMMIT_ETHERPAD_PLUGIN=$(get_tag repos/bbb-etherpad-plugin) \
-e DEV_MODE=${DEV_MODE:-false} \
-e EXTERNAL_IPv6=${EXTERNAL_IPv6:-} \
-e ENABLE_RECORDING=${ENABLE_RECORDING:-false} \
- -e REMOVE_OLD_RECORDING=${REMOVE_OLD_RECORDING:-false} \
- -e RECORDING_MAX_AGE_DAYS=${RECORDING_MAX_AGE_DAYS:-14} \
-e ENABLE_HTTPS_PROXY=${ENABLE_HTTPS_PROXY:-false} \
-e ENABLE_WEBHOOKS=${ENABLE_WEBHOOKS:-false} \
-e ENABLE_COTURN=${ENABLE_COTURN:-false} \
diff --git a/scripts/greenlight-migrate-v2-v3 b/scripts/greenlight-migrate-v2-v3
index a341b19..e6ad3d1 100755
--- a/scripts/greenlight-migrate-v2-v3
+++ b/scripts/greenlight-migrate-v2-v3
@@ -8,7 +8,7 @@ then
export $(cat .env | sed 's/#.*//g' | grep -E "RAILS_SECRET|POSTGRESQL_SECRET" | xargs)
fi
-COMPOSE_PREFIX=$(docker-compose ps | grep postgres | awk '{print $1}' | sed 's/-postgres-1//')
+COMPOSE_PREFIX=$(docker compose ps | grep postgres | awk '{print $1}' | sed 's/-postgres-1//')
docker kill -s SIGKILL greenlight-v2-tmp 2>/dev/null
sleep 1
diff --git a/scripts/publish b/scripts/publish
index 41b475f..601b787 100755
--- a/scripts/publish
+++ b/scripts/publish
@@ -4,11 +4,8 @@ set -e
cd "$(dirname "$0")/.."
# load .env
-if [ -f .env ]
-then
- # exclude WELCOME_MESSAGE && WELCOME_FOOTER && CLIENT_TITLE because it may contain invalid characters
- export $(cat .env | sed 's/#.*//g' | grep -v "WELCOME_FOOTER" | grep -v "WELCOME_MESSAGE" | grep -v "CLIENT_TITLE" | xargs)
-fi
+. functions.sh
+load_env
if [ -z "$ENABLE_WEBHOOKS" ]; then
echo "ERROR: ENABLE_WEBHOOKS must be set to true, otherwise the image would not be built"
@@ -31,11 +28,11 @@ fi
docker build -t alangecker/bbb-docker-base-java:latest mod/base-java
# buld and push other images
-docker-compose build
+docker compose build
# push images
docker push alangecker/bbb-docker-base-java:latest
-docker-compose push \
+docker compose push \
html5-backend-1 \
bbb-web \
freeswitch \
diff --git a/scripts/setup b/scripts/setup
index 3f4ecdf..1667c0d 100755
--- a/scripts/setup
+++ b/scripts/setup
@@ -208,4 +208,4 @@ echo "make sure to recreate the docker-compose.yml after each change"
echo " $ ./scripts/generate-compose"
echo ""
echo "to start bigbluebutton run"
-echo " $ docker-compose up -d"
+echo " $ docker compose up -d"
diff --git a/scripts/upgrade b/scripts/upgrade
index 8ac1c35..4d403b5 100755
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -21,7 +21,7 @@ else
echo ""
echo "# pull newest images"
- docker-compose pull --ignore-pull-failures
+ docker compose pull --ignore-pull-failures
COMMIT_HASH=$(git rev-parse --short HEAD)
@@ -33,6 +33,6 @@ else
echo "we are on $COMMIT_HASH ($BRANCH_NAME)"
echo ""
echo "use following command for restarting bbb:"
- echo " $ docker-compose up -d --no-build"
+ echo " $ docker compose up -d --no-build"
echo "-------------------------------------"
fi
\ No newline at end of file
diff --git a/scripts/upgrade-and-build b/scripts/upgrade-and-build
index 1decee6..9543c30 100755
--- a/scripts/upgrade-and-build
+++ b/scripts/upgrade-and-build
@@ -25,14 +25,14 @@ else
echo ""
echo "# pull newest images"
- docker-compose pull --ignore-pull-failures
+ docker compose pull --ignore-pull-failures
echo ""
echo "# rebuild images"
docker build -t alangecker/bbb-docker-base-java:latest mod/base-java
# rebuild everything which got modified
- docker-compose build
+ docker compose build
COMMIT_HASH=$(git rev-parse --short HEAD)
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
@@ -43,6 +43,6 @@ else
echo "we are on $COMMIT_HASH ($BRANCH_NAME)"
echo ""
echo "use following command for restarting bbb:"
- echo " $ docker-compose up -d"
+ echo " $ docker compose up -d"
echo "-------------------------------------"
fi
\ No newline at end of file
diff --git a/tags.env b/tags.env
deleted file mode 100644
index 3563985..0000000
--- a/tags.env
+++ /dev/null
@@ -1,31 +0,0 @@
-# after changing a tag always run following commands to apply
-# - ./scripts/generate-compose
-# - docker-compose build
-
-
-# https://gitlab.senfcall.de/senfcall-public/docker-bbb-build
-BBB_BUILD_TAG=v2022-12-29-grails-524
-
-# https://github.com/bigbluebutton/bigbluebutton
-TAG_COMMON_MESSAGE=v2.6.0
-TAG_APPS_AKKA=v2.6.0
-TAG_FSESL_AKKA=v2.6.0
-TAG_BBB_WEB=v2.6.0
-TAG_HTML5=v2.6.0
-TAG_RECORDINGS=v2.6.0
-
-TAG_LEARNING_DASHBOARD=v2.6.0
-TAG_FS_CONFIG=v2.6.0
-TAG_FS_BUILD_FILES=v2.6.0
-
-TAG_FREESWITCH=v1.10.9
-TAG_GREENLIGHT=v3.0.2
-
-# individual git submodules
-# use `./scripts/checkout-submodules` to ensure, that the submodules
-# match the provided tags here
-TAG_WEBRTC_SFU=v2.9.8
-TAG_WEBHOOKS=v2.6.0
-TAG_PLAYBACK=v5.0.0-rc.2
-TAG_PADS=v1.4.1
-TAG_BBB_PRESENTATION_VIDEO=4.0.0-rc.2