Available from v4.16.0 and later.
Enable conferencing
1
Register an OAuth app
Follow the setup for each provider you want below. Google Meet and Microsoft Teams reuse the app you may already have for Single Sign-On.
2
Set the variables
Add the provider’s variables to your
.env, and list it in CONFERENCING_PROVIDERS, for example CONFERENCING_PROVIDERS=google-meet,zoom.3
Restart
Run
./rallly.sh restart. Conferencing appears in Settings for every user.A comma separated list of the providers organizers can use:
google-meet, zoom, microsoft-teams, webex. A listed provider is offered once its OAuth app variables are set; Google and Microsoft credentials used for sign in never turn on Meet or Teams by themselves. An unknown value stops Rallly from starting. A listed provider without credentials is not offered, Rallly logs a warning at startup, and the Conferencing page says no provider is set up. Organizers can always paste their own video call link, whatever this lists.https://<YOUR_DOMAIN>. It must match exactly, including the scheme and without a trailing slash.
Google Meet
Google Meet uses the same Google OAuth app as Google sign in and Google Calendar. Setting the Google variables for sign in does not turn on Google Meet: finish the steps below, then addgoogle-meet to CONFERENCING_PROVIDERS.
Setup
Setup
- In the Google Cloud console, open the project that holds your OAuth client, or create one.
- Under APIs & Services > Library, enable the Google Meet REST API.
-
Under Google Auth Platform > Data Access, add the scope
https://www.googleapis.com/auth/meetings.space.created. Rallly also asks foruserinfo.emailanduserinfo.profile. -
Under Google Auth Platform > Audience, choose who can connect:
- Internal if everyone using your instance is in your Google Workspace organization. Google does not review internal apps and shows no warning.
- External otherwise.
meetings.space.createdis a sensitive scope, so until Google verifies your app, users see an “unverified app” warning and the app is limited to 100 users. While the app is in Testing, only the test users you list can connect.
- Under Google Auth Platform > Clients, open your Web application client (or create one) and add this to Authorized redirect URIs:
/api/auth/callback/google URI if you use Google sign in.The client ID of your Google OAuth app. Shared with Google sign in and Google Calendar.
The client secret of your Google OAuth app.
Zoom
Setup
Setup
- Sign in to the Zoom App Marketplace with an account on your organization’s Zoom account and choose Develop > Build App. Create a General App that is User managed. Building the app here does not list it on the Marketplace.
- Under Basic Information, set the OAuth Redirect URL and add the same address to the OAuth Allow List:
-
Under Scopes, add
meeting:write:meetinganduser:read:user. - Copy the Client ID and Client Secret from Basic Information.
The client ID of your Zoom app. Set together with
ZOOM_CLIENT_SECRET, or Rallly refuses to start.The client secret of your Zoom app.
The secret token of the app’s event subscription. Only needed for deauthorization notices.
Microsoft Teams
Microsoft Teams uses the same Microsoft Entra ID registration as Microsoft sign in, with an extra redirect URI and Graph permissions. Setting the Microsoft variables for sign in does not turn on Teams: finish the steps below, then addmicrosoft-teams to CONFERENCING_PROVIDERS.
Setup
Setup
- Register an application in the Microsoft Entra admin center, or open your existing one. See Single Sign-On for sign in.
- Under Authentication, add a Web redirect URI:
- Under API permissions, add the delegated Microsoft Graph permissions
OnlineMeetings.ReadWrite,User.Readandoffline_access. If your organization does not let users consent to apps, choose Grant admin consent.
MICROSOFT_TENANT_ID set to common or consumers, Teams connects through the organizations endpoint; with a tenant ID it connects through that tenant.Administrators of other organizations can approve the app for their whole organization by opening https://<YOUR_DOMAIN>/api/integrations/admin-consent/microsoft-teams. See Admin approval.The client ID of your Microsoft registration. Shared with Microsoft sign in.
The client secret of your Microsoft registration.
default:"common"
The tenant of your Microsoft registration.
Webex
Setup
Setup
- Sign in to the Webex Developer Portal and choose My Webex Apps > Create a New App > Integration.
- Set the Redirect URI:
-
Select the scopes
meeting:schedules_writeandspark:people_read. - Save, then copy the Client ID and Client Secret. Webex shows the secret only once.
The client ID of your Webex integration. Set together with
WEBEX_CLIENT_SECRET, or Rallly refuses to start.The client secret of your Webex integration.
Troubleshooting
Rallly does not start after enabling conferencing.CONFERENCING_PROVIDERS has a value that is not a provider, or only one of ZOOM_CLIENT_ID and ZOOM_CLIENT_SECRET (or the Webex pair) is set. Run ./rallly.sh logs web to see which.
Conferencing does not appear in Settings. CONFERENCING_PROVIDERS is unset or empty. Restart after editing .env.
Conferencing says no video call providers are set up, or a provider is missing. A provider in CONFERENCING_PROVIDERS has no credentials. The startup warning in ./rallly.sh logs web names it; add its variables as described above and restart.
The provider says the redirect URI does not match (redirect_uri_mismatch on Google). The URI registered with the provider differs from the one Rallly sends. Compare it character by character with the URI above, including https, your exact domain and the provider name at the end.
Google shows an “unverified app” warning. Your consent screen is External and Google has not verified the meetings.space.created scope. Users can continue past the warning, or you can make the app Internal or submit it for verification.
Connecting works but finalizing fails. The provider refused to create the meeting. For Google Meet, check that the Google Meet REST API is enabled. For Teams, the account needs a Teams license. Disconnecting and reconnecting the account in Conferencing settings refreshes its tokens.