{"id":13558556,"url":"https://github.com/bigbluebutton/bbb-install","last_synced_at":"2025-05-15T21:07:29.775Z","repository":{"id":37550164,"uuid":"120541771","full_name":"bigbluebutton/bbb-install","owner":"bigbluebutton","description":"BASH script to install BigBlueButton in 30 minutes.","archived":false,"fork":false,"pushed_at":"2025-04-08T16:39:42.000Z","size":1909,"stargazers_count":629,"open_issues_count":242,"forks_count":553,"subscribers_count":52,"default_branch":"v3.0.x-release","last_synced_at":"2025-05-08T10:28:23.650Z","etag":null,"topics":["bigbluebutton","conferencing"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bigbluebutton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-02-07T00:36:25.000Z","updated_at":"2025-04-28T03:11:53.000Z","dependencies_parsed_at":"2024-11-06T16:38:20.029Z","dependency_job_id":"3d8afc43-9b68-48f0-9114-ba3478d8243f","html_url":"https://github.com/bigbluebutton/bbb-install","commit_stats":{"total_commits":464,"total_committers":63,"mean_commits":7.365079365079365,"dds":0.5043103448275862,"last_synced_commit":"4f8ad4c4263a4393de5a542eb7a2633cea4c38bb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigbluebutton%2Fbbb-install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bigbluebutton","download_url":"https://codeload.github.com/bigbluebutton/bbb-install/tar.gz/refs/heads/v3.0.x-release","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254422764,"owners_count":22068678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigbluebutton","conferencing"],"created_at":"2024-08-01T12:05:01.444Z","updated_at":"2025-05-15T21:07:29.749Z","avatar_url":"https://github.com/bigbluebutton.png","language":"Shell","funding_links":[],"categories":["Shell","others"],"sub_categories":[],"readme":"\u003cimg width=\"1012\" alt=\"bbb-install-banner\" src=\"https://user-images.githubusercontent.com/1273169/141152865-f497c883-6c96-41c6-9040-613b0858878a.png\"\u003e\n\n### Note:\n\n\nNaming convention:\n\nPlease use `bbb-install.sh` to install or upgrade BigBlueButton.\n\nFor example use `bbb-install.sh` with the parameter `-v jammy-300` to install BigBlueButton 3.0 or upgrade to that release. Check https://docs.bigbluebutton.org for the latest production ready release of BigBlueButton.\n\nThere are checks within the scripts that will inform you if the upgrade is not possible (i.e. operating system changed between the releases, or some really significant changes were made that prevent us from supporting an upgrade).\netc.\n\n# bbb-install\n\nTo help you set up a new BigBlueButton server (or upgrade from an earlier version of BigBlueButton where applicable), `bbb-install.sh` is a shell script that automates the installation/upgrade steps  (view the [source](https://github.com/bigbluebutton/bbb-install/blob/master/bbb-install.sh) to see all the details).   Depending on your server's internet connection, `bbb-install.sh` can fully install and configure BigBlueButton on a server that meets the [minimum production use requirements](https://docs.bigbluebutton.org/administration/install#minimum-server-requirements) in under 30 minutes.\n\nThe full source code for the installation scripts can be found [here](https://github.com/bigbluebutton/bbb-install).\n\n\nSo, to install the latest iteration of BigBlueButton 3.0 on a new 64-bit Ubuntu 22.04 server with a public IP address, a hostname (such as `bbb.example.com`) that resolves to the public IP address, and an email address (such as `info@example.com`), log into your new server via SSH and run the following command as root.\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -w -v jammy-300 -s bbb.example.com -e info@example.com\n~~~\n\nThis command pulls down the latest version of `bbb-install.sh` from BigBlueButton 3.0 branch , sends it to the Bash shell interpreter, and installs BigBlueButton using the parameters provided:\n\n  * `-w` installs the uncomplicated firewall (UFW) to restrict access to TCP/IP ports 22, 80, and 443, and UDP ports in range 16384-32768.\n  * `-v jammy-300` installs the latest iteration of BigBlueButton 3.0.x .\n  * `-v focal-270` installs the latest iteration of BigBlueButton 2.7.x .\n  * `-s` sets the server's hostname to be `bbb.example.com`.\n  * `-e` provides an email address for Let's Encrypt to generate a valid SSL certificate for the host.\n\nThe hostname `bbb.example.com` and email address `info@example.com` are just sample parameters.  The following sections walk you through the details on using `bbb-install.sh` to set up/upgrade your BigBlueButton server.\n\nNote: BigBlueButton meetings will run in a web browser.  The browsers now require the use of HTTPS before allowing access to resources such as your webcam, microphone, or screen (for screen sharing) when using the browser's built-in real-time communications (WebRTC) libraries which is the case for BigBlueButton meetings.  In other terms, if you try to install BigBlueButton without specifying the `-s` and `-e` parameters, the client will not load.\n\nNote: If your server is also behind an external firewall -- such as behind a corporate firewall or behind an AWS Security Group -- you will need to manually configure the external firewall to forward [specific internet connections](#configuring-the-external-firewall) to the BigBlueButton server before you can launch the client.\n\nThe following sections go through in more detail setting up a new BigBlueButton server.\n\n## Getting ready\n\nBefore running `bbb-install.sh`, you need to:\n\n  * read through all the documentation in this page.\n  * ensure that your server meets the [minimal server requirements](https://docs.bigbluebutton.org/administration/install#minimum-server-requirements).\n  To provision your server your can check some [known choices](#server-choices) -- you may also need to further [configure external firewalls](#configuring-the-external-firewall).\n  * configure a fully qualified domain name (FQDN), such as `bbb.example.com`, that resolves to the external IP address of your server.\n\nTo set up your FQDN, purchase a domain name from a domain name registrar or a web hosting provider, such as [GoDaddy](https://godaddy.com) or [Network Solutions](https://networksolutions.com).  Once purchased, follow the steps indicated by your provider to create an `A Record` for your FQDN that resolves to the public IP address of your server.  (Check the provider's documentation for details on how to set up the `A Record`.)\n\nWith your FQDN in place, you can then pass a few additional parameters to `bbb-install.sh` to have it:\n\n  * request and install a 4096-bit TLS/SSL certificate from Let's Encrypt (we love Let's Encrypt) (**required**).\n  * install a firewall to restrict access to only the needed ports (**recommended**).\n  * [install and configure Greenlight](#install-greenlight) to provide a simple front-end for users to enable them to set up rooms, hold online sessions, and manage recordings (**optional**).\n  * [install and configure BigBlueButton LTI framework](#install-bigbluebutton-lti-framework) to integrate your BigBlueButton server to any Learning Tools Interoperability (LTI) certified platform (that's the majority of known Learning Management Systems (LMS)!) (**optional**). \n\nNote:\n Everything from installing to [updating the system](#update-the-system) can be achieved through the `bbb-install.sh` command and their options.\n You can check the full list of the [command options](#command-options) and what they offer!\n You can [do everything in one command](#doing-everything-with-a-single-command).\n\n After installation you may want to know [what to do next](#next-steps).\n If having a problem when running the command? you can look [here](#troubleshooting).\n \n If having a question, a problem or wanting to know more you can [connect with community](#getting-help).\n You can also check the list of some [common limitations and caveats](#limitations)\n\n### Server choices\n\nThere are many hosting companies that can provide you with dedicated virtual and bare-metal servers to run BigBlueButton.  We list a few popular choices below (we are not making any recommendation here, just listing some of the more popular choices).\n\nFor quick setup, [Digital Ocean](https://www.digitalocean.com/) offers both virtual servers with Ubuntu 20.04 64-bit and a single public IP address (no firewall).  [Hetzner](https://hetzner.cloud/) offers dedicated servers with single IP address.\n\nOther popular choices, such as [ScaleWay](https://www.scaleway.com/) (choose either Bare Metal or Pro servers) and [Google Compute Engine](https://cloud.google.com/compute/), offer servers that are set up behind network address translation (NAT).  That is, they have both an internal and external IP address.  When installing on these servers, the `bbb-install.sh` will detect the internal/external addresses and configure BigBlueButton accordingly.  \n\nAnother popular choice is [Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2).  We recommend a `c5.2xlarge` or `c5a.2xlarge` (or larger) instance.  All EC2 servers are, by default, behind a firewall (which Amazon calls a `security group`).  You will need to manually configure the security group before installing BigBlueButton on EC2 and, in a similar manner, on Azure and Google Compute Engine (GCE).  (See screen shots in next section.)\n\nFinally, if `bbb-install.sh` is unable to configure your server behind NAT, we recommend going through docs on [Configure Firewall](https://docs.bigbluebutton.org/administration/firewall-configuration#overview).\n\n\n### Configuring the external firewall\n\nIf you install BigBlueButton on a server behind an external firewall, such an Amazon's EC2 security group, you need to configure the external firewall to forward incoming traffic on the following ports:\n\n  * TCP/IP port 22 (for SSH)\n  * TCP/IP ports 80/443 (for HTTP/HTTPS)\n  * UDP ports in the range 16384 - 32768 (for FreeSWITCH/HTML5 client RTP streams)\n\nIf you are using EC2, you should also assign the server an [Elastic IP address](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) to prevent it from getting a new IP address on reboot.\n\nOn Microsoft Azure, when you create an instance you need to add the following inbound port rules to enable incoming connections on ports 80, 443, and UDP port range 16384-32768:\n\n![Azure Cloud ](images/azure-firewall.png?raw=true \"Azure 80, 443, and UDP 16384-32768\")\n\nOn Google Compute Engine, when you create an instance you need to enable traffic on port 80 and 443.\n\n![Google Compute Engine 80-443](images/gce-80-443.png?raw=true \"GCE 80 and 443\")\n\nAfter the instance is created, you need to add a firewall rule to allow incoming UDP traffic on the port range 16384-32768.\n\n![Google Compute Engine Firewall](images/gce-firewall.png?raw=true \"GCE Firewall\")\n\nWe make a distinction here between the firewall installed with `-w` and the external firewall on a separate server.  Even with an external firewall, it is good practice to still install the UFW firewall on the BigBlueButton server.\n\n\n## Command options\n\nYou can get help by passing the `-h` option.\n\n~~~\nScript for installing a BigBlueButton 3.0 server in under 30 minutes. It also supports upgrading a BigBlueButton server to version 3.0 (from version 2.6.0+ or an earlier 2.7.x version)\n\nThis script also supports installation of a coturn (TURN) server on a separate server.\n\nUSAGE:\n    wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- [OPTIONS]\n\nOPTIONS (install BigBlueButton):\n\n  -v \u003cversion\u003e           Install given version of BigBlueButton (e.g. 'focal-270','jammy-300') (required)\n\n  -s \u003chostname\u003e          Configure server with \u003chostname\u003e\n  -e \u003cemail\u003e             Email for Let's Encrypt certbot\n\n  -x                     Use Let's Encrypt certbot with manual dns challenges\n\n  -g                     Install Greenlight version 3\n  -k                     Install Keycloak version 20\n\n  -t \u003ckey\u003e:\u003csecret\u003e      Install BigBlueButton LTI framework tools and add/update LTI consumer credentials \u003ckey\u003e:\u003csecret\u003e\n\n  -c \u003chostname\u003e:\u003csecret\u003e Configure with coturn server at \u003chostname\u003e using \u003csecret\u003e (instead of built-in TURN server)\n\n  -m \u003clink_path\u003e         Create a Symbolic link from /var/bigbluebutton to \u003clink_path\u003e\n\n  -p \u003chost\u003e[:\u003cport\u003e]     Use apt-get proxy at \u003chost\u003e (default port 3142)\n  -r \u003chost\u003e              Use alternative apt repository (such as packages-eu.bigbluebutton.org)\n\n  -d                     Skip SSL certificates request (use provided certificates from mounted volume) in /local/certs/\n  -w                     Install UFW firewall (recommended)\n\n  -j                     Allows the installation of BigBlueButton to proceed even if not all requirements [for production use] are met.\n                         Note that not all requirements can be ignored. This is useful in development / testing / ci scenarios.\n\n  -i                     Allows the installation of BigBlueButton to proceed even if Apache webserver is installed.\n\n  -h                     Print help\n\nOPTIONS (install Let's Encrypt certificate only):\n\n  -s \u003chostname\u003e          Configure server with \u003chostname\u003e (required)\n  -e \u003cemail\u003e             Configure email for Let's Encrypt certbot (required)\n  -l                     Only install Let's Encrypt certificate (not BigBlueButton)\n  -x                     Use Let's Encrypt certbot with manual dns challenges (optional)\n\nOPTIONS (install Greenlight only):\n\n  -g                     Install Greenlight version 3 (required)\n  -k                     Install Keycloak version 20 (optional)\n\nOPTIONS (install BigBlueButton LTI framework only):\n\n  -t \u003ckey\u003e:\u003csecret\u003e      Install BigBlueButton LTI framework tools and add/update LTI consumer credentials \u003ckey\u003e:\u003csecret\u003e (required)\n\nVARIABLES (configure Greenlight only):\n  GL_PATH                Configure Greenlight relative URL root path (Optional)\n                          * Use this when deploying Greenlight behind a reverse proxy on a path other than the default '/' e.g. '/gl'.\n\n\nEXAMPLES:\n\nSample options for setup a BigBlueButton 3.0 server\n\n    -v jammy-300 -s bbb.example.com -e info@example.com\n    -v focal-270 -s bbb.example.com -e info@example.com\n\nSample options for setup a BigBlueButton 3.0 server with Greenlight 3 and optionally Keycloak\n\n    -v jammy-300 -s bbb.example.com -e info@example.com -g [-k]\n    -v focal-270 -s bbb.example.com -e info@example.com -g [-k]\n\nSample options for setup a BigBlueButton 3.0 server with LTI framework while managing LTI consumer credentials MY_KEY:MY_SECRET\n\n    -v jammy-300 -s bbb.example.com -e info@example.com -t MY_KEY:MY_SECRET\n    -v focal-270 -s bbb.example.com -e info@example.com -t MY_KEY:MY_SECRET\n\nSUPPORT:\n    Community: https://bigbluebutton.org/support\n         Docs: https://github.com/bigbluebutton/bbb-install\n~~~\n\nBefore `bbb-install.sh` can install a SSL/TLS certificate, you will need to provide two pieces of information:\n   * A fully qualified domain name (FQDN), such as `bbb.example.com`, that resolves to the public IP address of your server\n   * An email address\n\nWhen you have set up the FQDN, check that it correctly resolves to the external IP address of the server using the `dig` command.\n\n~~~\ndig bbb.example.com @8.8.8.8\n~~~\n\nNote: we're using `bbb.example.com` as an example hostname and `info@example.com` as an example email address.  You need to substitute your real hostname and email.\n\nWith just these two pieces of information (FQDN and email address) you can use `bbb-install.sh` to automate the configuration of the BigBlueButton server with a TLS/SSL certificate.  For example, to install BigBlueButton with a TLS/SSL certificate from Let's Encrypt using `bbb.example.com` and `info@example.com`, enter the following command:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nThe `bbb-install.sh` script will also install a cron job that automatically renews the Let's Encrypt certificate so it doesn't expire.  Cool!\n\n\n### Installing in a private network\n\nThe default installation is meant to be for servers that are publicly available. This is because Let's Encrypt requires to access your system in order to automatically validate the FQDN provided.\n\nWhen installing BigBlueButton in a private network, it is possible to validate the FQDN manually, by adding the option `-x` to the command line. As in:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -x [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\n\nConfirm the use of the email account.\n\n```\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nWould you be willing to share your email address with the Electronic Frontier\nFoundation, a founding partner of the Let's Encrypt project and the non-profit\norganization that develops Certbot? We'd like to send you email about our work\nencrypting the web, EFF news, campaigns, and ways to support digital freedom.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n(Y)es/(N)o:\n```\n\nConfirm the use of the IP address\n```\nAre you OK with your IP being logged?\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n(Y)es/(N)o:\n```\n\nA challenge will be generated and shown in the console.\n\n```\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nPlease deploy a DNS TXT record under the name\n_acme-challenge.bbb.example.com with the following value:\n\n0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8\n\nBefore continuing, verify the record is deployed.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nPress Enter to Continue\n```\n\nBefore hitting Enter, create a TXT record in the DNS with the challenge that was generated.\n\n```\n_acme-challenge.bbb.example.com.  TXT   \"0bIA-3-RqbRo2EfbYTkuKk7xq2mzszUgVlr6l1OWjW8\"   60\n```\n\nThe downside of this is that because Let's Encrypt SSL certificates expire after 90 days, it will be necessary to manually update the certificates. In that case an email is sent a few days before the expiration and the next command has to be executed through the console.\n\n```\ncertbot --email info@example.com --agree-tos -d bbb.example.com --deploy-hook 'systemctl restart nginx' --no-bootstrap --manual-public-ip-logging-ok --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory certonly\n```\n\n### Install Greenlight\n\n[Greenlight](https://docs.bigbluebutton.org/greenlight/v3/install) is an open-source, LGPL-3.0 licensed web application that allows organizations to quickly set up a complete web conferencing platform using their existing BigBlueButton server. It is user-friendly for both regular and advanced users.\n\nGreenlight is BigBlueButton's official room manager, if you like to get a quick insight on its core features you can check our [official BigBlueButton demo](https://demo.bigbluebutton.org/). \n\nGreenlight offers BigBlueButton personal rooms, stable and user friendly join links, recordings management, protected rooms that requires access codes and/or for authenticated access only, pre-upload presentations, shared access, full control and customization of the platform at ease (Check Greenlight administrator below),...    \n\nGreenlight is also equipped with local authentication out of the box. This means that authentication is managed internally within the platform and does not require any external servers or services for identity management.\n If willing to use some identity protocols and/or services Greenlight got you covered!\nCheck [Greenlight External Authentication](https://docs.bigbluebutton.org/greenlight/v3/external-authentication) for documentation on how to add in support for a wide variety of authentication protocols and APIs to your platform through [Keycloak](https://www.keycloak.org/) or any [OpenID connect](https://openid.net/connect/) provider!\n\nMore on Greenlight can be found [here](https://docs.bigbluebutton.org/greenlight/v3/install) \n\nTo [install Greenlight](https://docs.bigbluebutton.org/greenlight/v3/install#bbb-install-script) you can simply use the `bbb-install.sh` command `-g` option:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\n\nTo install Keycloak just use the `-k` option with `-g`:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g -k [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nA successful installation/upgrade is confirmed through a message displayed on the console.\nThe message will also provide the link to access and configure Greenlight and the next steps that may you want to follow.\nBy default, for a FQDN of `bbb.example.com` you'd access https://bbb.example.com/ and https://bbb.example.com/keycloak **if you've installed Keycloak**.\n\nWhen accessing the link to your Greenlight deployment a result similar to the following screenshot is expected: \n\n![image](https://user-images.githubusercontent.com/29759616/231534866-23afa78e-4f7a-4a2d-be92-e3a560354078.png)\n\nYou can then sign-up and have an account\n![image](https://user-images.githubusercontent.com/29759616/231537382-813c752f-5ff0-45fa-b8e1-c4052361c202.png)\n![image](https://user-images.githubusercontent.com/29759616/231537452-8c67d5aa-441d-4529-ada4-ecb0f5f82758.png)\n\nNeed more control?\n\nAfter installation, you can become an [administrator](https://docs.bigbluebutton.org/greenlight/v3/install/#creating-an-admin-account-1) unlocking the full power of Greenlight to further manage and control the entire platform through:\n - Managing all of its resources such as users, recordings, rooms, roles ...\n - Managing all of its settings (allowing/denying sessions to be recorded, limiting allowed rooms maximum number per role, changing the registration method, ...) configuring Greenlight to meet your business requirements!\n - Customizing the deployment by changing the: Logo, theme, policies, terms and conditions!\n - ...\n \n Once signing-in as an administrator you'd be able to access the administrator panel:\n \n![image](https://user-images.githubusercontent.com/29759616/231612718-7ea4e5c6-cfde-47dc-baaf-2f4ae48d4561.png)\n![image](https://user-images.githubusercontent.com/29759616/231538444-c2050a28-db1d-4716-ab44-b41751938487.png)\n![image](https://user-images.githubusercontent.com/29759616/231538019-29897447-317a-4614-940c-5babb45d5e87.png)\n![image](https://user-images.githubusercontent.com/29759616/231538027-141d199a-7697-4504-b083-c5adcb544d2a.png)\n\n \n No need to be a BigBlueButton guru or a developer to use and customize Greenlight!\n\n#### Updates\n\nUpdating Greenlight is done simply through re-running the `bbb-install.sh` anytime while using the `-g` option:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -g [options]\n~~~\n\nNote: You don't need to re-use the `-k` to update Keycloak if already installed, using `-g` updates both of Greenlight and Keycloak as the latter is considered as a dependency to the project. \n\n#### Source\nYou can find the source for the Greenlight project [here](https://github.com/bigbluebutton/greenlight).\nYou can open tickets to highlight issues or to request new features.\nYou can become a contributor also!\n\n\n### Install BigBlueButton LTI framework \n\n[LTI](https://www.imsglobal.org/activity/learning-tools-interoperability) is an acronym for Learning Tools Interoperability, which was developed by the [1EdTech](https://www.1edtech.org/) (Also known as IMS Global Learning Consortium). Its main objective is to establish standardized connections between learning systems, such as Learning Management Systems (LMS), and external service tools.\n\nBigBlueButton is LTI 1.0 certified and can be seamlessly integrated into the majority of LMS systems or any LTI compatible platforms through its LTI framework.\n\nThe BigBlueButton LTI framework is a microservice LGPL-3.0 licensed project that enables the easy integration of your BigBlueButton server through the LTI protocol when direct integration through the [BigBlueButton API](https://docs.bigbluebutton.org/development/api) isn't possible.\n\nPlease check the list of known platforms that support BigBlueButton integration natively [here](https://bigbluebutton.org/schools/integrations/) before deciding to use LTI.\n\nThe BBB LTI framework is formed by a collection of services: The LTI Broker which is the entrypoint to the LTI framework and the only required LTI protocol aware component that bridges the LTI tools with the LTI protocol and a one or more LTI applications or tools where each provides one specific service or functionality through the usage of the BigBlueButton API like the LTI rooms application which abstracts and uses the BigBlueButton API to offer consumer platforms personnel managed rooms and recordings.\n\nThe Broker is a Web Application that acts as a LTI Broker for connecting Tool Consumers (like Moodle) with BigBlueButton Tools (like LTI rooms application) through the LTI protocol and the LTI tools are web applications that acts as a bridge between the consumers and BigBlueButton services. The most basic deployment of the framework therefore requires the collaboration of two applications, that is the Broker itself and a Tool such as the rooms application.\n\n\nTo install the LTI framework you can simply use the `bbb-install.sh` command `-t` option while providing a `KEY:SECRET` which you'll use when deploying the BigBlueButton LTI applications to your platform, for more details about the integration of a tool to your platform please refer to the official documentation of your solution:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -t MY_KEY:MY_SECRET [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nNote: `MY_KEY` and `MY_SECRET` are only credentials used for demonstration purposes **only**, in production you need to substitute those values to some complex hard to guess values.\nThe security of your deployment is guaranteed by guarding those credentials private and not sharing them.\n\nYou can manage your LTI credentials through the `bbb-install.sh` command using the same option:\n\n- To change the secret of a LTI credential re-run the same with the `-t` option while also using the same **KEY** but a new **SECRET**:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -t MY_KEY:MY_NEW_SECRET [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\n\nThis overwrites the old secret, so expect a discontinuity in your integration of BigBlueButton through the LTI framework -- you need to update your deployment on the Tool consumer platform following its official documentation to use the new credentials.\n\n- To add new credentials, re-run the same `bbb-install.sh` command with the `-t` option while also providing new pair of **KEY** and **SECRET**:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -t MY_NEW_KEY:MY_NEW_SECRET [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nOld credentials will be intact so don't expect a discontinuity of your integration, you can start using the new credentials in new platforms.\n\nA successful installation/upgrade is confirmed through a message displayed on the console.\nThe message will also provide the link to access and configure the LTI framework deployment.\nBy default, for a FQDN of `bbb.example.com` you'd access https://bbb.example.com/lti and you'd have a similar page to the following screenshot: \n\n![image](https://user-images.githubusercontent.com/29759616/231607217-7602738a-3a41-4884-90df-5b16764e7551.png)\n\nNote: on your system `bbb.example.com` will be substituted with your FQDN.\n\n#### Updates\n\nUpdating the LTI framework is done simply through re-running the `bbb-install.sh` anytime while using the `-t` option and providing credentials:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -t KEY:SECRET [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nNotice the use of the same LTI credentials to avoid updating existing or adding new ones.\n\n#### Source\nYou can find the source for the LTI broker [here](https://github.com/bigbluebutton/bbb-lti-broker) and the LTI rooms application [here](https://github.com/bigbluebutton/bbb-app-rooms).\nYou can open tickets to highlight issues or to request new features.\nYou can become a contributor also!\n\n### Linking `/var/bigbluebutton` to another directory\n\nThe install script allows you to pass a path which will be used to create a symbolic link with `/var/bigbluebutton`:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -s bbb.example.com -e info@example.com -v jammy-300 -w -m /mnt/test [options]\n~~~\n\n\u003e [options] is a placeholder for one or more [options](#command-options) that you may use.\n\nThis allows users to store the contents of /`var/bigbluebutton`, which can get quite large, in a separate volume.\n\n### Doing everything with a single command\n\nIf you want to set up BigBlueButton with a TLS/SSL certificate, [GreenLight](#install-greenlight), [Keycloak](https://docs.bigbluebutton.org/greenlight/v3/external-authentication#installing-keycloak) and [BigBlueButton LTI](#install-bigbluebutton-lti-framework) with LTI credentials `MY_KEY:MY_SECRET` , you can do this all with a single command:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g -k -t MY_KEY:MY_SECRET\n~~~\n\nNote: You'd need to substitute your FQDN, email address and LTI credentials.\n\n- `-g` will install the latest version of Greenlight v3.\n- `-k` will install and configure Keycloak for Greenlight external authentication.\n- `-t` will install the latest version the BigBlueButton LTI framework.\n\n### Update the system\nFurthermore, you can re-run the same `bbb-install.sh` command used for installation later to update your server to the latest version of BigBlueButton 3.0 along with any other installed applications like [Greenlight](#install-greenlight) or [BigBlueButton LTI](#install-bigbluebutton-lti-frameworkfo).\n\nSo to update the system in [Doing everything with a single command](#doing-everything-with-a-single-command) example you'd re-run the same command with the same options:\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -w -g -k -t MY_KEY:MY_SECRET\n~~~\n\n- `-g` will update Greenlight **and Keycloak** to the latest stable version.\n- `-t` will update BigBlueButton LTI framework to the latest stable version.\n- `-k` is optional and is only required to be used to resolve any encountered issues when installing Keycloak.\n\nWe announce BigBlueButton updates to the [bigbluebutton-dev](https://groups.google.com/forum/#!forum/bigbluebutton-dev) mailing list.\n\n\n### Install a TURN server\n\nRunning the BigBlueButton client requires a wide range of UDP ports to be available for WebRTC communication.  However, in some network restricted sites or development environments, such as those behind NAT or a corporate firewall that restricts UDP connections, users may be unable to make outgoing UDP connections to your BigBlueButton server.\n\nIf you have setup your BigBlueButton on the internet, and you have users accessing the BigBlueButton server behind a restrictive firewall that blocks UDP connections, then setting up a separate TURN server will allow users to have the TURN server (connected via port 443) proxy their UDP-based WebRTC media (audio, webcam, and screen share) to the BigBlueButton server.\n\nWe recommend Ubuntu 22.04 as it has a newer version of [coturn](https://github.com/coturn/coturn) than Ubuntu 18.04.  The server does not need to be very powerful as it will only relay communications from the BigBlueButton client to the BigBlueButton server when necessary.  A dual core server on Digital Ocean should be sufficient for a dozen BigBlueButton servers.  \n\nThe server should have the following additional ports available:\n\n| Ports         | Protocol      | Description |\n| ------------- | ------------- | ----------- |\n| 3478          | TCP/UDP       | coturn listening port |\n| 80            | TCP           | HTTP required for Certbot |\n| 443           | TCP/UDP       | TLS listening port |\n| 32769-65535   | UDP           | relay ports range |\n\n\nBefore running `bbb-install.sh` to setup the TURN server (which installs and configures the `coturn` package), you need\n\n  * A fully qualified domain name (FQDN) with \n    * an A record that resolves to the server's public IPV4 address\n    * an AAAA record that resolves to the server's public IPV6 address\n  * An email address for Let's Encrypt\n  * A secret key (it can be an 8 to 16 character random string that you create).\n\nWith the above in place, you can set up a TURN server for BigBlueButton using the command\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -c \u003cFQDN\u003e:\u003cSECRET\u003e -e \u003cEMAIL\u003e\n~~~\n\nNote, we've omitted the `-v` option, which causes `bbb-install.sh` to just install and configure coturn.  For example, using `turn.example.com` as the FQDN, `1234abcd` as the shared secret, and `info@example.com` as the email address (you would need to substitute your own values), logging into the server via SSH and running the following command as root\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -c turn.example.com:1234abcd -e info@example.com\n~~~\n\nwill do the following\n\n  * Install the latest version of coturn available for Ubuntu 22.04\n    * Provide a minimal configuration for `/etc/turnserver.conf`\n    * Add a systemd override to ensure coturn can bind to port 443\n    * Configure logging to `/var/log/turnserver/turnserver.log`\n    * Add a logrotate configuration to keep the logs for 7 days\n  * Setup a SSL certificate using Let's Encrypt\n    * Add a deploy hook for Let's Encrypt to have coturn reload the certificates upon renewal \n\nWith a SSL certificate in place, coturn can relay access to your BigBlueButton server via TCP/IP on port 443.  This means if a user is behind a restrictive firewall that blocks all outgoing UDP connections, the TURN server can accept connections from the user via TCP/IP on port 443 and relay the data to your BigBlueButton server via UDP.\n\nAfter the TURN server is setup, you can configure your BigBlueButton server to use the TURN server by running the `bbb-install.sh` command again and add the parameter `-c \u003cFQDN\u003e:\u003cSECRET\u003e` (this tells `bbb-install.sh` to set up the configuration for the TURN server running at \u003cFQDN\u003e using the share secret \u003cSECRET\u003e.  For example,\n\n~~~\nwget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v3.0.x-release/bbb-install.sh | bash -s -- -v jammy-300 -s bbb.example.com -e info@example.com -c turn.example.com:1234abcd\n~~~\n\nYou can re-use a single TURN server for multiple BigBlueButton installations.\n\n\n## Next steps\n* You're out of sync and want to catch up with official releases, consider [updating your system](#update-the-system).\n\n* You installed BigBlueButton but don't know how to easily use it for your online workloads?\n Have you [installed Greenlight](https://docs.bigbluebutton.org/greenlight/v3/install) BigBlueButton's first and biggest room manager?\n \n* Are you using a Learning Management System (LMS) like [Moodle](https://moodle.org/)?\n Have you known that you can integrate your BigBlueButton server into your favorite LMS system either!\n Check [Integrations](https://bigbluebutton.org/schools/integrations/) to try find us on your solution marketplace!\n\n No luck? No worries!!\n\nBigBlueButton is [LTI](https://www.imsglobal.org/activity/learning-tools-interoperability) 1.0 certified just follow the step on how to [install BigBlueButton LTI](#install-bigbluebutton-lti-framework)!\n Your users will feel that your platform has BigBlueButton embedded when it's not!\n Your same BigBlueButton server can be used by multiple LMS platforms, Greenlight, APIs and your custom applications simultaneously!\n \n* You can also [customize](https://docs.bigbluebutton.org/administration/customize) and [configure](https://docs.bigbluebutton.org/administration/bbb-conf) your BigBlueButton server!\n\n* Your business is growing fast (we're happy for you!) and your all in one deployment isn't doing well?\nWant to have a premium deployment of BigBlueButton at scale supervised by **BigBlueButton experts**?\nCheck [the list of official commercial support providers](https://bigbluebutton.org/commercial-support/) that could save your day!\n\n* You're becoming the expert then BigBlueButton, [Greenlight](#install-greenlight), [BigBlueButton LTI](#install-bigbluebutton-lti-framework) and even the `bbb-install.sh` are all open source so why don't join us and become a contributor that leaves the mark? Check [contributing to BigBlueButton](https://docs.bigbluebutton.org/support/faq/#contributing-to-bigbluebutton) for more details.\n You can also help others in their BigBlueButton journey by [joining the community](#getting-help).\n \n * BigBlueButton recordings are getting out of hand?\n  Learn about [linking recordings directory to different locations](#linking-varbigbluebutton-to-another-directory).\n\n * You want to keep your system private but you need to have a valid Let's encrypt certificate [check this for more details](#installing-in-a-private-network).\n\n\n## Troubleshooting\n\n### Getting help\n\nIf you have feedback on the script, or need help using it, please post to the [BigBlueButton Setup](https://bigbluebutton.org/support/community/) mailing list with details of the issue (and include related information such as steps to reproduce the error).\n\nIf you encounter an error with the script (such as it not completing or throwing an error), please open a [GitHub issue](https://github.com/bigbluebutton/bbb-install/issues) and provide steps to reproduce the issue.\n\n\n## Limitations\n\nIf you are running your BigBlueButton behind a firewall, such as on EC2, this script will not configure your firewall.  You'll need to [configure the firewall](#configuring-the-external-firewall) manually.\n\nIf you are upgrading from a very old version BigBlueButton (running on an older Operating System), we recommend you set up a new server for BigBlueButton's latest stable version and copy over your configuration settings and [transfer recordings](https://docs.bigbluebutton.org/admin/customize.html#transfer-recordings) from the previous version.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbluebutton%2Fbbb-install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigbluebutton%2Fbbb-install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbluebutton%2Fbbb-install/lists"}