#!/bin/bash echo "๐Ÿ“ Adhaan Raspberry Pi Kiosk Setup" echo "==================================" # Update systeem echo "๐Ÿ“ฆ Systeem bijwerken..." sudo apt update -y sudo apt upgrade -y # Installeer Docker echo "๐Ÿณ Docker installeren..." curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER rm get-docker.sh # Installeer Docker Compose echo "๐Ÿ”ง Docker Compose installeren..." sudo apt install -y docker-compose # Installeer GUI componenten voor kiosk mode echo "๐Ÿ–ฅ๏ธ GUI componenten installeren..." sudo apt install -y --no-install-recommends \ xserver-xorg \ x11-xserver-utils \ xinit \ openbox \ chromium-browser \ unclutter # Configureer HDMI audio automatisch echo "๐Ÿ”Š HDMI audio automatisch configureren..." sudo raspi-config nonint do_audio 2 # Force HDMI audio # Maak kiosk script echo "๐Ÿ“ Kiosk script aanmaken..." cat > /home/$USER/kiosk.sh << 'EOF' #!/bin/bash sleep 5 echo "Starting Adhaan Kiosk..." # Forceer HDMI audio output echo "๐Ÿ”Š HDMI audio configureren..." amixer cset numid=3 2 # 0=auto, 1=headphones, 2=hdmi sudo raspi-config nonint do_audio 2 # Force HDMI audio # Zet volume op redelijk niveau (70%) amixer set PCM 70% # Start Docker containers cd /home/pi/adhan echo "Starting Docker containers..." docker-compose -f docker-compose-pi.yml up -d # Wacht tot containers draaien sleep 10 # Sluit eventuele andere browsers pkill -f chromium-browser 2>/dev/null || true # Start browser in kiosk mode met audio optimalisaties echo "Starting browser..." /usr/bin/chromium-browser \ --kiosk \ --start-maximized \ --noerrdialogs \ --disable-infobars \ --disable-session-crashed-bubble \ --disable-restore-session-state \ --disable-background-timer-throttling \ --disable-backgrounding-occluded-windows \ --disable-renderer-backgrounding \ --disable-features=TranslateUI \ --disable-ipc-flooding-protection \ --enable-features=OverlayScrollbar \ --no-first-run \ --fast \ --fast-start \ --disable-default-apps \ --disable-popup-blocking \ --disable-prompt-on-repost \ --disable-hang-monitor \ --disable-background-networking \ --aggressive-cache-discard \ --memory-pressure-off \ --max_old_space_size=100 \ --force-device-scale-factor=1 \ --autoplay-policy=no-user-gesture-required \ --allow-running-insecure-content \ --disable-web-security \ --disable-features=VizDisplayCompositor \ http://localhost:5090 & echo "Kiosk started!" EOF chmod +x /home/$USER/kiosk.sh # Configureer autostart echo "โš™๏ธ Autostart configureren..." sudo mkdir -p /etc/xdg/openbox cat > /tmp/autostart << 'EOF' # Schakel power management uit xset -dpms xset s noblank xset s off # Verberg cursor na 3 seconden unclutter -idle 3 -root & # Verwijder crash berichten sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State' 2>/dev/null || true sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences 2>/dev/null || true # Start kiosk /home/USER_PLACEHOLDER/kiosk.sh EOF sed "s/USER_PLACEHOLDER/$USER/g" /tmp/autostart | sudo tee /etc/xdg/openbox/autostart > /dev/null # Configureer automatische X start echo "๐Ÿš€ Automatische X start configureren..." if ! grep -q "startx" ~/.bash_profile 2>/dev/null; then echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor' >> ~/.bash_profile fi # Configureer automatische login (VERBETERD) echo "๐Ÿ‘ค Automatische login configureren..." sudo raspi-config nonint do_boot_behaviour B4 # Extra: Schakel splash screen uit voor snellere boot echo "๐Ÿš€ Boot optimalisaties..." sudo raspi-config nonint do_boot_splash 1 # Extra: Schakel wachtwoord login uit voor console (optioneel) echo "๐Ÿ”’ Console login optimaliseren..." sudo raspi-config nonint do_boot_behaviour B2 # Schakel lightdm greeter uit (geen login scherm) echo "๐Ÿ–ฅ๏ธ Login scherm uitschakelen..." sudo systemctl set-default multi-user.target sudo systemctl disable lightdm # Configureer automatische startx zonder login manager cat > /tmp/getty-override.conf << 'EOF' [Service] ExecStart= ExecStart=-/sbin/agetty --autologin USER_PLACEHOLDER --noclear %I $TERM EOF sed "s/USER_PLACEHOLDER/$USER/g" /tmp/getty-override.conf | sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf > /dev/null sudo mkdir -p /etc/systemd/system/getty@tty1.service.d/ # Maak systemd service voor Docker echo "๐Ÿ”„ Docker service configureren..." cat > /tmp/adhan-docker.service << 'EOF' [Unit] Description=Adhaan Docker Services Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/home/USER_PLACEHOLDER/adhan ExecStart=/usr/bin/docker-compose -f docker-compose-pi.yml up -d ExecStop=/usr/bin/docker-compose -f docker-compose-pi.yml down TimeoutStartSec=0 [Install] WantedBy=multi-user.target EOF sed "s/USER_PLACEHOLDER/$USER/g" /tmp/adhan-docker.service | sudo tee /etc/systemd/system/adhan-docker.service > /dev/null sudo systemctl enable adhan-docker.service # Test Docker setup echo "๐Ÿงช Docker setup testen..." cd /home/$USER/adhan if docker-compose -f docker-compose-pi.yml config > /dev/null 2>&1; then echo "โœ… Docker configuratie OK" else echo "โŒ Docker configuratie probleem" fi echo "" echo "โœ… Setup voltooid!" echo "" echo "๐Ÿ“‹ Volgende stappen:" echo "1. Herstart de Pi: sudo reboot" echo "2. De Pi start automatisch ZONDER login scherm" echo "3. Docker containers starten automatisch" echo "4. Webpagina opent automatisch fullscreen" echo "" echo "๐Ÿ”ง Handmatige bediening:" echo "- Alt+F4: Sluit browser" echo "- Ctrl+Alt+T: Open terminal" echo "- sudo systemctl status adhan-docker: Check Docker status" echo "" echo "โš ๏ธ BELANGRIJK:" echo "- Geen login scherm meer na herstart" echo "- SSH blijft beschikbaar voor remote toegang" echo "- Voor lokale terminal: Ctrl+Alt+F2" echo "- HDMI audio automatisch geconfigureerd"