Version 0.5

LiteBeam Network

LiteBeam is a self-hosted digital signage orchestration platform. It is designed to deploy, monitor, and monetize distributed display networks within a private local network, with minimal hardware overhead and maximum reliability.


Platform Overview

The LiteBeam architecture consists of two main components:

Network Layout
Router 172.16.<ID>.1
│
Server 172.16.<ID>.201 ← DHCP reserved
│
Players 172.16.<ID>.100–200 ← DHCP pool

Architecture diagram - place docs-architecture.png in /static/img/

offline_pin Offline Resilience

Edge players download and cache all media locally. If the server is unreachable, the player will seamlessly continue broadcasting the last known campaign loop until the connection is restored.

System Requirements

Server

Edge Player (each display)

Network Scheme

Every LiteBeam deployment is identified by a Client ID - a number from 1 to 254. This ID defines the private subnet used by all devices at that location:

The server's IP is pinned via a DHCP reservation in the router so it never changes. Players are assigned addresses automatically and always know the server is at .201.


1. Router Setup

Any retail router (Asus, TP-Link, Netgear, etc.) works. Before the tech arrives on-site, configure the router at the office:

The router ships to the location pre-configured. The tech plugs it in, connects the server by ethernet, and proceeds to the server install.

2. Server Installation

The server machine should be running Ubuntu LTS (minimized is fine) and connected to the LiteBeam router via ethernet. The router's DHCP reservation will assign it 172.16.<ID>.201.

SSH into the server and run one command - no files need to be transferred beforehand:

server - bash
curl -fsSL https://litebeam.ordermerchants.com/server_install.sh | sudo bash

Or with wget:

wget -qO- https://litebeam.ordermerchants.com/server_install.sh | sudo bash

The installer will:

When complete, the admin panel is available at https://172.16.<ID>.201:8182 from any device on the same router. The server uses a self-signed certificate, so the browser shows a warning on the first visit: choose Advanced and continue.

key First Login

Default credentials are admin@litebeam.local / change_me. Change these immediately after first login. On a brand-new install, run sudo -u litebeam venv/bin/python init_db.py from /opt/litebeam-server if the panel shows no data.

Updating the Server

Since version 0.5.5 the server can update itself from Admin → Updates (see Software Updates). You can also re-run the bootstrap script: it detects the existing install and asks [1] Update (refresh the code, keep accounts, campaigns, devices and menus) or [2] Wipe / Fresh Install (erases everything, including the database). An update backs up the database first, and the Client ID is preserved.

Server Management Commands

sudo systemctl status litebeam-server # check status sudo systemctl restart litebeam-server # restart sudo journalctl -u litebeam-server -f # live logs

3. Player Installation

Each Raspberry Pi acts as a display player. Connect it to the LiteBeam router (ethernet or WiFi) and run the client installer - no files need to be on the device beforehand:

pi@raspberrypi - bash
curl -fsSL https://litebeam.ordermerchants.com/client_install.sh | bash

The installer will:

On first heartbeat the device will appear in the admin panel under Devices with status Pending. Assign it to a Screen from the device page, and give that screen a campaign.

Device appearing as Pending in the admin panel

Campaigns & Playlists

A Campaign dictates what content is displayed on a screen. LiteBeam supports two primary layout modes: Standard Fullscreen and Dynamic Menu Boards.

Standard Fullscreen

Upload MP4s, MOVs, JPGs, or PNGs. The system compiles them into a seamless playlist. Images adhere to a global duration (e.g., 10 seconds), while videos play until completion before advancing.

LiteBeam eliminates the need to upload static images every time a price changes. The Menu Board engine allows you to:

How it works: The server turns each menu page into a high-resolution slide image with the Pillow imaging library. Players download the slides and cache them, so text stays crisp and the Raspberry Pi does no rendering work. When you change a price the screens pick up the new slide on their next heartbeat.

Page views

For manual pages the same settings decide how many item slots the page has (Auto is the classic 30). Slots that would be dropped are flagged before anything is removed.

Example dynamic menu board rendered by a player

StoreKeep Menu Sync

If the venue keeps its items and prices in StoreKeep, LiteBeam can build its menu pages from that inventory. Open a menu, choose Connect StoreKeep, enter the StoreKeep address and API key, and press Sync Now.

Syncing is manual for now: press Sync Now after prices change.

Screens & Orientation

A Screen is where a player is installed. Each screen has a resolution (the player reports what its display supports) and an orientation, and a campaign is assigned to it.

Changing a screen's orientation takes effect after the screen has cycled through its playlist once.

Retail Media Network (RMN)

Monetize your screens without manual scheduling. The Vendor Advertisement engine allows you to grant limited portal access to third-party brands (Vendors).

Each vendor logs in to a view that shows only their own ads and reports. An advert has a Target Frequency (plays per hour) and a list of devices it runs on. Adverts are delivered to the player together with the playlist and play as part of each loop, and every play is recorded for proof-of-play reports. Exact plays-per-hour scheduling is on the roadmap: today the frequency is stored with the ad, but the player does not yet space ads to match it.


Remote Management

Physical access to displays is rarely required. From the Admin Dashboard, operators can dispatch commands that the edge player picks up during its next heartbeat (about once a minute).

Logs & Telemetry

Every player reports live system status back to the local server.

Heartbeats: If a player misses heartbeats for 120 seconds, its status changes to Offline in the dashboard.
System Logs: Playback errors, download failures, and cache clears are streamed to the device's detail page, color-coded by severity (INFO, WARN, ERROR).
Proof-of-Play: Every time a vendor ad or campaign video finishes playing, a tracking event fires to the server, generating auditable CSV reports for advertisers.

Software Updates

From version 0.5.5 the server updates itself from Admin → Updates. Every release is cryptographically signed; the server downloads it, verifies the signature, size and checksum, and refuses anything that is unsigned, altered or older than what is installed.

Users & Permissions

Admin accounts can do everything. Manager and Staff accounts get a set of capabilities that an admin can change on the Roles & Permissions page: manage screens, campaigns and menus, devices and remote commands, vendor ads, the media library, reports, users, and software updates. Out of the box managers can do everything except manage users; staff can manage campaigns, menus and the media library. Vendor accounts only ever see their own ads and reports.