commits
tags
#!/bin/bash
# install.sh — Installerar och konfigurerar kiosken på Debian 13 (Wayland/Sway)
set -e
KIOSK_USER="${KIOSK_USER:-mrfox}"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "=== Kiosk — installation ==="
echo "Användare: $KIOSK_USER"
echo "Katalog: $SCRIPT_DIR"
echo ""
# ── 1. Systempaket ────────────────────────────────────────────────────────────
echo "[1/7] Installerar systempaket..."
apt-get update -q
apt-get install -y \
sway chromium curl \
iw wpasupplicant \
python3 python3-flask python3-flask-socketio \
python3-apscheduler python3-psutil python3-eventlet \
pipewire pipewire-audio
# ── 2. Socket.IO-klientbibliotek ──────────────────────────────────────────────
echo "[2/7] Kontrollerar socket.io.min.js..."
SOCK_JS="$SCRIPT_DIR/kiosk/static/socket.io.min.js"
if [ ! -f "$SOCK_JS" ]; then
echo " Laddar ner socket.io v4.7.5..."
curl -fsSL \
"https://cdn.jsdelivr.net/npm/socket.io@4.7.5/client-dist/socket.io.min.js" \
-o "$SOCK_JS"
echo " Sparad till $SOCK_JS"
else
echo " Redan nedladdad."
fi
# ── 3. Katalog och rättigheter ────────────────────────────────────────────────
echo "[3/7] Skapar kataloger och sätter rättigheter..."
mkdir -p "$SCRIPT_DIR/kiosk/uploads"
chmod +x \
"$SCRIPT_DIR/kiosk/start.sh" \
"$SCRIPT_DIR/kiosk/kiosk-launcher.sh" \
"$SCRIPT_DIR/kiosk/sway-apps.sh" \
"$SCRIPT_DIR/kiosk/hdmi-monitor.sh" \
"$SCRIPT_DIR/kiosk/hdmi-wait.sh"
# ── 4. Wi-Fi sudoers ──────────────────────────────────────────────────────────
echo "[4/7] Konfigurerar sudoers för Wi-Fi (wpa_cli)..."
SUDOERS_FILE="/etc/sudoers.d/kiosk-wifi"
if [ ! -f "$SUDOERS_FILE" ]; then
echo "$KIOSK_USER ALL=(ALL) NOPASSWD: /usr/sbin/wpa_cli" > "$SUDOERS_FILE"
chmod 440 "$SUDOERS_FILE"
echo " Skapad: $SUDOERS_FILE"
else
echo " Redan konfigurerad."
fi
# ── 5. Autoinloggning på tty1 ─────────────────────────────────────────────────
echo "[5/7] Konfigurerar autoinloggning på tty1 för $KIOSK_USER..."
GETTY_OVERRIDE="/etc/systemd/system/getty@tty1.service.d/autologin.conf"
mkdir -p "$(dirname "$GETTY_OVERRIDE")"
if [ ! -f "$GETTY_OVERRIDE" ]; then
cat > "$GETTY_OVERRIDE" <<EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin $KIOSK_USER --noclear %I \$TERM
EOF
systemctl daemon-reload
echo " Autoinloggning aktiverad."
else
echo " Redan konfigurerad."
fi
# ── 6. .bash_profile — starta kiosken vid tty1-inloggning ────────────────────
echo "[6/7] Konfigurerar .bash_profile..."
BASHPROFILE="/home/$KIOSK_USER/.bash_profile"
LAUNCHER_LINE="[[ -z \$DISPLAY && \$(tty) == /dev/tty1 ]] && exec bash $SCRIPT_DIR/kiosk/kiosk-launcher.sh"
if ! grep -qF "kiosk-launcher.sh" "$BASHPROFILE" 2>/dev/null; then
echo "" >> "$BASHPROFILE"
echo "$LAUNCHER_LINE" >> "$BASHPROFILE"
chown "$KIOSK_USER:$KIOSK_USER" "$BASHPROFILE"
echo " Lagt till i $BASHPROFILE"
else
echo " Redan konfigurerad."
fi
# ── 7. Klar ───────────────────────────────────────────────────────────────────
echo ""
echo "[7/7] Installation klar!"
echo ""
echo "Nästa steg:"
echo " 1. Redigera $SCRIPT_DIR/kiosk/start.sh och sätt KIOSK_USER / KIOSK_PASS"
echo " 2. Anslut HDMI-skärm"
echo " 3. Starta om datorn — kiosken startar automatiskt:"
echo " sudo reboot"
echo ""
echo "Manuell start (utan omstart):"
echo " bash $SCRIPT_DIR/kiosk/kiosk-launcher.sh"
echo ""
echo "Admin-panel:"
echo " http://<IP>:5000/admin"