#!/bin/sh set -e echo "Setting up Kiosk..." cat > /etc/apk/repositories << 'EOF' http://mirror.fcix.net/alpine/v3.22/main http://mirror.fcix.net/alpine/v3.22/community EOF apk update && apk upgrade # Install packages apk add \ mesa-dri-gallium mesa-egl mesa-gl mesa-gles \ xorg-server xf86-video-fbdev xf86-input-libinput \ dbus setxkbmap kbd xrandr xset xinit chromium # Configure boot with custom config.txt and cmdline.txt (usercfg.txt is used becuase config.txt get's overwritten on updates) cat > /boot/usercfg.txt << 'EOF' camera_auto_detect=0 disable_overscan=1 dtoverlay=vc4-kms-v3d gpu_mem=128 hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=82 config_hdmi_boost=4 boot_delay=0 disable_splash=1 EOF echo "root=UUID=$(findmnt -no UUID /) modules=sd-mod,usb-storage,ext4 rootfstype=ext4 console=tty3 loglevel=0 vt.global_cursor_default=0" > /boot/cmdline.txt # Remove unnecessary services for service in acpid chronyd crond modules seedrng; do rc-update del $service 2>/dev/null || true done # Create kiosk user adduser -D -h /srv/kiosk -s /bin/ash kiosk # Setup kiosk profile cat > /srv/kiosk/.profile << 'EOF' #!/bin/sh if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then exec startx >/dev/null 2>&1 fi EOF # Setup xinitrc cat > /srv/kiosk/.xinitrc << 'EOF' #!/bin/sh export DISPLAY=:0 (sleep 2 && xset -dpms s off s noblank) & while ! ping -c 1 -W 1 google.com > /dev/null 2>&1; do sleep 2 done while true; do chromium \ --kiosk \ --no-sandbox \ --disable-dev-shm-usage \ --force-device-scale-factor=1 \ --window-size=3840,2160 \ --disable-features=TranslateUI \ --disable-component-update \ --no-first-run \ --num-raster-threads=4 \ --use-gl=egl \ --disable-infobars \ --disable-session-crashed-bubble \ --disable-breakpad \ --disable-sync \ --disable-translate \ --metrics-recording-only \ --disable-default-apps \ --mute-audio \ --no-default-browser-check \ ${KIOSK_URL:-https://benewahauto.com} sleep 5 done EOF chown -R kiosk:kiosk /srv/kiosk chmod +x /srv/kiosk/.profile /srv/kiosk/.xinitrc # Configure autologin sed -i 's/^tty1::respawn:.*$/tty1::respawn:\/bin\/login -f kiosk/' /etc/inittab echo "Setup complete! Rebooting..." reboot