You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/configuration-README.md
+109Lines changed: 109 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -108,3 +108,112 @@ Additionally, these options can be set:
108
108
*`pool`: The number of connections in the pool (should match number of threads). Defaults to `RAILS_MAX_THREADS` environment variable, otherwise 5.
109
109
*`pool_timeout`: Amount of time (seconds) to wait if all connections in the pool are in use. Defaults to 5.
110
110
*`namespace`: An optional prefix to apply to all keys stored in Redis.
111
+
112
+
### Multitenancy
113
+
114
+
Scalelite supports multitenancy using subdomains for each tenant. By using subdomains, you can easily isolate each tenant's data and ensure that they can only access their own meetings and recordings.
115
+
116
+
To access their deployment, each tenant can use the following URL format: `tenant_name.sl.example.com`. Here, `tenant_name` refers to the name of the tenant, and `sl.example.com` is the domain where Scalelite is deployed.
117
+
118
+
To ensure the security of each tenant's data, we recommend using either a wildcard SSL/TLS certificate or separate DNS entries for each tenant. This will prevent unauthorized access to other tenants' data.
119
+
120
+
Each tenant will have access only to their own meetings and recordings. They will not be able to receive any information on other tenants or make any changes or actions to other tenants' resources.
121
+
122
+
To enable multitenancy in Scalelite, you only need to set `MULTITENANCY_ENABLED=true` in your environment variables.
123
+
124
+
#### Sample Tenant Setup
125
+
To create new tenants, we've added a few rake tasks to help. First, add the new tenants and secrets to Scalelite:
Once you have created multiple tenants in Scalelite, you will need to update the endpoint and secret for each tenant in any BigBlueButton front-end that you are using (such as Greenlight or Moodle).
133
+
134
+
To do this, you will need to set the following environment variables / configuration variables in your BigBlueButton front-end:
135
+
136
+
1.`BIGBLUEBUTTON_ENDPOINT: tenant1.sl.example.com` - Replace `tenant1.sl.example.com` with the subdomain URL for the specific tenant.
137
+
138
+
2.`BIGBLUEBUTTON_SECRET: secret1` - Replace `secret1` with the secret for the specific tenant.
139
+
140
+
Note that you will need to set these environment variables for each tenant in your BigBlueButton front-end. This ensures that each tenant's meetings and recordings are directed to their specific Scalelite deployment.
141
+
142
+
#### Add Tenant
143
+
`./bin/rake tenants:add[id,secrets]`
144
+
145
+
If you need to add multiple secrets for a tenant, you can provide a colon-separated (`:`) list of secrets when creating the tenant in Scalelite.
146
+
147
+
When you run this command, Scalelite will print out the ID of the newly created tenant, followed by `OK` if the operation was successful.
148
+
149
+
#### Update Tenant
150
+
`./bin/rake tenants:update[id,name,secrets]`
151
+
152
+
You can update an existing tenants name or secrets using this rake command.
153
+
154
+
When you run this command, Scalelite will print out the ID of the updated tenant, followed by `OK` if the operation was successful.
155
+
156
+
#### Remove Tenant
157
+
`./bin/rake tenants:remove[id]`
158
+
159
+
Warning: Removing a tenant with data still in the database may cause some inconsistencies.
160
+
161
+
#### Show Tenants
162
+
`./bin/rake tenants`
163
+
164
+
When you run this command, Scalelite will return a list of all tenants, along with their IDs, names, and secrets. For example:
165
+
166
+
```
167
+
id: 9a870f45-ec23-4d29-828b-4673f3536d7b
168
+
name: tenant1
169
+
secrets: secret1
170
+
id: 4f3e4bb8-2a4e-41a6-9af8-0678c651777f
171
+
name: tenant2
172
+
secrets: secret2:secret2a:secret2b
173
+
```
174
+
#### Associate Old Recordings with a Tenant
175
+
`./bin/rake recordings:addToTenant[tenant-id]`
176
+
177
+
If you are switching over from single-tenancy to multitenancy, the existing recordings will have to be transferred to the new tenant. The above task updates the recordings' metadata with the tenant id.
178
+
179
+
### Tenant Settings
180
+
181
+
If you have enabled multitenancy for your Scalelite deployment, you gain the ability to customize the parameters passed into the `create` and `join` calls on a per-tenant basis. This functionality empowers you to tailor the user experience according to the specific needs and preferences of each tenant.
182
+
183
+
By customizing these parameters for each tenant, you can modify various aspects of the meeting experience, such as recording settings, welcome messages, and lock settings, among others. This level of customization ensures that each tenant receives a unique and tailored experience within the Scalelite platform.
To add a new TenantSetting, Scalelite requires 4 values:
189
+
1.`tenant_id`: This is the unique identifier of the tenant to which you want to add the setting.
190
+
2.`param`: Specify the name of the parameter you wish to set. For example, you can use values like record, welcome, or lockSettingsLockOnJoin. To view a comprehensive list of available options, refer to the [create](https://docs.bigbluebutton.org/development/api#create) and [join](https://docs.bigbluebutton.org/development/api#join) documentation.
191
+
3.`value` -> Assign the desired value to the parameter you specified. It can be a boolean value like 'true' or 'false', a numeric value like '5' or a string like 'Welcome to BigBlueButton'.
192
+
4.`override` -> This field should be set to either 'true' or 'false'. If set to 'true', the provided value will override any value passed by the person making the create/join call. If set to 'false', the value will only be applied if the user making the create/join call does not provide any value for the specified parameter.
193
+
194
+
When you run this command, Scalelite will print out the ID of the newly created setting, followed by `OK` if the operation was successful.
195
+
196
+
#### Remove Tenant Setting
197
+
`./bin/rake tenantSettings:remove[id]`
198
+
199
+
#### Show Tenant Settings
200
+
`./bin/rake tenantSettings`
201
+
202
+
When you run this command, Scalelite will return a list of all settings for all tenants. For example:
Scalelite supports multitenancy using subdomains for each tenant. By using subdomains, you can easily isolate each tenant's data and ensure that they can only access their own meetings and recordings.
421
-
422
-
To access their deployment, each tenant can use the following URL format: `tenant_name.sl.example.com`. Here, `tenant_name` refers to the name of the tenant, and `sl.example.com` is the domain where Scalelite is deployed.
423
-
424
-
To ensure the security of each tenant's data, we recommend using either a wildcard SSL/TLS certificate or separate DNS entries for each tenant. This will prevent unauthorized access to other tenants' data.
425
-
426
-
Each tenant will have access only to their own meetings and recordings. They will not be able to receive any information on other tenants or make any changes or actions to other tenants' resources.
427
-
428
-
To enable multitenancy in Scalelite, you only need to set `MULTITENANCY_ENABLED=true` in your environment variables.
429
-
430
-
#### Sample Tenant Setup
431
-
To create new tenants, we've added a few rake tasks to help. First, add the new tenants and secrets to Scalelite:
Once you have created multiple tenants in Scalelite, you will need to update the endpoint and secret for each tenant in any BigBlueButton front-end that you are using (such as Greenlight or Moodle).
439
-
440
-
To do this, you will need to set the following environment variables / configuration variables in your BigBlueButton front-end:
441
-
442
-
1.`BIGBLUEBUTTON_ENDPOINT: tenant1.sl.example.com` - Replace `tenant1.sl.example.com` with the subdomain URL for the specific tenant.
443
-
444
-
2.`BIGBLUEBUTTON_SECRET: secret1` - Replace `secret1` with the secret for the specific tenant.
445
-
446
-
Note that you will need to set these environment variables for each tenant in your BigBlueButton front-end. This ensures that each tenant's meetings and recordings are directed to their specific Scalelite deployment.
447
-
448
-
#### Add Tenant
449
-
`./bin/rake tenants:add[id,secrets]`
450
-
451
-
If you need to add multiple secrets for a tenant, you can provide a colon-separated (`:`) list of secrets when creating the tenant in Scalelite.
452
-
453
-
When you run this command, Scalelite will print out the ID of the newly created tenant, followed by `OK` if the operation was successful.
454
-
455
-
#### Update Tenant
456
-
`./bin/rake tenants:update[id,name,secrets]`
457
-
458
-
You can update an existing tenants name or secrets using this rake command.
459
-
460
-
When you run this command, Scalelite will print out the ID of the updated tenant, followed by `OK` if the operation was successful.
461
-
462
-
#### Remove Tenant
463
-
`./bin/rake tenants:remove[id]`
464
-
465
-
Warning: Removing a tenant with data still in the database may cause some inconsistencies.
466
-
467
-
#### Show Tenants
468
-
`./bin/rake tenants`
469
-
470
-
When you run this command, Scalelite will return a list of all tenants, along with their IDs, names, and secrets. For example:
471
-
472
-
```
473
-
id: 9a870f45-ec23-4d29-828b-4673f3536d7b
474
-
name: tenant1
475
-
secrets: secret1
476
-
id: 4f3e4bb8-2a4e-41a6-9af8-0678c651777f
477
-
name: tenant2
478
-
secrets: secret2:secret2a:secret2b
479
-
```
480
-
#### Associate Old Recordings with a Tenant
481
-
`./bin/rake recordings:addToTenant[tenant-id]`
482
-
483
-
If you are switching over from single-tenancy to multitenancy, the existing recordings will have to be transferred to the new tenant. The above task updates the recordings' metadata with the tenant id.
484
-
485
-
### Tenant Settings
486
-
487
-
If you have enabled multitenancy for your Scalelite deployment, you gain the ability to customize the parameters passed into the `create` and `join` calls on a per-tenant basis. This functionality empowers you to tailor the user experience according to the specific needs and preferences of each tenant.
488
-
489
-
By customizing these parameters for each tenant, you can modify various aspects of the meeting experience, such as recording settings, welcome messages, and lock settings, among others. This level of customization ensures that each tenant receives a unique and tailored experience within the Scalelite platform.
To add a new TenantSetting, Scalelite requires 4 values:
495
-
1.`tenant_id`: This is the unique identifier of the tenant to which you want to add the setting.
496
-
2.`param`: Specify the name of the parameter you wish to set. For example, you can use values like record, welcome, or lockSettingsLockOnJoin. To view a comprehensive list of available options, refer to the [create](https://docs.bigbluebutton.org/development/api#create) and [join](https://docs.bigbluebutton.org/development/api#join) documentation.
497
-
3.`value` -> Assign the desired value to the parameter you specified. It can be a boolean value like 'true' or 'false', a numeric value like '5' or a string like 'Welcome to BigBlueButton'.
498
-
4.`override` -> This field should be set to either 'true' or 'false'. If set to 'true', the provided value will override any value passed by the person making the create/join call. If set to 'false', the value will only be applied if the user making the create/join call does not provide any value for the specified parameter.
499
-
500
-
When you run this command, Scalelite will print out the ID of the newly created setting, followed by `OK` if the operation was successful.
501
-
502
-
#### Remove Tenant Setting
503
-
`./bin/rake tenantSettings:remove[id]`
504
-
505
-
#### Show Tenant Settings
506
-
`./bin/rake tenantSettings`
507
-
508
-
When you run this command, Scalelite will return a list of all settings for all tenants. For example:
0 commit comments