Kiosk Mode on Raspberry Pi: Boot Straight to a Webpage
raspberry pikioskchromiumdisplayautomation
Kiosk mode turns a Pi into a dedicated display that boots directly to a fullscreen browser showing a specific URL. Perfect for dashboards, info displays, or a dedicated 3dFarm monitor.
Use Cases
- Grafana/Home Assistant dashboard
- 3dFarm job board display in workshop
- OctoPrint camera feed on workshop monitor
- Any web app you want always-on
What You Need
- Raspberry Pi 3B+ or 4 (Pi 4 for smooth 1080p)
- Raspberry Pi OS with Desktop (not Lite)
- HDMI display
- Optional: keyboard for initial setup (SSH after that)
Step 1 โ Install Raspberry Pi OS Desktop
Flash Raspberry Pi OS (32-bit or 64-bit) with Desktop using Raspberry Pi Imager. Configure SSH and WiFi in settings.
Step 2 โ Install Chromium (Usually Pre-installed)
sudo apt update
sudo apt install chromium-browser -y
Step 3 โ Disable Screensaver and Power Management
sudo apt install xdotool unclutter -y
Edit /etc/xdg/lxsession/LXDE-pi/autostart:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Add these lines:
@xset s off
@xset -dpms
@xset s noblank
@unclutter -idle 0 -root
Step 4 โ Create Kiosk Startup Script
Create /home/pi/kiosk.sh:
#!/bin/bash
sleep 10
chromium-browser --noerrdialogs --disable-infobars --kiosk --autoplay-policy=no-user-gesture-required https://YOUR-URL-HERE
Make it executable:
chmod +x /home/pi/kiosk.sh
Step 5 โ Auto-Start on Boot
Add to /etc/xdg/lxsession/LXDE-pi/autostart:
@/home/pi/kiosk.sh
Step 6 โ Auto-Login to Desktop
sudo raspi-config
โ System Options โ Boot / Auto Login โ Desktop Autologin
Reboot โ Pi should boot straight to your kiosk page.
Keeping Content Fresh
For dashboards that should auto-refresh:
Add to kiosk.sh:
# Refresh page every 5 minutes
while true; do
sleep 300
xdotool key F5
done &
Troubleshooting
| Problem | Fix |
|---|---|
| Browser shows error page | Check network โ Pi needs internet before Chromium loads |
| Screen goes blank | Check xset settings, add @xset s off |
| Slow page load | Pi 3 may struggle with heavy dashboards โ use Pi 4 |
| Black border | Change HDMI overscan in raspi-config |