diff --git a/backend/app/database/myp.db-shm b/backend/app/database/myp.db-shm index 214d8df1..7943562c 100644 Binary files a/backend/app/database/myp.db-shm and b/backend/app/database/myp.db-shm differ diff --git a/backend/app/database/myp.db-wal b/backend/app/database/myp.db-wal index 35282b94..2a59c2ba 100644 Binary files a/backend/app/database/myp.db-wal and b/backend/app/database/myp.db-wal differ diff --git a/myp_installer.sh b/myp_installer.sh index b6e71208..f9d8cbba 100644 --- a/myp_installer.sh +++ b/myp_installer.sh @@ -1049,143 +1049,83 @@ install_frontend() { # Frontend Produktions-Deployment deploy_frontend_production() { - show_header "Frontend Produktions-Deployment" - - echo -e "${BLUE}MYP Frontend für Produktion deployen (Port 80/443 mit SSL)${NC}" - echo "" - - # Docker prüfen - if ! check_command docker; then - echo -e "${RED}✗ Docker nicht gefunden. Bitte installieren Sie Docker${NC}" - read -p "Drücken Sie ENTER, um fortzufahren..." - return 1 - fi - - if ! check_command docker-compose; then - echo -e "${RED}✗ Docker Compose nicht gefunden. Bitte installieren Sie Docker Compose${NC}" - read -p "Drücken Sie ENTER, um fortzufahren..." - return 1 - fi - - echo -e "${GREEN}✓ Docker gefunden${NC}" - echo -e "${GREEN}✓ Docker Compose gefunden${NC}" - - # Frontend-Verzeichnis prüfen - if [ ! -d "$FRONTEND_DIR" ]; then - echo -e "${RED}✗ Frontend-Verzeichnis nicht gefunden: $FRONTEND_DIR${NC}" - read -p "Drücken Sie ENTER, um fortzufahren..." - return 1 - fi - - cd "$FRONTEND_DIR" - - # Produktions-Konfiguration prüfen - if [ ! -f "docker-compose.production.yml" ]; then - echo -e "${RED}✗ Produktions-Konfiguration nicht gefunden: docker-compose.production.yml${NC}" - echo -e "${YELLOW}Bitte stellen Sie sicher, dass die Produktions-Konfiguration vorhanden ist.${NC}" - read -p "Drücken Sie ENTER, um fortzufahren..." - return 1 - fi - - echo -e "${GREEN}✓ Produktions-Konfiguration gefunden${NC}" - - # SSL-Zertifikate-Verzeichnis erstellen - echo -e "${BLUE}1. SSL-Zertifikate-Verzeichnis erstellen...${NC}" - mkdir -p "./certs" - echo -e "${GREEN}✓ Zertifikate-Verzeichnis erstellt${NC}" - - # Alte Container stoppen - echo -e "${BLUE}2. Alte Container stoppen...${NC}" - exec_command "docker-compose -f docker-compose.production.yml down" "Alte Container stoppen" "true" - - # Backend-URL konfigurieren - echo -e "${BLUE}3. Backend-URL konfigurieren...${NC}" - echo -e "${WHITE}Aktuelle Backend-URLs:${NC}" - echo -e "${WHITE}1. Raspberry Pi (raspberrypi:443) [Standard]${NC}" - echo -e "${WHITE}2. Lokales Backend (localhost:443)${NC}" - echo -e "${WHITE}3. Benutzerdefinierte URL${NC}" - - read -p "Wählen Sie eine Option (1-3, Standard: 1): " backend_choice - - backend_url="https://raspberrypi:443" - - case $backend_choice in - 2) - backend_url="https://localhost:443" - ;; - 3) - read -p "Geben Sie die Backend-URL ein (z.B. https://192.168.1.100:443): " custom_url - if [ -n "$custom_url" ]; then - backend_url="$custom_url" - fi - ;; - *) - backend_url="https://raspberrypi:443" - ;; - esac - - echo -e "${GREEN}✓ Backend-URL konfiguriert: $backend_url${NC}" - - # Container bauen und starten - echo -e "${BLUE}4. Frontend-Container bauen und starten...${NC}" - echo -e "${YELLOW}Dies kann einige Minuten dauern...${NC}" - - # Environment-Variablen für Backend-URL setzen - export NEXT_PUBLIC_API_URL="$backend_url" - export NEXT_PUBLIC_BACKEND_HOST="${backend_url#https://}" - - exec_command "docker-compose -f docker-compose.production.yml up --build -d" "Frontend-Container starten" - - if [ $? -eq 0 ]; then - # Kurz warten und Status prüfen - echo -e "${BLUE}5. Container-Status prüfen...${NC}" - sleep 5 + show_header "Frontend Produktions-Deployment (m040tbaraspi001)" - container_status=$(docker-compose -f docker-compose.production.yml ps --services --filter "status=running") + echo -e "${BLUE}Starte Frontend-Produktions-Deployment...${NC}" + echo -e "${YELLOW}Backend-Verbindung: https://raspberrypi${NC}" + echo "" - if [ -n "$container_status" ]; then - echo -e "${GREEN}✓ Container erfolgreich gestartet!${NC}" - - # Container-Details anzeigen - echo "" - echo -e "${BLUE}Container Status:${NC}" - docker-compose -f docker-compose.production.yml ps - - echo "" - echo -e "${GREEN}✅ Frontend Produktions-Deployment erfolgreich abgeschlossen!${NC}" - echo "" - echo -e "${BLUE}🌐 Frontend ist verfügbar unter:${NC}" - echo -e "${WHITE} - HTTP: http://localhost:80${NC}" - echo -e "${WHITE} - HTTPS: https://localhost:443${NC}" - echo "" - echo -e "${BLUE}🔧 Backend-Verbindung:${NC}" - echo -e "${WHITE} - Backend: $backend_url${NC}" - echo "" - echo -e "${BLUE}📋 Nützliche Befehle:${NC}" - echo -e "${WHITE} - Logs anzeigen: docker-compose -f docker-compose.production.yml logs -f${NC}" - echo -e "${WHITE} - Container stoppen: docker-compose -f docker-compose.production.yml down${NC}" - echo -e "${WHITE} - Container neustarten: docker-compose -f docker-compose.production.yml restart${NC}" - echo "" - echo -e "${BLUE}🔒 SSL-Hinweise:${NC}" - echo -e "${WHITE} - Caddy generiert automatisch selbstsignierte Zertifikate${NC}" - echo -e "${WHITE} - Zertifikate werden in ./certs/ gespeichert${NC}" - echo -e "${WHITE} - Für Produktion: Browser-Warnung bei selbstsignierten Zertifikaten acceptieren${NC}" - - else - echo -e "${RED}✗ Container konnten nicht gestartet werden${NC}" - echo -e "${YELLOW}Logs anzeigen:${NC}" - docker-compose -f docker-compose.production.yml logs - return 1 + cd "$FRONTEND_DIR" + + # Docker-Compose prüfen + if ! check_command docker-compose; then + echo -e "${RED}✗ Docker-Compose nicht gefunden${NC}" + echo -e "${BLUE}Installiere Docker-Compose...${NC}" + if [ $is_root -eq 1 ]; then + curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose + else + echo -e "${RED}Root-Rechte erforderlich für Docker-Compose Installation${NC}" + return 1 + fi fi - else - echo -e "${RED}✗ Fehler beim Starten der Container${NC}" - return 1 - fi - - cd "$PROJECT_DIR" - - echo "" - read -p "Drücken Sie ENTER, um fortzufahren..." + + # Frontend-Konfiguration für Zwei-Server-Setup + echo -e "${BLUE}1. Frontend-Konfiguration für Zwei-Server-Setup...${NC}" + setup_frontend_config_two_server + + # SSL-Zertifikate prüfen/generieren + echo -e "${BLUE}2. SSL-Zertifikate prüfen...${NC}" + if [ ! -f "certs/frontend.crt" ] || [ ! -f "certs/frontend.key" ]; then + echo -e "${YELLOW}SSL-Zertifikate nicht gefunden. Generiere neue...${NC}" + mkdir -p certs + + # Frontend-Zertifikat generieren + openssl req -x509 -newkey rsa:2048 -keyout certs/frontend.key -out certs/frontend.crt -days 365 -nodes \ + -subj "/C=DE/ST=NRW/L=Duesseldorf/O=MYP/OU=Frontend/CN=m040tbaraspi001.de040.corpintra.net" + + echo -e "${GREEN}✓ SSL-Zertifikate generiert${NC}" + else + echo -e "${GREEN}✓ SSL-Zertifikate vorhanden${NC}" + fi + + # Docker-Images bauen + echo -e "${BLUE}3. Docker-Images bauen...${NC}" + exec_command "docker-compose build --no-cache" "Docker-Images bauen" + + # Frontend-Container starten + echo -e "${BLUE}4. Frontend-Container starten...${NC}" + exec_command "docker-compose up -d" "Frontend-Container starten" + + # Health-Check + echo -e "${BLUE}5. Health-Check...${NC}" + sleep 10 + + if curl -k -s https://localhost:443 > /dev/null; then + echo -e "${GREEN}✓ Frontend läuft erfolgreich${NC}" + else + echo -e "${YELLOW}⚠ Frontend möglicherweise noch nicht bereit${NC}" + fi + + echo "" + echo -e "${GREEN}✓ Frontend Produktions-Deployment abgeschlossen!${NC}" + echo "" + echo -e "${BLUE}🌐 Frontend-URLs:${NC}" + echo -e "${WHITE}- Extern: https://m040tbaraspi001.de040.corpintra.net${NC}" + echo -e "${WHITE}- Lokal: https://localhost${NC}" + echo "" + echo -e "${BLUE}🔗 Backend-Verbindung:${NC}" + echo -e "${WHITE}- API: https://raspberrypi/api${NC}" + echo -e "${WHITE}- Backend Web Interface: https://raspberrypi${NC}" + echo "" + echo -e "${BLUE}🛠️ Management:${NC}" + echo -e "${WHITE}- Container stoppen: docker-compose down${NC}" + echo -e "${WHITE}- Logs anzeigen: docker-compose logs -f${NC}" + echo -e "${WHITE}- Container neustarten: docker-compose restart${NC}" + + cd "$PROJECT_DIR" + echo "" + read -p "Drücken Sie ENTER, um fortzufahren..." } # Frontend-Konfiguration erstellen @@ -2193,71 +2133,406 @@ show_installation_menu() { # Hauptmenü anzeigen show_main_menu() { - show_header "Hauptmenü" - - echo -e "${WHITE}🚀 SCHNELLSTART:${NC}" - echo -e "${WHITE}1. Vollständige Installation (Alle Komponenten)${NC}" - echo -e "${WHITE}2. Backend-Only Installation (mit Kiosk Web Interface)${NC}" - echo -e "${WHITE}3. Entwicklungs-Setup (Backend + Frontend)${NC}" - echo "" - echo -e "${WHITE}🎯 PRODUKTIONS-INSTALLER (v3.2):${NC}" - echo -e "${WHITE}4. Produktions-Installer (install.sh Integration)${NC}" - echo "" - echo -e "${WHITE}⚙️ GRANULARE INSTALLATION:${NC}" - echo -e "${WHITE}5. Granulare Installation & Konfiguration${NC}" - echo "" - echo -e "${WHITE}🔧 SYSTEM & WARTUNG:${NC}" - echo -e "${WHITE}6. Systemvoraussetzungen prüfen${NC}" - echo -e "${WHITE}7. Anwendung starten${NC}" - echo -e "${WHITE}8. Projekt-Informationen${NC}" - echo "" - echo -e "${WHITE}0. Beenden${NC}" - echo "" - - read -p "Wählen Sie eine Option (0-8): " choice - - case $choice in - 1) - install_everything - show_main_menu - ;; - 2) - install_production_setup - show_main_menu - ;; - 3) - install_development_setup - show_main_menu - ;; - 4) - show_production_installer_menu - ;; - 5) - show_installation_menu - ;; - 6) - test_dependencies - show_main_menu - ;; - 7) - start_application - show_main_menu - ;; - 8) - show_project_info - show_main_menu - ;; - 0) - echo -e "${GREEN}Auf Wiedersehen!${NC}" - exit 0 - ;; - *) - echo -e "${RED}Ungültige Option. Bitte versuchen Sie es erneut.${NC}" - sleep 2 - show_main_menu - ;; - esac + show_header "🎯 MYP Control Center - Hauptmenü" + + echo -e "${WHITE}🚀 Schnell-Installation:${NC}" + echo -e "${WHITE}1. 🖥️ Server-spezifische Installation (Empfohlen)${NC}" + echo -e "${WHITE}2. 🔧 Vollständige Installation (Backend + Frontend)${NC}" + echo -e "${WHITE}3. 🥧 Backend-Only Installation (mit Kiosk Web Interface)${NC}" + echo -e "${WHITE}4. 🌐 Frontend-Only Installation${NC}" + echo "" + echo -e "${WHITE}⚙️ Granulare Installation:${NC}" + echo -e "${WHITE}5. Backend installieren (Flask API + Web Interface)${NC}" + echo -e "${WHITE}6. Frontend installieren (Next.js)${NC}" + echo -e "${WHITE}7. Kiosk-Modus installieren (Backend Web Interface + Browser)${NC}" + echo -e "${WHITE}8. Produktions-Setup (Backend + Kiosk Web Interface)${NC}" + echo "" + echo -e "${WHITE}🛠️ Entwicklung & Wartung:${NC}" + echo -e "${WHITE}9. Entwicklungs-Setup${NC}" + echo -e "${WHITE}10. System-Abhängigkeiten installieren${NC}" + echo -e "${WHITE}11. SSL-Zertifikate generieren${NC}" + echo -e "${WHITE}12. Logs anzeigen${NC}" + echo -e "${WHITE}13. Services verwalten${NC}" + echo "" + echo -e "${WHITE}0. Beenden${NC}" + echo "" + + read -p "Wählen Sie eine Option (0-13): " choice + + case $choice in + 1) + show_server_specific_menu + ;; + 2) + install_full_setup + ;; + 3) + install_backend_only + ;; + 4) + install_frontend_only + ;; + 5) + install_backend + ;; + 6) + install_frontend + ;; + 7) + install_kiosk_mode + ;; + 8) + install_production_setup + ;; + 9) + install_development_setup + ;; + 10) + install_system_dependencies + ;; + 11) + generate_ssl_certificates + ;; + 12) + show_logs + ;; + 13) + manage_services + ;; + 0) + echo -e "${GREEN}Auf Wiedersehen!${NC}" + exit 0 + ;; + *) + echo -e "${RED}Ungültige Option${NC}" + sleep 2 + show_main_menu + ;; + esac } +# ======================================================== +# SERVER-DETECTION & ZWEI-SERVER-SETUP +# ======================================================== + +# Server-Typ erkennen +detect_server_type() { + local hostname=$(hostname) + local hostname_fqdn=$(hostname -f 2>/dev/null || echo "$hostname") + + echo -e "${BLUE}Erkenne Server-Typ...${NC}" + echo -e "${WHITE}Hostname: $hostname${NC}" + echo -e "${WHITE}FQDN: $hostname_fqdn${NC}" + + # Frontend-Server erkennen + if [[ "$hostname" == *"m040tbaraspi001"* ]] || [[ "$hostname_fqdn" == *"m040tbaraspi001"* ]]; then + echo "frontend" + return + fi + + # Backend-Server (Raspberry Pi) erkennen + if [[ "$hostname" == *"raspberrypi"* ]] || [[ "$hostname_fqdn" == *"raspberrypi"* ]]; then + echo "backend" + return + fi + + # Unbekannter Server - Benutzer fragen + echo "unknown" +} + +# Server-spezifische Installation +show_server_specific_menu() { + local server_type=$(detect_server_type) + + show_header "🖥️ Server-spezifische Installation" + + case $server_type in + "frontend") + echo -e "${GREEN}✅ Frontend-Server erkannt: $(hostname)${NC}" + echo -e "${BLUE}Dieser Server ist für das MYP Frontend konfiguriert.${NC}" + echo "" + echo -e "${WHITE}🎯 Verfügbare Installationen:${NC}" + echo -e "${WHITE}1. Frontend installieren (Next.js + Docker)${NC}" + echo -e "${WHITE}2. Frontend Produktions-Deployment (Port 443 mit SSL)${NC}" + echo -e "${WHITE}3. Nur Docker & Dependencies installieren${NC}" + echo "" + echo -e "${WHITE}9. Zurück zum Hauptmenü${NC}" + echo -e "${WHITE}0. Beenden${NC}" + echo "" + + read -p "Wählen Sie eine Option (0-3, 9): " choice + + case $choice in + 1) + install_frontend_only + ;; + 2) + deploy_frontend_production + ;; + 3) + install_system_dependencies + ;; + 9) + show_main_menu + ;; + 0) + echo -e "${GREEN}Auf Wiedersehen!${NC}" + exit 0 + ;; + *) + echo -e "${RED}Ungültige Option${NC}" + sleep 2 + show_server_specific_menu + ;; + esac + ;; + + "backend") + echo -e "${GREEN}✅ Backend-Server erkannt: $(hostname)${NC}" + echo -e "${BLUE}Dieser Server ist für das MYP Backend + Kiosk konfiguriert.${NC}" + echo "" + echo -e "${WHITE}🎯 Verfügbare Installationen:${NC}" + echo -e "${WHITE}1. Backend installieren (Flask API + Web Interface)${NC}" + echo -e "${WHITE}2. Kiosk-Modus installieren (Touch-Interface)${NC}" + echo -e "${WHITE}3. Produktions-Setup (Backend + Kiosk + Services)${NC}" + echo -e "${WHITE}4. Nur Python & Dependencies installieren${NC}" + echo "" + echo -e "${WHITE}9. Zurück zum Hauptmenü${NC}" + echo -e "${WHITE}0. Beenden${NC}" + echo "" + + read -p "Wählen Sie eine Option (0-4, 9): " choice + + case $choice in + 1) + install_backend_only + ;; + 2) + install_kiosk_mode + ;; + 3) + install_production_backend_with_kiosk + ;; + 4) + install_system_dependencies + setup_python_node_environment + ;; + 9) + show_main_menu + ;; + 0) + echo -e "${GREEN}Auf Wiedersehen!${NC}" + exit 0 + ;; + *) + echo -e "${RED}Ungültige Option${NC}" + sleep 2 + show_server_specific_menu + ;; + esac + ;; + + "unknown") + echo -e "${YELLOW}⚠ Unbekannter Server-Typ: $(hostname)${NC}" + echo "" + echo -e "${WHITE}Bitte wählen Sie den Server-Typ:${NC}" + echo -e "${WHITE}1. 🖥️ Frontend-Server (m040tbaraspi001)${NC}" + echo -e "${WHITE}2. 🥧 Backend-Server (Raspberry Pi)${NC}" + echo -e "${WHITE}3. 💻 Entwicklungs-Server (Beide Komponenten)${NC}" + echo "" + echo -e "${WHITE}9. Zurück zum Hauptmenü${NC}" + echo "" + + read -p "Wählen Sie den Server-Typ (1-3, 9): " choice + + case $choice in + 1) + echo -e "${BLUE}Frontend-Server-Modus aktiviert${NC}" + export MYP_SERVER_TYPE="frontend" + install_frontend_only + ;; + 2) + echo -e "${BLUE}Backend-Server-Modus aktiviert${NC}" + export MYP_SERVER_TYPE="backend" + install_backend_only + ;; + 3) + echo -e "${BLUE}Entwicklungs-Modus aktiviert${NC}" + export MYP_SERVER_TYPE="development" + install_development_setup + ;; + 9) + show_main_menu + ;; + *) + echo -e "${RED}Ungültige Option${NC}" + sleep 2 + show_server_specific_menu + ;; + esac + ;; + esac +} + +# Frontend-Only Installation (für m040tbaraspi001) +install_frontend_only() { + show_header "Frontend-Only Installation (m040tbaraspi001)" + + echo -e "${BLUE}Installiere Frontend für separaten Server...${NC}" + echo -e "${YELLOW}Backend-Verbindung: https://raspberrypi (separater Server)${NC}" + echo "" + + # Node.js prüfen + if ! check_command node; then + echo -e "${RED}✗ Node.js nicht gefunden. Bitte installieren Sie Node.js 16+${NC}" + read -p "Drücken Sie ENTER, um fortzufahren..." + return 1 + fi + + # Docker für Produktion prüfen + if ! check_command docker; then + echo -e "${YELLOW}⚠ Docker nicht gefunden. Für Produktions-Deployment wird Docker benötigt.${NC}" + fi + + cd "$FRONTEND_DIR" + + # Frontend-Dependencies installieren + echo -e "${BLUE}1. Frontend-Abhängigkeiten installieren...${NC}" + exec_command "npm install" "Frontend-Abhängigkeiten installieren" + + # SSL-Verzeichnis erstellen + echo -e "${BLUE}2. SSL-Verzeichnis erstellen...${NC}" + mkdir -p certs + + # Frontend-Konfiguration für Zwei-Server-Setup + echo -e "${BLUE}3. Frontend-Konfiguration für Zwei-Server-Setup...${NC}" + setup_frontend_config_two_server + + echo "" + echo -e "${GREEN}✓ Frontend-Only Installation abgeschlossen!${NC}" + echo "" + echo -e "${BLUE}🌐 Frontend-Server (m040tbaraspi001):${NC}" + echo -e "${WHITE}- Development: cd $FRONTEND_DIR && npm run dev${NC}" + echo -e "${WHITE}- Production: cd $FRONTEND_DIR && docker-compose up -d${NC}" + echo -e "${WHITE}- URL: https://m040tbaraspi001.de040.corpintra.net${NC}" + echo "" + echo -e "${BLUE}🔗 Backend-Verbindung:${NC}" + echo -e "${WHITE}- API: https://raspberrypi/api${NC}" + echo -e "${WHITE}- Backend muss separat auf Raspberry Pi installiert werden${NC}" + + cd "$PROJECT_DIR" + echo "" + read -p "Drücken Sie ENTER, um fortzufahren..." +} + +# Backend-Only Installation (für Raspberry Pi) +install_backend_only() { + show_header "Backend-Only Installation (Raspberry Pi)" + + echo -e "${BLUE}Installiere Backend für separaten Server...${NC}" + echo -e "${YELLOW}Frontend läuft auf: https://m040tbaraspi001.de040.corpintra.net${NC}" + echo "" + + # Backend-Installation ausführen + install_backend + + echo "" + echo -e "${GREEN}✓ Backend-Only Installation abgeschlossen!${NC}" + echo "" + echo -e "${BLUE}🥧 Backend-Server (Raspberry Pi):${NC}" + echo -e "${WHITE}- API: https://raspberrypi/api${NC}" + echo -e "${WHITE}- Web Interface: https://raspberrypi${NC}" + echo -e "${WHITE}- Kiosk-Modus verfügbar${NC}" + echo "" + echo -e "${BLUE}🔗 Frontend-Verbindung:${NC}" + echo -e "${WHITE}- Frontend: https://m040tbaraspi001.de040.corpintra.net${NC}" + echo -e "${WHITE}- Frontend muss separat auf m040tbaraspi001 installiert werden${NC}" + + echo "" + read -p "Drücken Sie ENTER, um fortzufahren..." +} + +# Frontend-Konfiguration für Zwei-Server-Setup +setup_frontend_config_two_server() { + echo -e "${BLUE}Konfiguriere Frontend für Zwei-Server-Setup...${NC}" + + # .env.local für Frontend-Server erstellen + cat > "$FRONTEND_DIR/.env.local" << EOF +# Zwei-Server-Setup Konfiguration +# Frontend-Server: m040tbaraspi001.de040.corpintra.net +# Backend-Server: raspberrypi + +# Backend API (Raspberry Pi) +NEXT_PUBLIC_API_URL=https://raspberrypi +NEXT_PUBLIC_BACKEND_HOST=raspberrypi +NEXT_PUBLIC_BACKEND_PROTOCOL=https + +# Frontend (aktueller Server) +NEXT_PUBLIC_FRONTEND_URL=https://m040tbaraspi001.de040.corpintra.net +NEXTAUTH_URL=https://m040tbaraspi001.de040.corpintra.net + +# OAuth Konfiguration +NEXT_PUBLIC_OAUTH_CALLBACK_URL=https://m040tbaraspi001.de040.corpintra.net/auth/login/callback + +# GitHub OAuth (hardcodiert) +GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc +GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd + +# Produktionsumgebung +NODE_ENV=production +DEBUG=false + +# Zwei-Server-Setup +MYP_SERVER_TYPE=frontend +MYP_BACKEND_SERVER=raspberrypi +MYP_FRONTEND_SERVER=m040tbaraspi001.de040.corpintra.net +EOF + + echo -e "${GREEN}✓ Frontend-Konfiguration für Zwei-Server-Setup erstellt${NC}" + echo -e "${BLUE}Backend-Verbindung: https://raspberrypi${NC}" + echo -e "${BLUE}Frontend-URL: https://m040tbaraspi001.de040.corpintra.net${NC}" +} + +# Produktions-Backend mit Kiosk +install_production_backend_with_kiosk() { + show_header "Produktions-Backend mit Kiosk (Raspberry Pi)" + + echo -e "${BLUE}Installiere komplettes Backend-System mit Kiosk...${NC}" + echo "" + + # System-Abhängigkeiten installieren + if [ $is_root -eq 1 ]; then + install_system_dependencies + else + echo -e "${YELLOW}System-Abhängigkeiten übersprungen (keine Root-Rechte)${NC}" + fi + + # Backend installieren + install_backend + + # Kiosk-Modus installieren + install_kiosk_mode + + echo "" + echo -e "${GREEN}✓ Produktions-Backend mit Kiosk abgeschlossen!${NC}" + echo "" + echo -e "${BLUE}🥧 Raspberry Pi (Backend + Kiosk):${NC}" + echo -e "${WHITE}- API: https://raspberrypi/api${NC}" + echo -e "${WHITE}- Web Interface: https://raspberrypi${NC}" + echo -e "${WHITE}- Kiosk-Modus: Vollbild-Touch-Interface${NC}" + echo -e "${WHITE}- Services: myp.service + myp-kiosk-browser.service${NC}" + echo "" + echo -e "${BLUE}🖥️ Frontend-Server:${NC}" + echo -e "${WHITE}- Frontend muss separat auf m040tbaraspi001 installiert werden${NC}" + echo -e "${WHITE}- URL: https://m040tbaraspi001.de040.corpintra.net${NC}" + + echo "" + read -p "Drücken Sie ENTER, um fortzufahren..." +} + +# ======================================================== +# ENDE SERVER-DETECTION +# ======================================================== + # Skript starten show_main_menu \ No newline at end of file