Native installers for every platform. No Node.js, no terminal — just download and run. Apps keep themselves updated automatically.
Ubuntu, Debian, Fedora and more · x64 AppImage (auto-updates)
Download .AppImageDebian/Ubuntu: .deb package
Debian packages and all previous versions live on the GitHub releases page. Prefer the terminal? Run from source.
The container applies database migrations on boot and keeps all state — database, uploads, auth secret — in a single volume.
docker run -d --name displaygrid \
-p 3000:3000 -p 3001:3001 \
-v displaygrid-data:/data \
ghcr.io/joemighty/displaygrid:latest
Dashboard at http://<host>:3000, WebSocket on 3001.
Or clone the repo and docker compose up -d — compose.yaml includes an optional HTTPS proxy (--profile tls).
You only need the Server App on one machine. Install the Kiosk App on every display device.
Run the installer for your platform. On Linux, make the AppImage executable: chmod +x DisplayGrid-Server-x86_64.AppImage then double-click it — or install the .deb package on Debian/Ubuntu.
The dashboard opens in a native window once the server is ready (usually within 10 seconds). A DisplayGrid icon also appears in your system tray — on macOS it stays in the dock too.
The dashboard window opens at http://localhost:5555. DisplayGrid creates its database automatically on first launch — just complete the setup wizard to create your admin account. Re-open the window anytime from the tray icon or macOS dock.
Go to Screens, click “+ New Screen”, give it a name (and optionally a custom token like lobby). Note the screen token shown in the token modal.
On Linux, run chmod +x DisplayGrid-Kiosk-x86_64.AppImage before launching, or install the .deb package. For Raspberry Pi displays, follow the Chromium kiosk guide instead — no app install needed.
On first launch, a config file is created at %APPDATA%\@displaygrid\electron-kiosk\kiosk-config.json (Windows) or ~/.config/@displaygrid/electron-kiosk/kiosk-config.json (Linux). Edit it with your server’s IP and screen token:
{
"apiBase": "http://192.168.1.10:3000",
"wsBase": "ws://192.168.1.10:3001",
"screenToken": "lobby"
}
The kiosk opens fullscreen and connects to your server automatically. If the token matches a screen in the dashboard, it starts playing the assigned playlist immediately.
Windows: add a shortcut to shell:startup. Linux/Pi: add to your desktop session autostart or use a systemd --user service. Emergency quit: hold Ctrl+Alt+Q. Updates download in the background and apply on next launch — never mid-show.