A step-by-step guide to transforming a Raspberry Pi Zero W into a dedicated digital signage kiosk—perfect for displaying dynamic content like movie posters, dashboards, or informational displays.
The Problem
I wanted a digital display in my home theater that would showcase movie posters from my Plex media server. Commercial digital signage solutions are expensive, and repurposing an old tablet felt wasteful and unreliable for 24/7 operation.
The Solution
A Raspberry Pi Zero W ($15) configured as a dedicated kiosk. It boots directly into a fullscreen Chromium browser displaying content from any URL—no desktop environment, no distractions, just the content.
For my setup, I used Matt’s Plex Movie Poster Display running on a local VM, but this kiosk can display any web-based content: dashboards, calendars, weather displays, or custom signage.
Requirements
- Raspberry Pi Zero W (or any Raspberry Pi)
- MicroSD card (8GB minimum)
- Display with HDMI input
- Raspbian Buster installed
- Network connectivity (WiFi or Ethernet)
Instructions
Step 1: Initial Configuration
Boot your Pi and log in with the default credentials (pi / raspberry), then run the configuration utility:
sudo raspi-config
Configure the following settings:
- Change the default password
- Set your hostname
- Configure WiFi (SSID and password)
- Set your timezone
- Enable SSH under Interface Options
- Set Boot Options → Desktop / CLI → Console Autologin
Finish and reboot. From this point forward, you can work remotely via SSH.
Step 2: Update the System
sudo apt-get update && sudo apt-get upgrade -y
Step 3: Install Minimal Display Environment
Install only what’s needed for kiosk mode—no full desktop environment:
sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox chromium-browser -y
Step 4: Configure Openbox Autostart
Edit the Openbox autostart configuration:
sudo nano /etc/xdg/openbox/autostart
Add the following content:
# Disable screen saver and power management
xset s off
xset s noblank
xset -dpms
# Allow quitting X server with CTRL-ALT-Backspace
setxkbmap -option terminate:ctrl_alt_bksp
# Clear Chromium crash flags and launch in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser --disable-infobars --noerrdialogs --incognito --kiosk 'https://YOUR-URL-HERE'
Replace https://YOUR-URL-HERE with the URL you want to display.
Step 5: Auto-Start on Boot
Configure X to start automatically when the Pi boots:
nano ~/.profile
Add this line at the end:
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor
Optional: Clean Boot Experience
For a cleaner boot sequence, edit /boot/config.txt:
sudo nano /boot/config.txt
Add these lines:
# Disable rainbow splash screen
disable_splash=1
# Rotate display (if needed for vertical orientation)
# display_rotate=3
Result
After a reboot, your Pi will boot directly into a fullscreen browser displaying your content. No login prompts, no desktop, no cursor—just clean digital signage running 24/7 on minimal hardware.