This document describes how to configure a Raspberry Pi to boot directly into a full-screen Chromium kiosk running a single web page.
Target environment:
- Raspberry Pi OS Desktop (Debian 13 / Trixie)
- Wayland session (Wayfire)
- Chromium
- Auto-login enabled
- No GNOME keyring prompts
Use Raspberry Pi OS with desktop (not Lite).
Verify:
cat /etc/os-release
Confirm desktop is installed.
Run:
sudo raspi-config
Set:
System Options → Boot → Desktop System Options → Auto Login → Desktop Autologin
Reboot:
sudo reboot
After login (or via SSH):
loginctl
Identify the session attached to seat0, then:
loginctl show-session <SESSION_ID> -p Type
Expected:
Type=wayland
Modern Raspberry Pi OS uses chromium, not chromium-browser.
sudo apt update sudo apt install -y chromium
Verify:
chromium --version
Create:
nano ~/kiosk.sh
Example:
#!/usr/bin/env bash set -euo pipefail URL="https://routine-tracker.val.run/" # Small delay to allow Wayland session to initialize sleep 1 exec chromium \ --kiosk \ --noerrdialogs \ --disable-infobars \ --disable-session-crashed-bubble \ --no-first-run \ --password-store=basic \ --use-mock-keychain \ --incognito \ "$URL"
Make executable:
chmod +x ~/kiosk.sh
Key flags:
--kiosk→ full-screen mode--password-store=basic→ disables GNOME keyring integration--use-mock-keychain→ prevents keyring prompts--incognito→ prevents persistent session state
Create directory:
mkdir -p ~/.config/systemd/user
Create service:
nano ~/.config/systemd/user/kiosk.service
Contents:
[Unit] Description=Chromium Kiosk After=graphical-session.target [Service] Type=simple ExecStart=%h/kiosk.sh Restart=always RestartSec=2 [Install] WantedBy=default.target
Enable:
systemctl --user daemon-reload systemctl --user enable kiosk.service systemctl --user start kiosk.service
Check status:
systemctl --user status kiosk.service --no-pager
sudo reboot
Expected flow:
- Boot
- Wayland desktop briefly visible
- Chromium launches full-screen
- Kiosk page loads
A short desktop flash before kiosk launch is normal under Wayland.
Chromium on modern Debian attempts to use Secret Service (GNOME keyring).
The flags below suppress it:
--password-store=basic
--use-mock-keychain
If prompts still occur, optional hard removal:
sudo apt purge -y gnome-keyring sudo reboot
For a single-purpose kiosk, this is safe.
Check kiosk service:
systemctl --user status kiosk.service
View logs:
journalctl --user -u kiosk.service -n 200 --no-pager
Confirm Chromium flags:
pgrep -a chromium
Confirm keyring not running:
pgrep -a gnome-keyring
From macOS:
ssh <username>@<hostname>.local
Example:
ssh ash@raspberrypi.local
Boot → Desktop Autologin → Wayland session → systemd user service → kiosk.sh → Chromium full-screen → single URL
No stored credentials No keyring Auto-restarts on crash