14 Commits

Author SHA1 Message Date
b627949e22 Merge pull request #352 from tibroc/update-bbb-build
update bbb-build container tag
2025-04-29 22:58:19 +00:00
45d13f46cc Merge pull request #350 from tibroc/html5-safari-builds-#348
Html5 safari builds #348
2025-04-02 10:05:53 +00:00
40e54de7f0 use always latest bbb-build version 2025-03-28 21:23:59 +01:00
75f7a1fc26 add safari fix for v3.0.4, closes #348 2025-03-28 16:32:20 +01:00
437022b6bf update bbb-build container tag 2025-03-28 16:30:37 +01:00
f6e71fc9e3 Release v3.0.4 2025-03-27 01:19:21 +01:00
bf1820c102 Merge pull request #347 from tibroc/3.0.4
update to 3.0.4
2025-03-26 23:50:26 +00:00
2ad8ccf20c docs: minor additions 2025-03-27 00:33:16 +01:00
7960113f3a update to 3.0.4 2025-03-26 19:16:36 +01:00
608bf78d15 fix not accepting length of dial in / voiceBridge numbers 2025-03-12 00:48:03 +01:00
6e0d7520d3 fix postgres migration 2025-03-12 00:47:16 +01:00
da20874a6e upgrade: migrate postgres & greenlight data 2025-03-12 00:21:55 +01:00
2bee0acb10 changelog for release 3.0.1 2025-03-11 18:44:33 +01:00
2f2907d5d6 Merge pull request #313 from bigbluebutton/bbb3.0
BigBlueButton 3.0
2025-03-11 17:35:44 +00:00
15 changed files with 126 additions and 23 deletions

View File

