Getting evaluation license

To run Roombelt self-hosted you need an evaluation license that you can get from


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 Azure

  1. Type any name, choose "Accounts in this organizational directory only (Single tenant)" and click "Register".

  2. Open the registered application overview page. Copy “Application (client) ID” and paste it into the roombelt.env config file as OFFICE365_DELEGATED_CLIENT_ID. Copy "Directory (tenant) ID" and paste it into the roombelt.env config file as OFFICE365_DELEGATED_TENANT_ID.

  3. Go to “Certificates and secrets” and create a new client secret. Set any expiration date. Copy the client secret value and paste into the roombelt.env config file as OFFICE365_DELEGATED_CLIENT_SECRET.

  4. Go to API permissions, and click “Add a permission”. Select “Microsoft Graph” and then “Application permissions”. Select:

    • openid

    • profile

    • email

    • offline_access

    • Calendars.ReadWrite.Shared

    • User.Read

  5. Go to “Authentication” and click “Add a platform”. Choose “Web” and type Redirect URI in the format https://<ROOMBELT_URL>/office365/delegated/oauth_callback. Set OFFICE365_DELEGATED_REDIRECT_URL in the roombelt.env configuration file to the value set above.

Roombelt configuration file

Roombelt configuration can be changed using the roombelt.env configuration file. Set the following fields:

  • OFFICE365_DELEGATED_CLIENT_ID to the Application (client) ID that you’ve saved earlier.

  • OFFICE365_DELEGATED_TENANT_ID to the Directory (tenant) ID that you’ve saved earlier.

  • OFFICE365_DELEGATED_CLIENT_SECRET to the Client secret that you’ve saved earlier.

  • OFFICE365_DELEGATED_REDIRECT_URL to the Redirect URI that you’ve configured in Azure in the previous steps.

There are additional configuration options described in the sample roombelt.env configuration file delivered with Roombelt binary. Please review this file to see available options.


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.

Adding delegates for meeting rooms

To manage meeting rooms in Roombelt you need to set your Office365 account as a delegate to the resource calendars. To do that:

  1. Click on the meeting room you want to manage in Roombelt and on the side panel go to tab "Delegation".

  2. Scroll down to the section "Read and manage (Full Access)" and add the Office365 account used to sign in to Roombelt as a delegate.

  3. As the Office365 account used to sign in to Roombelt go to Outlook Calendar.

  4. In Outlook Calendar click "Add calendar" and open tab "Add from directory".

  5. Search for the meeting room you want to manage in Roombelt and add it to the list of displayed calendars.

In case of any issues, reach out to


You can 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.

Last updated