"feat: Add Raspberry Pi setup scripts and database files"
This commit is contained in:
parent
d2c16fca62
commit
9c29e371ed
1
backend/app/README_RaspberryPi_Kiosk.md
Normal file
1
backend/app/README_RaspberryPi_Kiosk.md
Normal file
@ -0,0 +1 @@
|
||||
|
Binary file not shown.
Binary file not shown.
241
backend/app/schnellstart_raspberry_pi.sh
Normal file
241
backend/app/schnellstart_raspberry_pi.sh
Normal file
@ -0,0 +1,241 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ===================================================================
|
||||
# MYP Druckerverwaltung - Raspberry Pi Schnellstart
|
||||
# Vereinfachte Installation für sofortige Nutzung
|
||||
# ===================================================================
|
||||
|
||||
set -e
|
||||
|
||||
# Farben für Ausgabe
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Logging-Funktionen
|
||||
log() { echo -e "${GREEN}[SCHNELLSTART] $1${NC}"; }
|
||||
error() { echo -e "${RED}[FEHLER] $1${NC}"; exit 1; }
|
||||
warning() { echo -e "${YELLOW}[WARNUNG] $1${NC}"; }
|
||||
info() { echo -e "${BLUE}[INFO] $1${NC}"; }
|
||||
|
||||
# ASCII Art Banner
|
||||
cat << 'EOF'
|
||||
╔═══════════════════════════════════════════════════════════╗
|
||||
║ MYP DRUCKERVERWALTUNG ║
|
||||
║ Raspberry Pi Kiosk Schnellstart ║
|
||||
║ ║
|
||||
║ 🖨️ Vollautomatische Installation in 3 Schritten ║
|
||||
╚═══════════════════════════════════════════════════════════╝
|
||||
EOF
|
||||
|
||||
echo
|
||||
log "Willkommen zum MYP Druckerverwaltung Schnellstart!"
|
||||
echo
|
||||
|
||||
# Prüfungen vor Installation
|
||||
log "Führe Vorprüfungen durch..."
|
||||
|
||||
# Root-Berechtigung prüfen
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
error "Dieses Skript muss als Root ausgeführt werden: sudo $0"
|
||||
fi
|
||||
|
||||
# Raspberry Pi erkennen
|
||||
if ! grep -q "Raspberry Pi" /proc/device-tree/model 2>/dev/null; then
|
||||
warning "Nicht auf Raspberry Pi - Installation trotzdem fortsetzen? (j/N)"
|
||||
read -r response
|
||||
if [[ ! "$response" =~ ^[jJ]$ ]]; then
|
||||
error "Installation abgebrochen"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Internetverbindung prüfen
|
||||
if ! ping -c 1 google.com &> /dev/null; then
|
||||
error "Keine Internetverbindung! Bitte Netzwerk konfigurieren."
|
||||
fi
|
||||
|
||||
# Speicherplatz prüfen
|
||||
available_space=$(df / | awk 'NR==2 {print $4}')
|
||||
if [ "$available_space" -lt 2000000 ]; then
|
||||
error "Nicht genügend Speicherplatz! Mindestens 2GB frei erforderlich."
|
||||
fi
|
||||
|
||||
log "✅ Alle Vorprüfungen bestanden!"
|
||||
echo
|
||||
|
||||
# Benutzerinteraktion
|
||||
info "📋 Konfiguration:"
|
||||
echo
|
||||
|
||||
# Kiosk-URL abfragen
|
||||
read -p "🌐 Kiosk-URL (Standard: http://localhost): " kiosk_url
|
||||
kiosk_url=${kiosk_url:-"http://localhost"}
|
||||
|
||||
# Auto-Neustart abfragen
|
||||
read -p "🔄 Nach Installation automatisch neustarten? (J/n): " auto_reboot
|
||||
auto_reboot=${auto_reboot:-"j"}
|
||||
|
||||
# Bestätigung
|
||||
echo
|
||||
warning "⚠️ ACHTUNG: Diese Installation wird das System für Kiosk-Modus konfigurieren!"
|
||||
warning " - Automatischer Login wird aktiviert"
|
||||
warning " - Desktop-Umgebung wird auf Kiosk umgestellt"
|
||||
warning " - Systemd-Services werden erstellt"
|
||||
echo
|
||||
read -p "🚀 Installation starten? (j/N): " confirm
|
||||
if [[ ! "$confirm" =~ ^[jJ]$ ]]; then
|
||||
error "Installation abgebrochen"
|
||||
fi
|
||||
|
||||
echo
|
||||
log "=== SCHRITT 1/3: SYSTEM VORBEREITEN ==="
|
||||
|
||||
# Prüfe ob install_raspberry_pi.sh existiert
|
||||
if [ ! -f "./install_raspberry_pi.sh" ]; then
|
||||
error "install_raspberry_pi.sh nicht gefunden! Führe dieses Skript im Projektverzeichnis aus."
|
||||
fi
|
||||
|
||||
# Mache Installationsskript ausführbar
|
||||
chmod +x "./install_raspberry_pi.sh"
|
||||
|
||||
log "=== SCHRITT 2/3: HAUPTINSTALLATION ==="
|
||||
echo
|
||||
|
||||
# Führe Hauptinstallation aus
|
||||
info "Starte vollständige Installation..."
|
||||
info "Dies kann 10-20 Minuten dauern..."
|
||||
echo
|
||||
|
||||
if ./install_raspberry_pi.sh; then
|
||||
log "✅ Hauptinstallation erfolgreich abgeschlossen!"
|
||||
else
|
||||
error "❌ Fehler bei der Hauptinstallation!"
|
||||
fi
|
||||
|
||||
log "=== SCHRITT 3/3: FINALISIERUNG ==="
|
||||
|
||||
# Kiosk-URL anpassen falls gewünscht
|
||||
if [ "$kiosk_url" != "http://localhost" ]; then
|
||||
log "Konfiguriere Kiosk-URL: $kiosk_url"
|
||||
sed -i "s|http://localhost|$kiosk_url|g" /home/kiosk/kiosk.sh
|
||||
fi
|
||||
|
||||
# Erstelle Schnellzugriff-Desktop-Icons
|
||||
log "Erstelle Desktop-Verknüpfungen..."
|
||||
|
||||
# Für den normalen Benutzer (falls vorhanden)
|
||||
if [ -d "/home/pi" ]; then
|
||||
mkdir -p /home/pi/Desktop
|
||||
|
||||
# Wartungs-Icon
|
||||
cat > "/home/pi/Desktop/MYP-Wartung.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=MYP Wartung
|
||||
Comment=Druckerverwaltung warten
|
||||
Exec=x-terminal-emulator -e 'sudo myp-maintenance status; read -p "Taste drücken..."'
|
||||
Icon=applications-system
|
||||
Terminal=false
|
||||
Categories=System;
|
||||
EOF
|
||||
|
||||
# Browser-Icon für normale Ansicht
|
||||
cat > "/home/pi/Desktop/MYP-Browser.desktop" << EOF
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=MYP Browser-Ansicht
|
||||
Comment=Druckerverwaltung im Browser öffnen
|
||||
Exec=chromium-browser $kiosk_url
|
||||
Icon=web-browser
|
||||
Terminal=false
|
||||
Categories=Network;
|
||||
EOF
|
||||
|
||||
chown pi:pi /home/pi/Desktop/*.desktop
|
||||
chmod +x /home/pi/Desktop/*.desktop
|
||||
fi
|
||||
|
||||
# Erstelle Backup der ursprünglichen Konfiguration
|
||||
log "Erstelle Konfigurations-Backup..."
|
||||
mkdir -p /opt/myp-backup-original
|
||||
cp /etc/lightdm/lightdm.conf /opt/myp-backup-original/ 2>/dev/null || true
|
||||
cp /home/kiosk/.config/openbox/autostart /opt/myp-backup-original/ 2>/dev/null || true
|
||||
|
||||
# Erstelle Notfall-Wiederherstellungsskript
|
||||
cat > "/usr/local/bin/myp-notfall-reset" << 'EOF'
|
||||
#!/bin/bash
|
||||
echo "🚨 MYP Notfall-Reset"
|
||||
echo "Stoppt alle MYP-Services und stellt Original-Konfiguration wieder her"
|
||||
echo
|
||||
read -p "Wirklich fortfahren? (j/N): " confirm
|
||||
if [[ "$confirm" =~ ^[jJ]$ ]]; then
|
||||
systemctl stop myp-kiosk myp-druckerverwaltung nginx
|
||||
systemctl disable myp-kiosk
|
||||
|
||||
# Original LightDM wiederherstellen (falls vorhanden)
|
||||
if [ -f "/opt/myp-backup-original/lightdm.conf" ]; then
|
||||
cp /opt/myp-backup-original/lightdm.conf /etc/lightdm/
|
||||
fi
|
||||
|
||||
echo "✅ Reset abgeschlossen. System neustarten für normale Desktop-Nutzung:"
|
||||
echo "sudo reboot"
|
||||
fi
|
||||
EOF
|
||||
|
||||
chmod +x /usr/local/bin/myp-notfall-reset
|
||||
|
||||
# Zusammenfassung der Installation
|
||||
echo
|
||||
log "🎉 === INSTALLATION ERFOLGREICH ABGESCHLOSSEN! ==="
|
||||
echo
|
||||
info "📋 ZUSAMMENFASSUNG:"
|
||||
info " • Kiosk-URL: $kiosk_url"
|
||||
info " • Automatischer Login: Aktiviert (Benutzer: kiosk)"
|
||||
info " • Anwendung: http://$(hostname -I | awk '{print $1}')"
|
||||
info " • SSH-Zugang: Weiterhin verfügbar"
|
||||
echo
|
||||
info "🔧 WICHTIGE BEFEHLE:"
|
||||
info " • Status prüfen: myp-maintenance status"
|
||||
info " • Services neustarten: myp-maintenance restart"
|
||||
info " • Nur Kiosk neustarten: myp-maintenance kiosk-restart"
|
||||
info " • Logs anzeigen: myp-maintenance logs"
|
||||
info " • Backup erstellen: myp-backup"
|
||||
info " • Notfall-Reset: myp-notfall-reset"
|
||||
echo
|
||||
info "📁 WICHTIGE PFADE:"
|
||||
info " • Anwendung: /opt/myp-druckerverwaltung/"
|
||||
info " • Kiosk-Skript: /home/kiosk/kiosk.sh"
|
||||
info " • Logs: journalctl -u myp-kiosk -f"
|
||||
info " • Backups: /opt/myp-backups/"
|
||||
echo
|
||||
info "🔒 SICHERHEIT:"
|
||||
info " • Firewall aktiv (Ports 80, 22)"
|
||||
info " • Automatische Backups (täglich 2:00 Uhr)"
|
||||
info " • Service-Überwachung aktiviert"
|
||||
echo
|
||||
|
||||
if [[ "$auto_reboot" =~ ^[jJ]$ ]]; then
|
||||
warning "⚠️ System wird in 10 Sekunden automatisch neu gestartet..."
|
||||
warning " Drücke CTRL+C zum Abbrechen"
|
||||
echo
|
||||
for i in {10..1}; do
|
||||
echo -ne "\r🔄 Neustart in $i Sekunden..."
|
||||
sleep 1
|
||||
done
|
||||
echo
|
||||
log "🚀 Starte System neu..."
|
||||
reboot
|
||||
else
|
||||
echo
|
||||
warning "⚠️ WICHTIG: Starte das System manuell neu, um den Kiosk-Modus zu aktivieren:"
|
||||
warning " sudo reboot"
|
||||
echo
|
||||
info "📞 Bei Problemen: Lies die Anleitung in README_RaspberryPi_Kiosk.md"
|
||||
fi
|
||||
|
||||
echo
|
||||
log "Installation abgeschlossen! 🎯"
|
2
backend/app/static/css/tailwind.min.css
vendored
2
backend/app/static/css/tailwind.min.css
vendored
File diff suppressed because one or more lines are too long
@ -8,7 +8,7 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="bg-professional" style="background: #f8fafc !important;">
|
||||
<div class="bg-professional">
|
||||
<!-- Dark Mode Override -->
|
||||
<style>
|
||||
.dark .bg-professional {
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% block title %}Drucker - Mercedes-Benz MYP Platform{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="bg-professional" style="background: #f8fafc !important;">
|
||||
<div class="bg-professional">
|
||||
<!-- Dark Mode Override -->
|
||||
<style>
|
||||
.dark .bg-professional {
|
||||
|
Loading…
x
Reference in New Issue
Block a user