@ -2,6 +2,17 @@
## Unreleased
## Release v3.0.4 (2025-03-27)
- update to 3.0.4 @tibroc [#347](https://github.com/bigbluebutton/docker/pull/347
- fix not accepting length of dial in / voiceBridge numbers @alangecker
- upgrade: migrate postgres & greenlight data @alangecker
## Release v3.0.1 (2025-03-11)
**Breaking change!** make sure to read the [upgrading notes](https://github.com/bigbluebutton/docker/blob/develop/docs/upgrading.md)
- :tada: **BigBlueButton 3.0** [#313](https://github.com/bigbluebutton/docker/pull/313)
## 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)

View File

@ -3,7 +3,7 @@
# 📦 BigBlueButton 3.0 Docker
Version: 3.0.1 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) | [Upgrading](docs/upgrading.md) | [Development](docs/development.md)
Version: 3.0.4 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) | [Upgrading](docs/upgrading.md) | [Development](docs/development.md)
## Features
- Easy installation
@ -24,6 +24,7 @@ Version: 3.0.1 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigblue
- 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)
- firewall allows internal networking (e.g. for ufw: `ufw allow 10.7.7.0/24`)
- git installed
## Install production server
1. Ensure the requirements above are fulfilled (it really doesn't work without them)
@ -40,7 +41,7 @@ Version: 3.0.1 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigblue
$ git clone https://github.com/bigbluebutton/docker.git bbb-docker
$ cd bbb-docker
# use the more stable main branch (sometimes older)
# optional: use the more stable main branch (often much older)
$ git checkout main
```
4. Run setup:

View File

@ -509,7 +509,7 @@ services:
- redis
environment:
DATABASE_URL: postgres://postgres:${POSTGRESQL_SECRET:-password}@postgres:5432/greenlight-v3
DATABASE_URL: postgres://postgres:${POSTGRESQL_SECRET:-password}@postgres:5432/greenlight
REDIS_URL: redis://redis:6379
{{ if $ignore_tls_cert_errors }}
BIGBLUEBUTTON_ENDPOINT: http://10.7.7.1:48083/bigbluebutton/api

View File

@ -2,7 +2,9 @@
### Breaking changes `v2.7.x` -> `v3.0.x`
- **A setup behind NAT does currently not work!**
- on every SIP Profiles the extension field needs to be set to "DIALIN"
- `LETSENCRYPT_EMAIL` is now required in `.env` when used with the integrated HAProxy
- the greenlight postgres database is now called `greenlight` instead of `greenlight-v3`
### Breaking changes `v2.6.x` -> `v2.7.x`
- We use now Docker Compose V2

View File

@ -21,4 +21,6 @@ presentationBaseURL=http://{{ .Env.DOMAIN }}/bigbluebutton/presentation
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf
{{end}}
learningDashboardEnabled={{ .Env.ENABLE_LEARNING_DASHBOARD }}
learningDashboardEnabled={{ .Env.ENABLE_LEARNING_DASHBOARD }}
defaultNumDigitsForTelVoice=9

View File

@ -11,7 +11,24 @@ RUN cd /bbb-playback && npm install && npm run-script build
FROM bigbluebutton/bbb-build:$BBB_BUILD_TAG AS builder-html5
COPY --from=src-html5 / /source
RUN cd /source && CI=true npm ci
RUN cd /source && DISABLE_ESLINT_PLUGIN=true npm run build
RUN cd /source && DISABLE_ESLINT_PLUGIN=true npm run build-safari && npm run build
RUN cd /source/dist && \
HASH=$(ls | grep -Eo 'bundle\.[a-f0-9]{20}\.js' | head -n 1 | grep -Eo '[a-f0-9]{20}') && \
if [ -z "$HASH" ]; then \
echo "Bundle hash not found."; \
else \
for FILE in *.safari.js *.safari.js.map; do \
if [[ "$FILE" == *"$HASH"* ]]; then \
continue; \
fi; \
PREFIX="${FILE%%.safari.js*}"; \
SUFFIX="${FILE#*.safari.js}"; \
NEW_NAME="${PREFIX}.${HASH}.safari.js${SUFFIX}"; \
echo "Renaming $FILE$NEW_NAME"; \
mv "$FILE" "$NEW_NAME"; \
done; \
fi
RUN find /source/dist -name '*.js' -exec gzip -k -f -9 '{}' \; \
&& find /source/dist -name '*.css' -exec gzip -k -f -9 '{}' \; \
&& find /source/dist -name '*.wasm' -exec gzip -k -f -9 '{}' \;

View File

@ -6,9 +6,9 @@
repos/bbb-etherpad-plugin 88f3f6b
repos/bbb-etherpad-skin 8328b77
repos/bbb-pads v1.5.3
repos/bbb-playback v5.2.1
repos/bbb-webhooks v3.3.0
repos/bbb-webrtc-recorder v0.7.0
repos/bbb-webrtc-sfu v2.17.0-beta.4
repos/bigbluebutton v3.0.1
repos/bbb-playback v5.3.1
repos/bbb-webhooks v3.3.1
repos/bbb-webrtc-recorder v0.8.0
repos/bbb-webrtc-sfu v2.17.0-beta.6
repos/bigbluebutton v3.0.4
repos/freeswitch v1.10.12

View File

@ -36,7 +36,7 @@ function get_tag {
}
# https://hub.docker.com/r/bigbluebutton/bbb-build
BBB_BUILD_TAG=v3.0.x-release--2025-02-06-143818
BBB_BUILD_TAG=v3.0.x-release
docker run \
--rm \

57
scripts/postgres-migrate Executable file
View File

@ -0,0 +1,57 @@
#!/bin/bash -e
OLD_DATA_DIR=$(realpath "$1")
NEW_DATA_DIR=$(realpath "$2")
NEW_POSTGRES_VERSION=$3
if [ -d "$NEW_DATA_DIR" ]; then
echo "new postgres data directory $2 already exists. this is not expected"
exit 1
fi
OLD_PG_VERSION=$(cat "$OLD_DATA_DIR/PG_VERSION")
echo spin up a temporary postgres instance on $OLD_DATA_DIR
TEMP_CONTAINER_ID=$(docker run --detach --rm "-v=$OLD_DATA_DIR:/var/lib/postgresql/data" -e POSTGRES_HOST_AUTH_METHOD=trust postgres:$OLD_PG_VERSION-alpine)
until docker exec $TEMP_CONTAINER_ID psql -U postgres -c "select 1" > /dev/null 2>&1; do
echo "Waiting for postgres server..."
sleep 1
done
echo "find old greenlight database..."
if docker exec $TEMP_CONTAINER_ID psql -U postgres -lqt | cut -d \| -f 1 | grep greenlight-v3; then
OLD_DATABASE=greenlight-v3
elif docker exec $TEMP_CONTAINER_ID psql -U postgres -lqt | cut -d \| -f 1 | grep greenlight; then
OLD_DATABASE=greenlight
fi
echo "old database is called $OLD_DATABASE"
echo ""
echo "dumping data from old databse..."
GREENLIGHT_DUMP=$(mktemp)
docker exec $TEMP_CONTAINER_ID pg_dump -U postgres $OLD_DATABASE > $GREENLIGHT_DUMP
docker stop $TEMP_CONTAINER_ID
echo spin up a temporary postgres instance on $NEW_DATA_DIR
TEMP_CONTAINER_ID=$(docker run --detach --rm "-v=$NEW_DATA_DIR:/var/lib/postgresql/data" -e POSTGRES_HOST_AUTH_METHOD=trust postgres:$NEW_POSTGRES_VERSION-alpine)
until docker exec $TEMP_CONTAINER_ID psql -U postgres -c "select 1" > /dev/null 2>&1; do
echo "Waiting for postgres server..."
sleep 1
done
echo "create all databases..."
for database in "bbb_graphql" "hasura_app" "greenlight"; do
echo "creating $database"
docker exec $TEMP_CONTAINER_ID psql -U postgres -c "CREATE DATABASE $database;" -c "GRANT ALL PRIVILEGES ON DATABASE $database TO postgres;"
done
echo "restoring greenlight from dump..."
cat $GREENLIGHT_DUMP | docker exec -i $TEMP_CONTAINER_ID psql -U postgres greenlight
docker stop $TEMP_CONTAINER_ID

View File

@ -24,7 +24,7 @@ else
echo "# checking for old volumes & migrate them"
COMPOSE_PREFIX=$(docker compose config | grep '^name:' | awk '{print $2}')
function migrate {
function migrate_vol {
VOLUME=${COMPOSE_PREFIX}_${1}
EXISTING=$(docker volume ls | grep $VOLUME | tail -n1 | awk '{print $2}')
if [ -n "$EXISTING" ]; then
@ -36,12 +36,25 @@ else
docker volume rm $EXISTING
fi
}
migrate bigbluebutton ./data/bigbluebutton
migrate vol-freeswitch ./data/freeswitch-meetings
migrate vol-mediasoup ./data/mediasoup
migrate_vol bigbluebutton ./data/bigbluebutton
migrate_vol vol-freeswitch ./data/freeswitch-meetings
migrate_vol vol-mediasoup ./data/mediasoup
# TODO: migrate postgres database
# TODO: migrate greenlight-data
if [ -d "./postgres-data" ]; then
echo "folder ./postgres-data still exists and probably uses postgres 12. migrating to a fresh postgres 16 data directory..."
docker compose down --remove-orphans
./scripts/postgres-migrate ./postgres-data ./data/postgres 16
mv postgres-data postgres-data.automigrate-bak
fi
if [ -d "./greenlight-data" ]; then
if [ -d "./data/greenlight" ]; then
mv ./data/greenlight ./data/greenlight.automigrate-bak
fi
mv ./greenlight-data ./data/greenlight
fi
# TODO: ask for LETSENCRYPT_EMAIL
echo ""
echo "# pull newest images"