The server installs from one file and one command. The screen deploys in a different form depending on its operating system — and that choice is not interchangeable.
The server is shared by the whole estate. The kiosk depends on the screen.
| Screen | Form | Why |
|---|---|---|
| Windows IdeaHub, OPS module |
Standalone .exe installer |
Only it carries the full-screen shell, one browser profile per video-conferencing provider, and locked-down meeting launch. |
| Linux | Docker container | The interface is served to a browser running in kiosk mode. |
| Android, HarmonyOS | Native clients | Planned after version 1.0. |
Standalone installer. Neither Docker nor Node.js to install on the screen.
1.0.6 updates the display, not just the server. Releases 1.0.4 and 1.0.5 only touched the server; this one fixes two defects in the Windows client that outright prevented a display from reaching an encrypted server in some configurations. A fleet still on 1.0.3 must be updated — see the release notes.
Get-FileHash .\Kelra-Room-Setup-1.0.6.exe -Algorithm SHA256
The value shown must match the one above exactly. If it differs, the file has been altered or the download is incomplete: do not run it.
The installer runs per machine and requires elevation: in a meeting room the screen often runs under a dedicated account, separate from the technician installing it. Screen data — server address, pairing, wallpaper, room account sessions — survives an uninstall or an upgrade.
Linux, Docker. Nothing to compile, no source code required.
Create a folder and drop this file into it. One file is enough: every variable has a default.
docker-compose.ymlservices:
server:
image: ghcr.io/kelralabs/kelra-room-server:1.0.6
restart: unless-stopped
ports:
- "4001:4000"
volumes:
- openroom-data:/app/data
environment:
PORT: "4000"
DB_PATH: /app/data/openroom.db
ADMIN_SECRET: ${ADMIN_SECRET:-changeme}
NODE_ENV: production
TZ: ${TZ:-Europe/Paris}
BROKER_MIRROR: ${BROKER_MIRROR:-1}
BROKER_POLL_MS: ${BROKER_POLL_MS:-60000}
volumes:
openroom-data:
.env — optionalCreate it only to change one of these values. Without this file the defaults apply and the installation works.
# Enables the command-line administration header. # ADMIN_SECRET=a-long-random-secret # Time zone of the site, if it is not Europe/Paris. # TZ=Europe/London # Emergency stop for the broker's busy mirrors. # BROKER_MIRROR=0
docker compose pull docker compose up -d server
The admin console answers on http://<server>:4001/admin. The initial account is admin / admin, and the server forces a password change on first sign-in: until that is done, the rest of the administration stays out of reach.
Further administrators are created in the console, by name — one account per person rather than a shared password.
The examples above use http to keep a first trial short. In production Kelra Room serves over HTTPS, in one of three ways:
.env, and it generates its own authority and certificate on first start. No extra component, no domain name, no external paperwork. Windows screens adopt the authority on first contact.TLS_SELF_SIGNED=1 TLS_NAMES=192.168.1.10,server.internal,localhost,127.0.0.1
The server adapts on its own: the session cookie is marked Secure as soon as the connection is encrypted, including behind a proxy. The full procedure is in the documentation, under “Encrypting traffic”.
kiosk:
image: ghcr.io/kelralabs/kelra-room-kiosk:1.0.6
restart: unless-stopped
ports:
- "3001:3000"
environment:
NODE_ENV: production
OPENROOM_SERVER_URL: http://<server>:4001
OPENROOM_SERVER_URL must be the address reachable from the screen's browser, not from inside Docker. Left empty, the kiosk shows its first-run screen and asks for the address on the display itself.
The version is pinned in the file and never tracked automatically: a pull must not change the version of a product in production without a decision. Edit the tag, then:
docker compose pull server docker compose up -d server
Server with no outbound internet access? The images cannot be pulled. Ask helpdesk@kelralabs.com for the archive, then docker load -i kelra-room-server-1.0.6.tar before starting. The rest of the procedure is identical.
Kelra Room is distributed under the Business Source License 1.1. The source code is provided and auditable, and every deployment runs entirely on your own infrastructure — but this is not an open-source licence.
Every deployment gets a thirty-day evaluation period, after which a key is required for the screens to keep being served. The admin console stays reachable regardless: that is where the key is entered.
Licensing and commercial enquiries: hello@kelralabs.com. Support and troubleshooting: helpdesk@kelralabs.com.