Version 0.2.7

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.timnetworks.net/server_install.sh | sudo bash

Or with wget:

wget -qO- https://litebeam.timnetworks.net/server_install.sh | sudo bash

The installer will:

When complete, the admin panel is available at http://172.16.<ID>.201:8182 from any device on the same router.

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

Re-run the bootstrap script. It detects the existing install, backs up the database, applies the new files, and restarts the service. 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.timnetworks.net/client_install.sh | bash

The installer will:

Then register the player as a system service (run as root):

curl -fsSL https://litebeam.timnetworks.net/client_enable.sh | sudo bash

On first heartbeat the device will appear in the admin panel under Devices with status Pending. Assign it to a Location and Campaign from the admin interface.

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 edge player receives the JSON configuration and uses the Pillow imaging library to render a high-resolution frame locally on the device. This ensures crisp text and zero server-side rendering bottlenecks.

Example dynamic menu board rendered by a player

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).

When a Vendor uploads an advert, they (or you) set a Target Frequency (e.g., 4 Plays Per Hour). The LiteBeam edge player uses a mathematical interleaving algorithm to automatically inject the advert into the active campaign at the correct interval — pausing the main playlist, playing the ad, then resuming.


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 cycle (every ~10 seconds).

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.