DisplaySync

Linux & Raspberry Pi

The desktop sign app builds for Linux. It works. We don't yet recommend it as the default platform for production events — but it's the right answer for some specific cases, and the gap to Windows is shrinking.

This page covers what's supported today, when to choose Linux over Windows, and the limitations to plan around.

Linux is supported but secondary

Windows 10/11 Pro is DisplaySync's primary platform. The Linux builds work and are tested in CI, but the kiosk lock-down tooling, the USB recovery kit, the provisioner, and most of our deployment documentation assume Windows. Linux deployments require more on-the-team expertise and are more DIY.

Supported configurations

ArchitectureOSStatus
x64Debian 11+, Ubuntu 22.04+ (24.04 LTS recommended)Supported
ARM64Debian 11+, Ubuntu 22.04+ on Raspberry Pi 4 / 5Supported, lower-stakes use only
ARM64Debian on other ARM SBCs (Orange Pi, etc.)Best-effort — likely works, less tested
x86 / 32-bitAnythingNot supported

The desktop sign ships as a .deb package and an AppImage. The .deb is the recommended install path — installs cleanly via dpkg or apt, integrates with systemd for auto-start, supports controlled rollouts via the same R2-backed channel as Windows.

When Linux is the right call

A few scenarios where Linux beats Windows:

  • Cost-sensitive deployments at small venues or small fleets where Windows licensing per kiosk isn't worth it.
  • ARM-based hardware you already own — Raspberry Pi 4 / 5 in particular. Wired Pi is a perfectly good signage rig if your content is light.
  • Compliance environments that prefer or require Linux for auditability (Debian's reproducible builds, no Microsoft data telemetry).
  • Solar-powered or low-power deployments — Pis sip 5-15 W vs 30-50 W typical for a Windows mini PC.
  • You have Linux ops expertise on the team. If managing systemd, dpkg, and a Debian-based stack is comfortable for your team, the Linux path is friendly.

When to stay on Windows despite the cost:

  • Tier-1 conferences with vendor warranties, dedicated AV support, and customer expectations of "it just works"
  • Fleets above ~20 signs — the deployment guide is denser on Windows; you save time at scale
  • Anywhere you need Tailscale + RDP for hands-on access — Windows RDP is mature; Linux options (XRDP, VNC) are less polished

Hardware

Specs are lower than Windows because there's no per-kiosk OS license and Linux uses RAM more conservatively.

SpecMinimumRecommended
CPUDual-core ARM64 or x64Quad-core
RAM2 GB4 GB
Storage16 GB SD/eMMC/SSD32 GB SSD
OSDebian 11+ / Ubuntu 22.04+Ubuntu 24.04 LTS
DisplayHDMIHDMI 2.0+
NetworkEthernet or Wi-FiGigabit Ethernet

For ARM64 Raspberry Pi specifically:

  • Pi 4 (4 GB+): works fine for static signage, simple animations, 1080p webpages
  • Pi 5: noticeably faster — handles heavier content, smoother video playback
  • Earlier Pis (3 and below): not supported; the renderer is too slow for modern web content

Install path

The provision-linux.sh script in desktop-sign/scripts/ automates installation, similar to Windows' provision-windows.ps1. From the target machine:

# Copy the script over (USB, SCP, etc.) then run as root:
sudo ./provision-linux.sh --backend-url https://api.displaysync.live

# Preview first if you want:
sudo ./provision-linux.sh --backend-url https://api.displaysync.live --dry-run

What it does:

StepAction
Pre-flightCheck root, architecture, OS, connectivity, disk space
InstallDownload correct .deb from GitHub Releases
Kiosk userCreate displaysync user in video/audio/input groups, lock password
ConfigurationWrite .env to /opt/DisplaySync Sign/resources/.env
Auto-loginDetect display manager (GDM3 / LightDM / SDDM) and configure
Auto-startsystemd service or X session autostart entry
Optional hardening--watchdog for hardware watchdog timer, --read-only for overlayfs read-only root

Kiosk lockdown on Linux

The Linux story for kiosk mode is good but more DIY than Windows.

  • Auto-login: the script handles this for the common display managers. Custom DM setups need manual config.
  • Shell replacement: there's no Linux equivalent to Windows Shell Launcher in the kiosk-app-as-shell sense. The closest pattern is a custom .xinitrc that launches the sign app instead of a window manager.
  • No-distractions desktop: running on a minimal X session (no panel, no taskbar, no notifications) is a few configuration lines.
  • Read-only root (via overlayfs) protects against accidental writes that would persist across reboots — good for unattended fleets, slightly more complex to operate.

Tailscale

Tailscale on Linux is at least as polished as on Windows. Install via apt:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --authkey <key> --hostname $(hostname) --tags tag:displaysync-sign

The desktop sign automatically reads tailscale ip -4 and reports it in the heartbeat — same behavior as Windows. See Tailscale integration.

For remote access:

  • tailscale ssh is the cleanest path for Linux. No SSH keys to manage; ACL-gated.
  • VNC server (TightVNC, x11vnc) works and is the right choice if you need a GUI session.
  • Linux's RDP options (XRDP) are less mature than Windows native RDP — use SSH and VNC instead.

What's missing or weaker

Things that are great on Windows and weaker on Linux today:

  • No equivalent to the USB recovery kit for Linux. Recovery on Linux is currently "reimage from your captured disk image" — manual but not hard with dd or Clonezilla.
  • No native fleet management tooling. Windows has Group Policy, Intune, Configuration Manager. Linux has Ansible, Salt, Puppet — capable but not pre-configured by us.
  • Windows Update equivalent. apt unattended-upgrades handles security updates; tune the timing to avoid mid-event reboots — analogous to Windows Update active hours, but you configure it yourself.
  • Hardware variety. Linux runs on more hardware than Windows, but driver support varies. Validate every SKU before committing to a fleet.

Rough install (without the provisioner)

If you can't run the provisioner script (locked-down environment, custom hardware), the manual install:

# 1. Install the .deb
sudo dpkg -i DisplaySync-Sign-x.y.z-amd64.deb
sudo apt-get install -f                           # resolve any deps

# 2. Configure
sudo cat > /opt/DisplaySync\ Sign/resources/.env <<EOF
BACKEND_URL=https://api.displaysync.live
KIOSK_MODE=true
AUTO_UPDATE_ENABLED=true
EOF

# 3. systemd service
sudo systemctl enable displaysync-sign
sudo systemctl start displaysync-sign

# 4. Verify
systemctl status displaysync-sign
journalctl -u displaysync-sign -n 50

For the full reference — including kiosk user setup, watchdog, and read-only root — see the desktop-sign/docs/DEPLOYMENT.md and KIOSK_DEPLOYMENT.md in the main repo.

The Linux data root lives at /var/lib/displaysync/ (logs, SQLite database, identity). For the per-file map and Windows counterparts, see File locations.

See also