Google Calendar
Getting evaluation license
Prerequisites
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.
- 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.
- 1.Choose Application type to value Web application
- 2.Set Authorized redirect URIs to
https://<ROOMBELT_URL>/google/oauth_callback
- 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_ID
to the Client ID that you saved earlier.GOOGLE_CLIENT_SECRET
to the Client Secret that you saved earlier.GOOGLE_REDIRECT_URL
to the Authorized redirect URIs that you’ve configured in the Google Cloud in the previous steps.- (Optionally)
GOOGLE_WEB_HOOK_URL
tohttps://<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.
Database
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_URL
variable in the roombelt.env configuration file. Supported databases include PostgreSQL and MySQL.Roombelt creates and updates the database schema automatically if the
UPDATE_DATABASE_SCHEMA
variable 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
UPDATE_DATABASE_SCHEMA=true
. - 2.Wait about a minute to ensure the database schema is created.
- 3.Kill Roombelt, set
UPDATE_DATABASE_SCHEMA=false
, and restart the application.
Security
There are some optional settings that improve the security of the Roombelt deployment:
- 1.Set
ALLOWED_EMAILS
in 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.
Final notes
Last modified 1yr ago