Merge pull request #19287 from antobinary/v3.0

chore: Port docs and ci changes to v3.0.x-release
This commit is contained in:
Anton Georgiev 2023-12-05 13:27:29 -05:00 committed by GitHub
commit 3f017d576b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 9984 additions and 15818 deletions

View File

@ -13,7 +13,7 @@ This issue tracker is only for bbb development or docs related issues.-->
**Link to the portion of the docs that is out of date**
If applicable, link to the section of the docs that is out of date.
**Describe what you belive the correct version should be**
**Describe what you believe the correct version should be**
**Screenshots**
If applicable, add screenshots to help explain your concern.

106
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,106 @@
version: 2
updates:
# maintaining legacy branch
# no configuration for now
# current branch
## excluding bigbluebutton-tests/playwright, bigbluebutton-tests/puppeteer, docs
- package-ecosystem: npm
directory: "/bbb-export-annotations"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
- package-ecosystem: npm
directory: "/bigbluebutton-html5"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
- package-ecosystem: npm
directory: "/bbb-learning-dashboard"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
- package-ecosystem: gradle
directory: "/bigbluebutton-web"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
- package-ecosystem: bundler
directory: "/record-and-playback/core"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
vendor: true
- package-ecosystem: maven
directory: "/bbb-fsesl-client"
target-branch: "v2.7.x-release"
schedule:
interval: daily
open-pull-requests-limit: 0 # zero means only security pull requests and no (optional) version updates
# upcoming release branch
## excluding bigbluebutton-tests/playwright, bigbluebutton-tests/puppeteer, docs, bbb-graphql-client-test
- package-ecosystem: npm
directory: "/bbb-graphql-actions-adapter-server"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: npm
directory: "/bbb-export-annotations"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: npm
directory: "/bigbluebutton-html5"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: npm
directory: "/bbb-learning-dashboard"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: gradle
directory: "/bigbluebutton-web"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: bundler
directory: "/record-and-playback/core"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: maven
directory: "/bbb-fsesl-client"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: gomod
directory: "/bbb-graphql-middleware"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
- package-ecosystem: gomod
directory: "/bbb-graphql-server"
target-branch: "v3.0.x-release"
schedule:
interval: daily
open-pull-requests-limit: 20 # both security and versions updates
# upstream (default) branch
# no configuration for now

View File

