Panduan lengkap menampilkan sebuah halaman web (dashboard) secara fullscreen di monitor yang tercolok ke Raspberry Pi, tanpa menginstal desktop environment. Halaman tampil otomatis saat Pi menyala, dan layar bisa diputar (portrait).
Didokumentasikan dari setup nyata pada 2 Agustus 2026.
| Aspek | Nilai |
|---|---|
| Perangkat | Raspberry Pi 4 Model B |
| OS | Raspberry Pi OS Lite berbasis Debian 13 (Trixie), 64-bit |
| Display server | Wayland/KMS (bukan X11) |
| Compositor kiosk | sway |
| Browser | chromium (mode --kiosk) |
| Login | Console autologin di tty1 |
| Rotasi | output * transform 270 (270° searah jarum jam) |
Alur singkatnya: Pi boot → autologin di tty1 → ~/.profile menjalankan
~/kiosk.sh → ~/kiosk.sh menjalankan sway dengan config ~/.config/sway/kiosk.conf
→ sway memutar layar lalu menjalankan Chromium fullscreen.
Pi OS Lite tidak punya tampilan grafis apa pun (tidak ada desktop, tidak ada browser). Untuk menampilkan web di monitor kita hanya butuh 3 hal:
- Compositor yang menggambar ke layar (kita pakai
sway, sangat ringan). - Browser yang berjalan fullscreen dan terkunci di satu halaman (Chromium
--kiosk). - Autostart saat boot (console autologin +
~/.profile).
Tidak perlu desktop environment penuh — itu justru berat dan tidak diperlukan untuk kiosk.
Kenapa
swaydan bukancage?cageadalah compositor khusus kiosk yang lebih sederhana, tapi buildcagedi Debian/RPi (versi 0.2.0) tidak punya opsi rotasi. Karena kita butuh memutar layar, kita pakaiswayyang punya perintah bawaanoutput transform. (Lihat Bagian 12.)
- Raspberry Pi dengan Raspberry Pi OS Lite sudah terpasang dan bisa boot.
- Monitor tercolok ke port HDMI0 (yang dekat USB-C power pada Pi 4).
- Akses SSH ke Pi (atau keyboard langsung).
- User biasa (contoh di sini:
fajarb) yang tergabung di grupvideo,render,input— pada Raspberry Pi OS user default sudah otomatis masuk grup ini. Cek dengan:id
- Koneksi internet di Pi (untuk
aptdan untuk memuat dashboard).
sudo apt update
sudo apt install -y sway chromiumsway— compositor Wayland yang menjalankan aplikasi fullscreen + mendukung rotasi.chromium— browser. (Di Debian Trixie nama paketnyachromium, bukanchromium-browser.)
Supaya saat boot langsung login ke tty1 (tanpa desktop) dan memicu kiosk:
sudo raspi-config nonint do_boot_behaviour B2Alternatif lewat menu:
sudo raspi-config→ System Options → Boot / Auto Login → Console Autologin.
Perintah di atas membuat file override:
/etc/systemd/system/getty@tty1.service.d/autologin.conf yang berisi
--autologin <user>. Pastikan user-nya benar (di sini fajarb).
File ini adalah "titik masuk" kiosk. Di sinilah URL dashboard diatur.
nano ~/kiosk.shIsi dengan:
#!/bin/sh
# =====================================================================
# Web dashboard kiosk launcher (sway + chromium, Wayland/KMS)
# Dijalankan otomatis dari ~/.profile saat login di tty1 (layar fisik).
#
# >>> GANTI DASHBOARD : ubah baris URL di bawah.
# >>> GANTI ROTASI : ubah "output * transform" di
# ~/.config/sway/kiosk.conf (0/90/180/270).
#
# Terapkan perubahan : reboot, atau dari SSH jalankan:
# pkill -f kiosk.sh; pkill sway
# =====================================================================
export URL="https://www.google.com"
# Loop luar: kalau sway keluar (mis. crash), jalankan lagi.
while true; do
sway -c "$HOME/.config/sway/kiosk.conf"
sleep 2
doneJadikan executable:
chmod +x ~/kiosk.shmkdir -p ~/.config/sway
nano ~/.config/sway/kiosk.confIsi dengan:
# =====================================================================
# Konfigurasi sway untuk kiosk (dipakai oleh ~/kiosk.sh)
# =====================================================================
# --- ROTASI LAYAR ---------------------------------------------------
# 0 = normal, 90 / 180 / 270 = putar searah jarum jam.
# Ganti angka di bawah lalu terapkan (reboot atau: pkill -f kiosk.sh; pkill sway)
output * transform 270
# --- Tampilan bersih: tanpa border, gap, dan status bar -------------
default_border none
default_floating_border none
gaps inner 0
gaps outer 0
bar {
mode invisible
}
# Browser memakai Wayland langsung, tidak perlu XWayland
xwayland disable
# --- Jalankan Chromium fullscreen -----------------------------------
# URL diambil dari variabel $URL yang di-export oleh ~/kiosk.sh.
# Dibungkus loop supaya kalau Chromium crash, otomatis dijalankan ulang
# (sway/rotasi tetap hidup).
exec sh -c 'while true; do chromium --kiosk --ozone-platform=wayland --no-first-run --noerrdialogs --disable-infobars --disable-session-crashed-bubble --incognito "$URL"; sleep 2; done'
Penjelasan flag Chromium yang penting:
| Flag | Fungsi |
|---|---|
--kiosk |
Fullscreen terkunci, tanpa toolbar |
--ozone-platform=wayland |
Wajib — paksa Chromium pakai Wayland (bukan X11/XWayland) |
--no-first-run |
Lewati dialog first-run |
--noerrdialogs |
Tanpa dialog error |
--disable-infobars |
Tanpa bar info |
--disable-session-crashed-bubble |
Tanpa notifikasi "Restore pages" |
--incognito |
Sesi bersih tiap kali start |
Tambahkan blok berikut di akhir ~/.profile:
nano ~/.profile# --- Web dashboard kiosk: auto-start di layar fisik (tty1) ---
# Hanya jalan di console fisik tty1 dan hanya jika 'sway' sudah terpasang,
# jadi login lewat SSH (pts/*) tidak terpengaruh.
if [ "$(tty)" = "/dev/tty1" ] && command -v sway >/dev/null 2>&1; then
exec "$HOME/kiosk.sh"
fi
# --- end kiosk ---Kenapa
~/.profiledan bukan~/.bash_profile? Bash login shell membaca~/.bash_profile→~/.bash_login→~/.profile(yang pertama ada). Pada Raspberry Pi OS biasanya hanya ada~/.profile, jadi itu yang dipakai.Kenapa ada penjaga
command -v sway? Supaya kalauswaybelum terpasang, login di tty1 tidak error — cuma tidak menjalankan kiosk. Penjagatty1memastikan sesi SSH (pts/*) tidak ikut menjalankan kiosk.
Reboot untuk melihat hasilnya:
sudo rebootSetelah ~20–30 detik, monitor akan menampilkan halaman fullscreen dalam orientasi portrait (270°). Kalau Chromium/sway crash, otomatis dijalankan ulang.
Rotasi diatur pada satu baris di ~/.config/sway/kiosk.conf:
output * transform 270
| Nilai | Hasil |
|---|---|
0 |
Normal (landscape) |
90 |
Putar 90° searah jarum jam |
180 |
Terbalik |
270 |
Putar 270° searah jarum jam |
Ubah angkanya lalu terapkan (lihat Bagian 11).
Untuk monitor tertentu bisa juga pakai
output HDMI-A-1 transform 270(nama output spesifik). Cek nama output dengan perintahswaymsg -t get_outputs(lihat Bagian 12).
Ganti URL dashboard: edit baris URL= di ~/kiosk.sh.
Ganti rotasi: edit output * transform di ~/.config/sway/kiosk.conf.
Lalu terapkan dengan salah satu cara:
# Cara cepat tanpa reboot (dari SSH):
pkill -f kiosk.sh; pkill swaygetty akan otomatis autologin ulang di tty1 → menjalankan kiosk versi baru.
Atau cukup:
sudo rebootCek rotasi & output aktif (dari SSH). swaymsg butuh alamat socket sway:
SWAYSOCK=$(ls -t /run/user/1000/sway-ipc.* | head -1) swaymsg -t get_outputsCari baris:
"name": "HDMI-A-1",
"active": true,
"transform": "270",
Cek proses jalan:
pgrep -x sway
pgrep -x chromiumCek monitor terdeteksi (level KMS):
for c in /sys/class/drm/card*/card*-HDMI*/status; do echo "$c = $(cat "$c")"; doneLayar hitam / kembali ke console teks
- Cek prosesnya:
pgrep -x swaydanpgrep -x chromium. Kalau kosong, kiosk gagal start. - Jalankan manual di layar fisik/tty1 (bukan SSH — Wayland butuh "seat"):
Perhatikan pesan error yang muncul.
sway -c ~/.config/sway/kiosk.conf
Halaman tidak muncul, tapi sway jalan
- Pastikan Chromium memakai
--ozone-platform=wayland(tanpa ini ia mencoba X11 yang tidak ada). - Cek koneksi internet dan URL benar.
Font kotak-kotak / tampilan aneh
- Pasang font dasar:
sudo apt install -y fonts-liberation fonts-noto-core.
Resolusi kurang tajam
- Secara default sway memakai mode preferred monitor. Untuk memaksa resolusi (hanya jika
monitor mendukung), tambahkan di
~/.config/sway/kiosk.confsebelum baris transform:output HDMI-A-1 mode 1920x1080 output * transform 270
Layar sering blank/mati sendiri
swaytidak mem-blank layar secara default, jadi umumnya aman. Kalau tetap terjadi, pastikan tidak adaswayidleyang berjalan.
Ingin keluar dari kiosk untuk debug
- SSH ke Pi lalu:
pkill -f kiosk.sh; pkill sway(akan restart), atau untuk menghentikan sementara nonaktifkan autostart dengan mengomentari blok di~/.profile.
Awalnya setup ini memakai cage (compositor khusus kiosk, lebih sederhana). cage
bekerja baik untuk menampilkan Chromium fullscreen, tetapi build cage di repo
Debian/RPi (versi 0.2.0) tidak menyertakan opsi rotasi — cage -h hanya menampilkan
-d -h -m -s -v, tanpa -r.
Karena kebutuhannya memutar layar 270°, compositor diganti ke sway yang punya
direktif bawaan output transform. Sisanya (autologin, ~/kiosk.sh, ~/.profile, cara
ganti URL) tetap sama. cage boleh dibiarkan terpasang (tidak dipakai) atau dihapus.
| File | Peran |
|---|---|
~/kiosk.sh |
Launcher; berisi URL dashboard; menjalankan sway |
~/.config/sway/kiosk.conf |
Config sway; berisi rotasi + perintah Chromium |
~/.profile |
Pemicu autostart di tty1 |
/etc/systemd/system/getty@tty1.service.d/autologin.conf |
Console autologin (dibuat raspi-config) |
Paket: sway, chromium.
Selesai. Setelah semua langkah, dashboard akan tampil otomatis dan berotasi setiap kali Raspberry Pi dinyalakan.