Setup guide

Build the Players

Each player is an old PC that boots straight into a full-screen browser pointed at your signage server, with no desktop, no login prompt and nothing for a passer-by to click. Build one, pair it, test it for a day, then clone it for the rest.

1. What makes a good player

Need 1080p screens 4K screens
CPU / graphics 64-bit, Intel HD 4000 or newer (2012+) Intel 7th gen or newer (hardware 4K and HEVC decode)
RAM 4 GB (2 GB works for images-only screens) 8 GB
Disk 32 GB SSD; 64 GB if playlists are video-heavy 64 GB SSD
Video out HDMI, or DisplayPort with a DP→HDMI adapter HDMI 2.0 or DP 1.2
Network Ethernet preferred; Wi-Fi works with a good signal Ethernet

Small-form-factor and “tiny” office PCs (OptiPlex Micro, ThinkCentre Tiny, EliteDesk Mini) mount on a VESA bracket behind the TV. Skip anything 32-bit only; current Linux no longer installs on it.

2. BIOS settings

  • Restore on AC power loss: Power On
  • Disable all sleep and hibernate states
  • Boot from the internal SSD only once installed; set a BIOS password so nobody can boot a USB stick
  • Disable the internal speaker beep

3a. Easy way: the Reboot Player image (planned)

Write the Reboot Player image to a USB stick, boot the PC from it, choose Install to this disk, and it comes up at the pairing screen. Skip to step 5. (Image: installer TBD.)

3b. Manual way: Debian 13 kiosk

For builders who want to see every part, or until the image ships.

  1. Download the Debian 13 netinst ISO from debian.org and write it to USB.
  2. Install. At Software selection, untick every desktop environment; tick only SSH server and standard system utilities. Create a user called kiosk.
  3. After first boot, log in and install the kiosk pieces:
sudo apt update
sudo apt install -y cage chromium fonts-noto unattended-upgrades

cage is a tiny Wayland compositor that runs exactly one app full-screen, with no desktop to escape to.

4. Make it boot straight to the screen

Auto-login on the first console:

sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
sudo tee /etc/systemd/system/getty@tty1.service.d/autologin.conf <<'EOF'
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM
EOF

Start the player when kiosk logs in, by adding this to /home/kiosk/.bash_profile:

if [ "$(tty)" = "/dev/tty1" ]; then
  while true; do
    cage -- chromium --kiosk --noerrdialogs \
      --disable-session-crashed-bubble \
      --autoplay-policy=no-user-gesture-required \
      --check-for-update-interval=31536000 \
      https://signage.yourdomain.com/player
    sleep 5
  done
fi

The loop restarts the player within 5 seconds if it ever crashes. Use http://192.168.1.10/player for a single-network setup. (Player URL: installer TBD.)

Add a nightly reboot to clear memory and pick up updates:

echo '0 4 * * * root /sbin/reboot' | sudo tee /etc/cron.d/nightly-reboot

Reboot; the screen should come up on its own.

5. Pair it

  1. The player shows a 6-character pairing code.
  2. In the admin page: Players → Add player, type the code, name it after its location (“Clubhouse – Bar TV”), and pick its group.
  3. Within a minute the player downloads its playlist and starts playing.

Label the PC with its player name and the last 4 digits of its MAC address. It saves a ladder trip later.

6. Clone the rest

Once one player has run a full day without trouble, clone its disk with Clonezilla to the other PCs. Clone before pairing, or wipe the pairing first (Players → Reset on the device, installer TBD); two players sharing one identity will fight over the same screen.

7. Turning TVs on and off

Most PCs can’t send HDMI-CEC commands to switch the TV off. Use the TV’s own on/off timer, a hotel-mode TV setting, or a smart plug on a schedule. The player keeps running; it just waits for the TV.

8. Mounting

  • VESA bracket behind the TV, vents unobstructed; a tiny PC sealed in a TV recess will overheat by summer
  • Short HDMI cable, cable-tied so it can’t work loose
  • Power the PC and TV from the same outlet so they share a fate
  • Outdoor or poolside screens: the PC goes indoors or in a ventilated enclosure; run HDMI over a cable extender if needed