@ -1,20 +1,20 @@
BigBlueButton
=============
BigBlueButton is an open source virtual classroom designed to help teachers teach and learners learn.
BigBlueButton is an open-source virtual classroom designed to help teachers teach and learners learn.
BigBlueButton supports real-time sharing of audio, video, slides (with whiteboard annotations), chat, and the screen. Instructors can engage remote students with polling, emojis, multi-user whiteboard, shared notes, and breakout rooms. During the session, BigBlueButton generates analytics that are visible to moderators in the Learning Analytics Dashboard.
BigBlueButton supports real-time sharing of audio, video, slides (with whiteboard annotations), chat, and the screen. Instructors can engage remote students with polling, emojis, multi-user whiteboards, shared notes, and breakout rooms. During the session, BigBlueButton generates analytics that are visible to moderators in the Learning Analytics Dashboard.
Presenters can record and playback content for later sharing with others.
We designed BigBlueButton for online learning, it can be used for many other applicationsas well). The educational use cases for BigBlueButton are
We designed BigBlueButton for online learning, it can be used for many other applications as well. The educational use cases for BigBlueButton are
* Online tutoring (one-to-one)
* Flipped classrooms (recording content ahead of your session)
* Group collaboration (many-to-many)
* Online classes (one-to-many)
The latest version is BigBlueButton 2.6. You can install BigBlueButton 2.6 on Ubuntu 20.04 using [bbb-install.sh](https://github.com/bigbluebutton/bbb-install) within 30 minutes (or your money back 😉).
The latest version is BigBlueButton 2.7. You can install BigBlueButton 2.6 on Ubuntu 20.04 using [bbb-install.sh](https://github.com/bigbluebutton/bbb-install) within 30 minutes (or your money back 😉).
For full technical documentation BigBlueButton -- including architecture, features, API, and GreenLight (the default front-end) -- see [https://docs.bigbluebutton.org/](https://docs.bigbluebutton.org/).
For full technical documentation of BigBlueButton -- including architecture, features, API, and GreenLight (the default front-end) -- see [https://docs.bigbluebutton.org/](https://docs.bigbluebutton.org/).
BigBlueButton and the BigBlueButton Logo are trademarks of [BigBlueButton Inc](https://bigbluebutton.org) .
BigBlueButton and the BigBlueButton Logo are trademarks of [BigBlueButton Inc](https://bigbluebutton.org).

View File

@ -2,9 +2,15 @@
set -eu
# Build the docs for these tags (the last tag of old major releases)
# We build the docs for historical reasons. The branch no longer exists
# since the release is no longer supported/maintained.
TAGS=(
v2.5.19
)
# Build the docs only for these release branches
BRANCHES=(
v2.5.x-release
v2.6.x-release
v2.7.x-release
# v2.8.x-release
@ -12,8 +18,26 @@ BRANCHES=(
REMOTE="origin"
git fetch --all
git fetch --tags
current_branch=$(git rev-parse --abbrev-ref HEAD)
for tag in "${TAGS[@]}"; do
if [ "$tag" != "$current_branch" ]; then
git fetch "$REMOTE" "$tag"
fi
git checkout "$tag"
if [ -f docusaurus.config.js ]; then
version=${tag:1:3}-legacy
echo "Adding documentation for $version"
yarn docusaurus docs:version "${version}"
else
echo "Warning: branch/tag $(version) does not contain a docusaurus.config.js!"
fi
done
for branch in "${BRANCHES[@]}"; do
if [ "$branch" != "$current_branch" ]; then
@ -23,9 +47,6 @@ for branch in "${BRANCHES[@]}"; do
git checkout "$branch"
if [ -f docusaurus.config.js ]; then
version=${branch:1:3}
if [ version == "2.7" ]; then
version="2.7"
fi
echo "Adding documentation for $version"
yarn docusaurus docs:version "${version}"
else

View File

@ -380,6 +380,27 @@ This pattern can be repeated for additional recording formats. Note that it's ve
After you edit the configuration file, you must restart the recording processing queue: `systemctl restart bbb-rap-resque-worker.service` in order to pick up the changes.
The following script will enable the video recording format a BigBlueButton 2.6+ server.
```
!/bin/bash
mkdir -p /etc/bigbluebutton/recording
cat > /etc/bigbluebutton/recording/recording.yml << REC
steps:
archive: "sanity"
sanity: "captions"
captions:
- process:presentation
- process:video
process:presentation: publish:presentation
process:video: publish:video
REC
if ! dpkg -l | grep -q bbb-playback-video; then
apt install -y bbb-playback-video
systemctl restart bbb-rap-resque-worker.service
fi
```
#### Enable generating mp4 (H.264) video output
By default, BigBlueButton generates recording videos as `.webm` files using the VP9 video codec. These are supported in most desktop web browsers, but might not work on iOS mobile devices. You can additionally enable the H.264 video codec in some recording formats (Keep in mind that the following `.yml` files mentioned ahead only exist when the respective format package is installed):
@ -1049,7 +1070,7 @@ $ sudo apt-get purge bbb-demo
The default HTML landing page is located in
```bash
/var/www/bigbluebutton-default/index.html
/var/www/bigbluebutton-default/assets/index.html
```
Change this page to create your own landing page (and keep a back-up copy of it as it will be overwritten during package updates to `bbb-conf`).

View File

@ -41,7 +41,7 @@ If you are setting up BigBlueButton for local development on your workstation, y
- 50G of disk space
- IPV4 address only
Regardless of your environment, the setup steps will include configuring a SSL certificate on the nginx server. Why? All browsers now require a valid SSL certificate from the web server when a page requests access to the user's webcam or microphone via web real-time communications (WebRTC). If you try to access a BigBlueButton server with an IP address only, the browsers will block BigBlueButton client from accessing your webcam or microhone.
Regardless of your environment, the setup steps will include configuring a SSL certificate on the nginx server. Why? All browsers now require a valid SSL certificate from the web server when a page requests access to the user's webcam or microphone via web real-time communications (WebRTC). If you try to access a BigBlueButton server with an IP address only, the browsers will block BigBlueButton client from accessing your webcam or microphone.
### Pre-installation checks
@ -59,8 +59,8 @@ LANG="en_US.UTF-8"
If you don't see `LANG="en_US.UTF-8"`, enter the following commands to set the local to `en_US.UTF-8`.
```bash
$ sudo apt-get install -y language-pack-en
$ sudo update-locale LANG=en_US.UTF-8
sudo apt-get install -y language-pack-en
sudo update-locale LANG=en_US.UTF-8
```
and then log out and log in again to your SSH session -- this will reload the locale configuration for your session. Run the above command `cat /etc/default/locale` again. Verify you see only the single line `LANG="en_US.UTF-8"`.
@ -145,10 +145,12 @@ $ sudo ufw status
```
If you don't see these lines, you need to open them by
```bash
sudo ufw allow 80
sudo ufw allow 443
```
Sometimes we get asked "Why are you only supporting Ubuntu 20.04 64-bit?". The answer is based on choosing quality over quantity. Long ago we concluded that its better for the project to have solid, well-tested, well-documented installation for a specific version of Linux that works really, really well than to try and support may variants of Linux and have none of them work well.
At the moment, the requirement for docker may preclude running 2.7 within some virtualized environments; however, it ensures libreoffice runs within a restricted sandbox for document conversion. We are exploring if we can run libreoffice within systemd (such as systemd-nspawn).
@ -332,8 +334,8 @@ You can upgrade in a few steps:
Make sure you don't have `bbb-demo` installed `sudo apt purge bbb-demo`
Then run the `bbb-install.sh` script -- it will download and install the latest release of BigBlueButton 2.7 on top of your old 2.5 version.
Make sure you read through the "what's new in 2.7" document https://docs.bigbluebutton.org/2.7/new and specifically https://docs.bigbluebutton.org/2.7/new#other-notable-changes
Make sure you read through the "what's new in 2.7" document <https://docs.bigbluebutton.org/2.7/new> and specifically <https://docs.bigbluebutton.org/2.7/new#other-notable-changes>
### Upgrading from BigBlueButton 2.4
@ -344,8 +346,8 @@ If you are upgrading BigBlueButton 2.4 or 2.3 we recommend you set up a new Ubun
You can restart and check your BigBlueButton server at any time using the commands
```bash
$ sudo bbb-conf --restart
$ sudo bbb-conf --check
sudo bbb-conf --restart
sudo bbb-conf --check
```
The `bbb-conf --check` scans some of the log files for error messages. Again, any output that followed `Potential problems` **may** indicate configuration errors or installation errors. In many cases, the messages will give you recommendations on how to resolve the issue.
@ -401,10 +403,10 @@ Large scale deployments must include several other components in addition to the
## Customizations
See the [Server customization page](/administration/customize) for things you can do to adapt BigBlueButton to your environment or enable optional features after installation. For example
See the [Server customization page](/administration/customize) for things you can do to adapt BigBlueButton to your environment or enable optional features after installation. For example
* [Install additional recording processing formats](/administration/customize#install-additional-recording-processing-formats)
* [Enable generating mp4 (H.264) video output](/administration/customize#enable-generating-mp4-h264-video-output)
- [Install additional recording processing formats](/administration/customize#install-additional-recording-processing-formats)
- [Enable generating mp4 (H.264) video output](/administration/customize#enable-generating-mp4-h264-video-output)
## Troubleshooting

View File

@ -138,12 +138,13 @@ SMTP configuration requires following the guidelines provided by your SMTP serve
### OpenID Connect Setup
| Variable Name | Description | Default Value |
|---------------|---------------------------------------------------------------------------------------------------------------------------------------|---------------|
| OPENID_CONNECT_CLIENT_ID | The client ID of the OpenID issuer | - |
| OPENID_CONNECT_CLIENT_SECRET | The secret to use to authenticate to the OpenID issuer | - |
| OPENID_CONNECT_ISSUER | The URL for the OpenID issuer. It is required to be HTTPS URL using the default HTTPS port (TCP 443) | - |
| OPENID_CONNECT_REDIRECT | The Redirect URI after successful authentication. It should be the URL to Greenlight | - |
| Variable Name | Description | Default Value |
|---------------|-----------------------------------------------------------------------------------------------------|--------------|
| OPENID_CONNECT_CLIENT_ID | The client ID of the OpenID issuer | - |
| OPENID_CONNECT_CLIENT_SECRET | The secret to use to authenticate to the OpenID issuer | - |
| OPENID_CONNECT_ISSUER | The URL for the OpenID issuer. It is required to be HTTPS URL using the default HTTPS port (TCP 443) | - |
| OPENID_CONNECT_REDIRECT | The Redirect URI after successful authentication. It should be the URL to Greenlight | - |
| OPENID_CONNECT_UID_FIELD | The field of the user info response to be used as the unique identifier in Greenlight | 'sub' |
### HCaptcha Setup

View File

@ -39,6 +39,19 @@ The migration system consists of multiples **rake tasks** and **a restful API**:
Before the migration process, make sure that the Greenlight v3 server is running and accessible through your network.
### Updating v2 to the latest version
Before begin your upgrade, it is crucial that you update Greenlight v2 to the latest version. This ensures that you are using the latest version of the migration scripts.
To do so, run the following commands on your v2 machine:
```bash
cd ~/greenlight
docker-compose pull
docker-compose down
docker-compose up -d
```
### Configuring the Environment
In Greenlight v2 **.env** file, add the following variables:
@ -47,47 +60,9 @@ In Greenlight v2 **.env** file, add the following variables:
![env_migration_endpoints.png](/img/greenlight/v3/migration/env_migration_endpoints.png)
### The rake migration task file
**If your Greenlight v2 deployment is up to date with the official latest release, you can skip to [Migration Steps](#migration-steps).**
Else, you will need to to load the rake migration task file into your directory.
To do so, follow the steps below:
1) Navigate to your Greenlight v2 directory
2) Download the migration rake tasks with the following command:
```bash
wget -P lib/tasks/migrations https://raw.githubusercontent.com/bigbluebutton/greenlight/v2/lib/tasks/migrations/migrations.rake
```
The file **migrations.rake** should now be present in your **/lib/tasks/migrations** directory.
**To include our changes directly in the Docker container:**
3) Edit the volumes partition in the **docker-compose.yaml** to add the new migration file as follow:
```yaml
services:
app:
volumes:
- ./log:/usr/src/app/log
- ./storage:/usr/src/app/storage
- ./lib/tasks/migrations:/usr/src/app/lib/tasks/migrations
```
4) Save the changes and restart Greenlight v2 by running:
```bash
sudo docker-compose down && sudo docker-compose up -d
```
## Migration Steps
**It is required to run the migrations in the following order: roles, users, rooms, settings.**
**The migrations must be run in the following order: roles, users, rooms, settings.**
The logs will indicate the status of the migrated resources in real-time, in the console.
@ -125,9 +100,36 @@ sudo docker exec -it greenlight-v2 bundle exec rake migrations:roles
The Users will be migrated with their corresponding role.
Important notes:
- **The accounts passwords can't be migrated from Greenlight v2. A rake task that sends an email to all the users and prompts them to reset their password is provided for Greenlight v3. When the migration is completed, please jump to [After the Migration](#after-the-migration). Please note that if you are using external accounts, like Google or Microsoft, this is not applicable.**- Pending, denied and deleted users will not be migrated to Greenlight v3.
- Both local and external users will be migrated.
#### Local Accounts
When migrating local accounts from GLv2 to GLv3, the password_digest field will be securely transferred from v2 to v3. This ensures that local customers can seamlessly sign in using the exact same password as in v2.
To enable this, it's crucial that both GLv2 and GLv3 share the same value for the SECRET_KEY_BASE environment variable, which is set in the .env file.
Follow these steps:
1. **Retrieve GLv2's `SECRET_KEY_BASE`:**
On your GLv2 machine, execute the following command in the terminal:
```bash
cd ~/greenlight
cat .env | grep SECRET_KEY_BASE
```
Copy the value that is returned.
2. **Update GLv2 `.env` file:**
Edit the .env file on your GLv2 machine and replace the value of `V3_SECRET_KEY_BASE` with the copied value.
3. **Update GLv3 `.env` file:**
On your GLv3 machine, replace the `SECRET_KEY_BASE` in your .env file with the same value that you copied from GLv2.
Ensure that the `SECRET_KEY_BASE` values for GLv2, GLv3, and the `V3_SECRET_KEY_BASE` variable in GLv2's `.env` file are now synchronized.
#### Migrating Users
**To migrate all of your v2 users to v3, run the following command:**
```bash
sudo docker exec -it greenlight-v2 bundle exec rake migrations:users
@ -135,12 +137,6 @@ sudo docker exec -it greenlight-v2 bundle exec rake migrations:users
**To migrate only a portion of the users starting from *FIRST_USER_ID* to *LAST_USER_ID*, run this command instead:**
```bash
sudo docker exec -it greenlight-v2 bundle exec rake migrations:users\[<FIRST_USER_ID>,<LAST_USER_ID>]
```
*Administrators can use the last command to migrate resources in parallel, the same migration task can be run in separate processes each migrating a portion of the resources class simultaneously.*
**If you have an error, try re-running the migration task to resolve any failed resources migration.**
**Also, make sure that the Roles migration has been successful.**
@ -159,16 +155,6 @@ Important notes:
sudo docker exec -it greenlight-v2 bundle exec rake migrations:rooms
```
**To migrate only a portion of users starting from **FIRST_ROOM_ID** to **LAST_ROOM_ID**, run this command instead**:**
```bash
sudo docker exec -it greenlight-v2 bundle exec rake migrations:rooms\[<FIRST_ROOM_ID>,<LAST_ROOM_ID>]
```
*Note: The partitioning is based on resources id value and not there position in the database, so calling **rake migrations:rooms[1, 100]** will not migrate the first 100 active users rooms but rather active users rooms having an id of 1 to 100 if existed.*
*Administrators can use the last command to migrate resources in parallel, the same migration task can be run in separate processes each migrating a portion of the resources class simultaneously.*
**If you have an error, try re-running the migration task to resolve any failed resources migration.**
**Also, make sure that the Users migration has been successful.**
@ -192,21 +178,9 @@ sudo docker exec -it greenlight-v2 bundle exec rake migrations:settings
**If you have an error, try re-running the migration task to resolve any failed resources migration.**
## After the Migration
Having completed the migration successfully, it is now imperative to inform users of the need to reset their Greenlight account passwords.
This can be achieved through the utilization of the rake task available in Greenlight v3.
**It is important to note, however, that this is not applicable for users who utilize external accounts such as Google or Microsoft.**
Having completed the migration successfully, the final step is to import the recordings into v3.
To send a reset password email to all your users, run the following command:
```bash
sudo docker exec -it greenlight-v3 bundle exec rake migration:reset_password_email\[<BASE URL>]
```
The &lt;BASE URL&gt; in the command above should be replaced with your Greenlight domain name.
Also, please note that the BigBlueButton recordings list will now be empty.
To re-sync the list of recordings, run the following command:
To re-sync the list of recordings, run the following command **on the v3 machine**:
```bash
sudo docker exec -it greenlight-v3 bundle exec rake server_recordings_sync

View File

@ -38,7 +38,7 @@ const config = {
lastVersion: '2.7',
includeCurrentVersion: false,
versions: {
'2.5': {
'2.5-legacy': {
banner: 'none'
},
'2.6': {

17996
docs/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -16,17 +16,17 @@
},
"dependencies": {
"@cmfcmf/docusaurus-search-local": "^0.11.0",
"@docusaurus/core": "2.2.0",
"@docusaurus/plugin-client-redirects": "2.2.0",
"@docusaurus/preset-classic": "2.2.0",
"@docusaurus/core": "^3.0.1",
"@docusaurus/plugin-client-redirects": "^3.0.1",
"@docusaurus/preset-classic": "^3.0.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
"react": "^18.0.2",
"react-dom": "^18.0.2"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.2.0",
"@docusaurus/module-type-aliases": "^3.0.1",
"@tsconfig/docusaurus": "^1.0.6",
"typescript": "^4.9.4"
},

File diff suppressed because it is too large Load Diff