Skip to main content
Version: DEV

Provisioning

Provisioning via JSON files​

PILOS provides a command to provision servers, server pools, room types, roles, users and settings with JSON files.

Example

docker compose exec app pilos-cli provision:all provisioning_data.json

The provided file must be readable inside the container. You can place it in a mounted folder or copy it into the container. Remember that this file contains sensitive data - you probably want to delete it after provisioning.

An example JSON file showcasing most capabilities can be found in test data.

The following sections form a complete specification of the file format.

Top-level sections​

SectionTypeDefaultDescription
serversobject{}Creating and/or wiping of servers
server_poolsobject{}Creating and/or wiping of server pools
room_typesobject{}Creating and/or wiping of room types
rolesobject{}Creating and/or wiping of user roles
usersobject{}Creating and/or wiping of users
settingsobject{}Configuration of application settings

All sections are optional. Missing sections will be skipped.

Section servers​

FieldTypeDefaultDescription
wipebooleanfalseIf set to true, all existing servers are deleted before creating new ones.
add[object][]A list of new servers to create.

All fields are optional. All items in the add array have the following format:

FieldTypeDescription
namestringServer name shown in frontend
descriptionstringServer description shown in frontend
endpointstringBBB worker API URL
secretstringBBB worker API secret
strengthintegerServer strength [1 .. 10]
statusstringServer status [enabled, disabled]

All fields are required and do not have default values.

Section server_pools​

FieldTypeDefaultDescription
wipebooleanfalseIf set to true, all existing server pools are deleted before creating new ones.
add[object][]A list of new server pools to create.

All fields are optional. All items in the add array have the following format:

FieldTypeDescription
namestringServer pool name shown in frontend
descriptionstringServer pool description shown in frontend
servers[string]Names of all servers belonging to the pool

All fields are required and do not have default values.

Section room_types​

FieldTypeDefaultDescription
wipebooleanfalseIf set to true, all existing room types are deleted before creating new ones.
add[object][]A list of new room types to create.

All fields are optional. All items in the add array have the following format:

FieldTypeDescription
namestringRoom type name shown in frontend
descriptionstringRoom type description shown in frontend
colorstringColor used for the room type in frontend, given as hex-string, e.g. #f00baa
server_poolstringName of the server pool to use for meetings

All fields are required and do not have default values.

Section roles​

FieldTypeDefaultDescription
wipebooleanfalseIf set to true, all existing roles are deleted before creating new ones.
add[object][]A list of new roles to create.

All fields are optional. All items in the add array have the following format:

FieldTypeDescription
namestringRole name shown in frontend
permissionsobjectPermissions granted to users

All fields are required and do not have default values. The permissions object has the following format:

FieldTypeDefaultAvailable permissions
rooms[string][]viewAll, create, manage
meetings[string][]viewAny
settings[string][]viewAny, update
users[string][]viewAny, view, update, create, delete, updateOwnAttributes
roles[string][]viewAny, view, update, create, delete
roomTypes[string][]view, update, create, delete
servers[string][]viewAny, view, update, create, delete
serverPools[string][]viewAny, view, update, create, delete

All fields are optional. All permissions of missing fields are revoked.

Section users​

FieldTypeDefaultDescription
wipebooleanfalseIf set to true, all existing users are deleted before creating new ones.
add[object][]A list of new users to create.

All fields are optional. All items in the add array have the following format:

FieldTypeDescription
firstnamestringFirst name
lastnamestringLast name
emailstringEmail address
passwordstringPassword (plain text!)
authenticatorstringOne of [local, ldap, shibboleth]
roles[string]List of role names
localestringOne of the ENABLED_LOCALES in .env; see User Interface and Localization Configuration
timezonestringTimezone, e.g. Europe/Berlin

All fields are required and do not have default values.

Section settings​

SubsectionTypeDefaultDescription
generalobject{}General application settings
recordingobject{}Recording settings
roomobject{}Room settings
userobject{}User settings

All subsections and fields within are optional.

Subsection general​

FieldTypeDescription
namestringName of the application
pagination_page_sizeintegerPagination page size
default_timezonestringDefault timezone
help_urlstringURL to the help page
legal_notice_urlstringURL to the legal notice
privacy_policy_urlstringURL to the privacy policy
accessibility_statement_urlstringURL to the accessibility statement
toast_lifetimeintegerDisplay duration of pop-up messages
no_welcome_pagebooleanHide welcome page

Subsection recording​

FieldTypeDescription
server_usage_enabledbooleanRecord server utilisation
server_usage_retention_periodintegerRetention period of the server utilisation in days
meeting_usage_enabledbooleanRecord utilisation of meetings
meeting_usage_retention_periodintegerRetention period of the meeting utilisation in days
attendance_retention_periodintegerRetention period of the attendance logging in days
recording_retention_periodintegerStorage duration of the recordings in days

Subsection room​

FieldTypeDescription
limitintegerRoom limit
personalized_link_expirationintegerExpiration time for personalized room links
auto_delete_inactive_periodintegerPeriod until inactive rooms are deleted
auto_delete_never_used_periodintegerPeriod until never used rooms are deleted
auto_delete_deadline_periodintegerDeadline for deletion
file_terms_of_usestringTerms of use for file download

Subsection user​

FieldTypeDescription
password_change_allowedbooleanGive local users the possibility to change their password