Getting evaluation license
To run Roombelt you need a Ubuntu 20.04 server. As Roombelt is a web application it needs to be accessible from your network over a secure HTTPS connection. Setting up an HTTPS certificate is beyond the scope of this document and can be done e.g. using Apache or NGINX with Let’s Encrypt.
Roombelt is distributed as a single binary. Provisioning it (e.g. running when the Ubuntu server starts and restarting after an application crash) can be done using standard Linux mechanisms (e.g.
systemd) and is not covered in this document.
Creating an application in Google Cloud Console
- 2.Create a new project using the Create Project button.
- 3.In the new project go to API Library and enable the following API-s
- 1.Google Calendar API
- 2.Google People API
- 4.Go to OAuth consent screen, select “Internal” User Type, set Product name shown to users to value Roombelt, and set the developer contact email. Leave the other fields empty.
- 5.Go to Credentials and click Create Credentials -> OAuth client ID
- 1.Choose Application type to value Web application
- 2.Set Authorized redirect URIs to
- 6.Click Save
- 7.Store Client ID and Client secret somewhere - you will need them in a moment.
Roombelt configuration file
Roombelt configuration is done with the roombelt.env configuration file. Set the following fields:
GOOGLE_CLIENT_IDto the Client ID that you saved earlier.
GOOGLE_CLIENT_SECRETto the Client Secret that you saved earlier.
GOOGLE_REDIRECT_URLto the Authorized redirect URIs that you’ve configured in the Google Cloud in the previous steps.
https://<ROOMBELT_URL>/google/web_hook. If this variable is set, Roombelt uses webhooks instead of short polling Google Calendar API. As this is yet another point of failure it’s recommended to not set the variable unless the installation is reaching Google API limits.
There are additional configuration options described in the sample roombelt.env configuration file delivered with Roombelt binary.
By default, Roombelt uses SQLite database which is sufficient for most use cases. If an external database is preferred you can provide a database connection string using the
DATABASE_URLvariable in the roombelt.env configuration file. Supported databases include PostgreSQL and MySQL.
Roombelt creates and updates the database schema automatically if the
UPDATE_DATABASE_SCHEMAvariable is set to true in the configuration file. Interrupting the database update process can break the database permanently so it’s highly recommended to:
- 1.Start Roombelt for the first time with
- 2.Wait about a minute to ensure the database schema is created.
- 3.Kill Roombelt, set
UPDATE_DATABASE_SCHEMA=false, and restart the application.
There are some optional settings that improve the security of the Roombelt deployment:
ALLOWED_EMAILSin roombelt.env configuration file to the email address of the service account used to configure meeting room displays in your organization. This will block access to your Roombelt instance for other users from your organization and users from other organizations.