Configure CMS Connection

After installing a player, you need to connect it to your Xibo CMS.

What You Need

  • A running Xibo CMS instance (v3 or v4)
  • The CMS server key (found in CMS → Administration → Settings → Display Settings → CMS Secret Key)
  • The CMS URL (e.g. https://your-cms.example.com)

Step 1: Enter CMS Credentials

Kiosk images (first-boot wizard)

The setup wizard appears automatically on first boot. Enter:

  1. CMS URL — your Xibo CMS address
  2. CMS Key — the server key from CMS settings
  3. Display Name — a name to identify this display (e.g. "Lobby Screen 1")

Electron Player

On first launch, the player shows a setup page. Enter the same three fields. You can also configure via command line:

xiboplayer-electron --cms-url=https://your-cms.example.com --cms-key=YOUR_KEY --display-name="Lobby"

Or edit the config file at ~/.config/xiboplayer/electron/config.json.

Chromium Player

The Chromium player opens the PWA setup page in the browser. Enter CMS URL, key, and display name directly in the form.

PWA (browser)

Navigate to https://your-cms.example.com/player/pwa/ and enter the CMS key and display name on the setup page.

Config Templates (RPM/DEB installs)

For automated deployments or managing multiple displays, use config templates instead of the setup wizard. Templates separate secrets (CMS credentials) from configuration profiles (kiosk, dev, sync).

Secrets

Create your secrets file once per CMS. The templates read from it automatically.

cp /usr/share/xiboplayer-electron/configs/secrets.env.example \
   ~/.config/xiboplayer/secrets.env
nano ~/.config/xiboplayer/secrets.env
secrets.env
CMS_URL=https://your-cms.example.com
CMS_KEY=your-server-key
API_CLIENT_ID=your-oauth-client-id
API_CLIENT_SECRET=your-oauth-client-secret

Profiles

Kiosk

Production mode. Fullscreen, mouse hidden, no debug UI, error-only logging. Use for deployed signage displays.

apply.sh electron-kiosk electron
apply.sh chromium-kiosk chromium

Development

Windowed mode with debug overlays, keyboard controls (T=timeline, D=downloads, S=setup), verbose logging. Use for testing and troubleshooting.

apply.sh electron-dev electron
apply.sh chromium-dev chromium

Multi-Display Sync

Synchronized playback across multiple screens. One lead coordinates timing, followers stagger layout transitions.

apply.sh electron-sync-lead electron-sync-lead
apply.sh electron-sync-follower electron-sync-follower-1 PORT=8771 DISPLAY_NAME=follower-1

Custom overrides

Pass variables on the command line to override template defaults:

apply.sh electron-kiosk electron DISPLAY_NAME="Lobby Screen 1" PORT=8770

Template syntax: {{VAR}} is required, {{VAR:default}} has a fallback. Empty OAuth fields are removed automatically so the display uses manual CMS authorization instead.

Reset a player

Cache clear

Clears browser cache (GPU cache, compiled code, blob storage) but keeps CMS auth, media files, and service worker data.

clean.sh electron cache

Full wipe

Removes all player data. The display re-registers with the CMS as a new device.

clean.sh electron full

Step 2: Authorize in CMS

After the player registers, it appears in your CMS with status Waiting for Authorization.

  1. Open your CMS admin UI
  2. Go to Displays
  3. Find your new display (status: Waiting)
  4. Click Authorize

The player will pick up the authorization on its next collection cycle (typically within 30 seconds).

Step 3: Assign Content

  1. In CMS, go to Schedule
  2. Create or select a Campaign or Layout
  3. Schedule it to your display or display group
  4. The player downloads media and starts playback automatically

Display Settings

Once authorized, the CMS pushes display settings to the player including:

  • Collection interval (how often the player checks for updates)
  • Download window (restrict large downloads to off-hours)
  • Screenshot interval
  • Log level
  • XMR channel (for real-time push commands)

These are configured per-display or per-display-group in CMS → Displays → Edit Display → Display Settings.

Verifying Connection

From the player

Press T to toggle the timeline overlay. If the schedule is loaded and layouts are listed, the connection is working.

Press D to see download progress for media files.

From the CMS

In CMS → Displays, check:

  • Status: should show a green tick (authorized and communicating)
  • Last Access: should show a recent timestamp
  • Storage: shows remaining disk space on the player
  • Screenshot: if configured, shows the latest screenshot from the player