Adhaan/pi-setup.sh
filoor 9c70e27a0e chore(setup): update Adhan repository URL in setup script
De URL voor het klonen van de Adhan repository is bijgewerkt naar een nieuwe locatie. Dit zorgt ervoor dat de juiste repository wordt gekloond, zoals gehost op git.tarikfaik.nl, in plaats van de eerdere GitHub-locatie.
2025-05-29 14:07:01 +02:00

223 lines
6.3 KiB
Bash

#!/bin/bash
echo "🍓 Adhaan Raspberry Pi Kiosk Setup"
echo "=================================="
# Update systeem
echo "📦 Systeem bijwerken..."
sudo apt update -y
sudo apt upgrade -y
# Installeer git voor repo clonen
echo "📥 Git installeren..."
sudo apt install -y git
# Clone adhaan repository
echo "📦 Adhaan repository clonen..."
cd /home/$USER
if [ -d "adhan" ]; then
echo "⚠️ Adhan map bestaat al, pulling latest changes..."
cd adhan
git pull
cd ..
else
echo "📥 Adhan repository clonen..."
git clone https://git.tarikfaik.nl/Tarik/Adhaan.git
fi
# 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"