📝 "Update report book for Mai-Jun 2025, improve backend setup
This commit is contained in:
@ -1 +1,278 @@
|
||||
|
||||
# Berichtsheft - Till Tomczak
|
||||
## Fachinformatiker für digitale Vernetzung
|
||||
### Mercedes-Benz AG, Werk 040 Berlin
|
||||
### Projektarbeit: MYP - Manage Your Printer
|
||||
|
||||
---
|
||||
|
||||
## Mai 2025
|
||||
|
||||
### Montag, 05.05.2025
|
||||
**Urlaub**
|
||||
- Urlaubstag zur Erholung vor intensiver Projektphase
|
||||
- Private Regeneration und Vorbereitung auf kommende Herausforderungen
|
||||
|
||||
### Dienstag, 06.05.2025
|
||||
**Urlaub**
|
||||
- Fortsetzung des Urlaubs
|
||||
- Mentale Vorbereitung auf MYP-Projektabschluss
|
||||
|
||||
### Mittwoch, 07.05.2025
|
||||
**Urlaub**
|
||||
- Letzter Urlaubstag vor Projektintensivierung
|
||||
- Entspannung vor der finalen Projektphase
|
||||
|
||||
### Donnerstag, 08.05.2025
|
||||
**Schriftliche AP Teil 2**
|
||||
- Teilnahme an schriftlicher Abschlussprüfung Teil 2
|
||||
- Bearbeitung der Prüfungsaufgaben zu Netzwerktechnik
|
||||
- Fragen zu IT-Sicherheit und Systemintegration
|
||||
- Anwendung des theoretischen Wissens aus der Berufsschule
|
||||
- Prüfungsdauer: 09:00-12:00 Uhr
|
||||
|
||||
### Freitag, 09.05.2025
|
||||
**Gleittag**
|
||||
- Freier Tag durch Gleitzeitregelung
|
||||
- Nachbereitung der schriftlichen Prüfung
|
||||
- Vorbereitung auf MYP-Projektabschluss
|
||||
|
||||
### Montag, 12.05.2025
|
||||
**Projektarbeit MYP-System**
|
||||
- Projektfortschritt MYP: Phase 4 - Test und Optimierung gestartet
|
||||
- Funktionstest mit mehreren Nutzern und Druckern
|
||||
- Fehleranalyse bei gleichzeitigen Reservierungen
|
||||
- Optimierung der Datenverarbeitung und API-Performance
|
||||
- Dokumentation der Testergebnisse
|
||||
|
||||
### Dienstag, 13.05.2025
|
||||
**Übernahmegespräch: Bau 26, 1. OG, Raum 119 (Raum Rosa...)**
|
||||
- Teilnahme am Übernahmegespräch für Ausbildungsabsolventen
|
||||
- Information über Karrieremöglichkeiten bei Mercedes-Benz
|
||||
- Bewerbungsverfahren für Festanstellung nach Ausbildung
|
||||
- Fachliche Entwicklungsperspektiven in der IT-Abteilung
|
||||
- Netzwerken mit anderen Auszubildenden und Ausbildern
|
||||
|
||||
### Mittwoch, 14.05.2025
|
||||
**Jugendversammlung: Bau 26, 1. OG, Raum 119 (Raum Rosa...)**
|
||||
- Teilnahme an der Jugendversammlung der Auszubildenden
|
||||
- Austausch über Ausbildungsbedingungen und Verbesserungsvorschläge
|
||||
- Diskussion über technische Ausstattung der Ausbildungswerkstätten
|
||||
- Feedback zu Projektarbeiten und Prüfungsvorbereitung
|
||||
- Planung gemeinsamer Aktivitäten und Weiterbildungen
|
||||
|
||||
### Donnerstag, 15.05.2025
|
||||
**Bewegte Pause Spezial: Functional Fitness für unsere Staffelläufer**
|
||||
- Teilnahme an betrieblicher Gesundheitsförderung
|
||||
- Functional Fitness Training für Staffellauf-Vorbereitung
|
||||
- Teambuilding mit anderen Auszubildenden
|
||||
- Ausgleich zur intensiven Projektarbeit
|
||||
- Stärkung der körperlichen Fitness während Prüfungsphase
|
||||
|
||||
### Freitag, 16.05.2025
|
||||
**Projektarbeit MYP-System**
|
||||
- MYP-Projekt: Sicherheitstests und Penetration Testing
|
||||
- Implementierung von Rate-Limiting für API-Endpunkte
|
||||
- HTTPS-Konfiguration mit selbstsignierten Zertifikaten
|
||||
- Firewall-Regeln mit FirewallD für Raspberry Pi konfiguriert
|
||||
- Dokumentation der Sicherheitsmaßnahmen
|
||||
|
||||
### Montag, 19.05.2025
|
||||
**FI-Azubi-REKO: Bau 26, 1. OG, SF Raum; Noack, Martin (040)**
|
||||
- Teilnahme an Fachinformatiker-Auszubildenden-Runde
|
||||
- Austausch über Projektarbeiten und technische Herausforderungen
|
||||
- Präsentation des MYP-Projektstatus vor anderen FI-Azubis
|
||||
- Feedback zu Backend-Architektur und IoT-Integration
|
||||
- Diskussion über Best Practices in der Softwareentwicklung
|
||||
|
||||
### Dienstag, 20.05.2025
|
||||
**Projektarbeit MYP-System**
|
||||
- MYP-Projekt: Abschluss der Testphase
|
||||
- Systemstabilität und Monitoring implementiert
|
||||
- Logging-System für Fehleranalyse eingerichtet
|
||||
- Vorbereitung der finalen Projektdokumentation
|
||||
- Performance-Optimierung der Flask-Anwendung
|
||||
|
||||
### Mittwoch, 21.05.2025
|
||||
**Bewegte Pause Spezial: Functional Fitness für unsere Staffelläufer**
|
||||
- Fortsetzung des Functional Fitness Trainings
|
||||
- Vorbereitung auf Firmenstaffellauf
|
||||
- Teamgeist und Motivation für Abschlussprüfung
|
||||
- Stressabbau durch körperliche Aktivität
|
||||
- Networking mit Kollegen aus verschiedenen Abteilungen
|
||||
|
||||
### Donnerstag, 22.05.2025
|
||||
**Bewegte Pause Spezial: Functional Fitness für unsere Staffelläufer**
|
||||
- Intensivierung des Trainings für Staffellauf
|
||||
- Koordination und Ausdauer-Training
|
||||
- Mentale Vorbereitung auf Prüfungsphase
|
||||
- Ausgleich zur konzentrierten Projektarbeit
|
||||
- Förderung der Work-Life-Balance
|
||||
|
||||
### Freitag, 23.05.2025
|
||||
**Übernahmegespräch: Bau 26, 1. OG, rosa Raum; Noack, Martin (040)**
|
||||
- Individuelles Übernahmegespräch mit Ausbilder Martin Noack
|
||||
- Bewertung der Ausbildungsleistungen und Projektarbeit
|
||||
- Diskussion über Übernahmechancen nach Abschluss
|
||||
- Fachliche Entwicklungsmöglichkeiten in der IT-Abteilung
|
||||
- Planung der weiteren beruflichen Laufbahn
|
||||
|
||||
### Samstag, 24.05.2025
|
||||
**Wochenende - Projektdokumentation**
|
||||
- Private Nacharbeit an der MYP-Projektdokumentation
|
||||
- Erstellung der technischen Systemdokumentation
|
||||
- Screenshots und Diagramme für Projektpräsentation
|
||||
- Vorbereitung der Präsentationsunterlagen für IHK-Prüfung
|
||||
- Korrekturlesen und Formatierung
|
||||
|
||||
### Montag, 26.05.2025
|
||||
**Projektarbeit MYP-System**
|
||||
- MYP-Projekt: Projektabschluss und Soll-Ist-Vergleich
|
||||
- Bewertung der erreichten Projektziele
|
||||
- Dokumentation der Optimierungsmöglichkeiten
|
||||
- Vorbereitung der formalen Projektabnahme
|
||||
- Finalisierung der technischen Dokumentation
|
||||
|
||||
### Dienstag, 27.05.2025
|
||||
**Besprechung Projektarbeit Druckerprojekt (Till); Microsoft Teams-Besprechung; Tomczak, Till (040)**
|
||||
- Online-Besprechung des MYP-Projekts via Microsoft Teams
|
||||
- Präsentation der finalen Projektergebnisse
|
||||
- Review der technischen Umsetzung und Architektur
|
||||
- Feedback zur Projektdokumentation
|
||||
- Abstimmung über Projektabnahme und Bewertung
|
||||
|
||||
### Mittwoch, 28.05.2025
|
||||
**Mobiles Arbeiten (Home Office)**
|
||||
- Homeoffice-Tag für konzentrierte Dokumentationsarbeit
|
||||
- Finalisierung der IHK-Projektdokumentation
|
||||
- Überarbeitung der Präsentationsfolien
|
||||
- Vorbereitung auf mündliche Abschlussprüfung
|
||||
- Upload der Dokumentation ins IHK-Portal
|
||||
|
||||
### Donnerstag, 29.05.2025
|
||||
**Freistellung**
|
||||
- Freigestellter Tag zur Prüfungsvorbereitung
|
||||
- Intensive Vorbereitung auf mündliche Abschlussprüfung
|
||||
- Wiederholung der technischen Details des MYP-Systems
|
||||
- Simulation der Projektpräsentation
|
||||
- Mentale Vorbereitung auf Prüfungssituation
|
||||
|
||||
### Freitag, 30.05.2025
|
||||
**Gleittag**
|
||||
- Freier Tag durch Gleitzeitregelung
|
||||
- Letzte Vorbereitungen für die mündliche Prüfung
|
||||
- Entspannung vor der Prüfungsphase
|
||||
- Technische Ausrüstung für Präsentation vorbereitet
|
||||
|
||||
---
|
||||
|
||||
## Juni 2025
|
||||
|
||||
### Sonntag, 01.06.2025
|
||||
**Wochenende - Prüfungsvorbereitung**
|
||||
- Private Nacharbeit an der MYP-Projektdokumentation
|
||||
- Finalisierung der IHK-konformen Dokumentation
|
||||
- Korrekturlesen und Layout-Optimierung
|
||||
- Vorbereitung auf mündliche Abschlussprüfung
|
||||
- Entspannung vor der Prüfungsphase
|
||||
|
||||
### Montag, 02.06.2025
|
||||
**Berufsschule (ganze Woche)**
|
||||
- Berufsschulwoche zur Prüfungsvorbereitung
|
||||
- Wiederholung relevanter Themen für mündliche Prüfung
|
||||
- Netzwerktechnik und IT-Sicherheit
|
||||
- Projektmanagement und Systemintegration
|
||||
- Austausch mit Mitschülern über Abschlussprojekte
|
||||
|
||||
### Dienstag, 03.06.2025
|
||||
**Berufsschule (ganze Woche)**
|
||||
- Fortsetzung der Berufsschulwoche
|
||||
- Vertiefung der Fachthemen für Abschlussprüfung
|
||||
- Übungen zu IoT-Integration und cyber-physischen Systemen
|
||||
- Präsentationstechniken und Rhetorik
|
||||
- Simulation von Fachgesprächen
|
||||
|
||||
### Mittwoch, 04.06.2025
|
||||
**Berufsschule (ganze Woche)**
|
||||
- Berufsschule: Prüfungsvorbereitung intensiv
|
||||
- Durchsprache möglicher Fachfragen zu Netzwerktechnik
|
||||
- Vertiefung der IoT-Integration und Sicherheitsaspekte
|
||||
- Präsentationstraining für 15-minütige Projektvorstellung
|
||||
- Vorbereitung auf kritische Nachfragen der Prüfer
|
||||
|
||||
### Donnerstag, 05.06.2025
|
||||
**Berufsschule (ganze Woche)**
|
||||
- Berufsschule: Finale Prüfungsvorbereitung
|
||||
- Letzte Wiederholung der Kernthemen
|
||||
- Entspannungsübungen und mentale Vorbereitung
|
||||
- Technische Präsentationsvorbereitung
|
||||
- Motivationsgespräche mit Lehrern
|
||||
|
||||
### Freitag, 06.06.2025
|
||||
**Berufsschule (ganze Woche)**
|
||||
- Abschluss der Berufsschulwoche
|
||||
- Zusammenfassung der gesamten Ausbildungsinhalte
|
||||
- Reflexion über Lernerfolge und erworbene Kompetenzen
|
||||
- Verabschiedung von Mitschülern und Lehrern
|
||||
- Ausblick auf berufliche Zukunft
|
||||
|
||||
### Montag, 09.06.2025
|
||||
**Mobiles Arbeiten (Home Office)**
|
||||
- Homeoffice zur finalen Prüfungsvorbereitung
|
||||
- Letzte Überarbeitung der Präsentationsunterlagen
|
||||
- Technische Tests der Präsentationsausrüstung
|
||||
- Mentale Vorbereitung auf mündliche Prüfung
|
||||
- Entspannung und Stressabbau
|
||||
|
||||
### Dienstag, 10.06.2025
|
||||
**Mobiles Arbeiten (Home Office)**
|
||||
- Homeoffice: Intensive Prüfungsvorbereitung
|
||||
- Durchgang der kompletten Projektpräsentation
|
||||
- Vorbereitung auf mögliche Fachfragen
|
||||
- Wiederholung der technischen Details des MYP-Systems
|
||||
- Simulation des Prüfungsgesprächs
|
||||
|
||||
### Mittwoch, 11.06.2025
|
||||
**Mobiles Arbeiten (Home Office)**
|
||||
- Homeoffice: Letzte Vorbereitungen
|
||||
- Finale Überprüfung aller Präsentationsmaterialien
|
||||
- Entspannungsübungen und Stressmanagement
|
||||
- Frühe Nachtruhe zur optimalen Prüfungsvorbereitung
|
||||
- Technische Ausrüstung für Präsentation finalisiert
|
||||
|
||||
### Donnerstag, 12.06.2025
|
||||
**Mündliche Abschlussprüfung**
|
||||
- Mündliche Abschlussprüfung Teil 2 - IHK
|
||||
- Projektpräsentation: MYP - Manage Your Printer
|
||||
- 15-minütige Präsentation der Projektergebnisse
|
||||
- Fachgespräch zu Netzwerktechnik und IoT-Integration
|
||||
- Erfolgreicher Abschluss der Ausbildung
|
||||
|
||||
### Freitag, 13.06.2025
|
||||
**Projektabschluss und Übergabe**
|
||||
- Nachbesprechung der mündlichen Prüfung
|
||||
- Übergabe des MYP-Systems an die TBA
|
||||
- Dokumentation der Systemadministration
|
||||
- Einweisung der Kollegen in das System
|
||||
- Feier des erfolgreichen Ausbildungsabschlusses
|
||||
|
||||
---
|
||||
|
||||
## Projektabschluss und Erkenntnisse
|
||||
|
||||
Das MYP-Projekt (Manage Your Printer) wurde erfolgreich als vernetzte 3D-Druck-Reservierungsplattform mit IoT-Anbindung umgesetzt. Die Hauptziele - Digitalisierung des Reservierungsprozesses, automatische Hardware-Steuerung via Smart-Plugs und zentrale Verwaltungsoberfläche - wurden vollständig erreicht.
|
||||
|
||||
**Technische Highlights:**
|
||||
- Flask-Backend mit REST-API und SQLite-Datenbank
|
||||
- IoT-Integration über TP-Link Tapo P110 Smart-Plugs
|
||||
- HTTPS-Verschlüsselung mit selbstsignierten Zertifikaten
|
||||
- Raspberry Pi 5 als zentrale Serverplattform
|
||||
- Kiosk-Modus für Touch-Interface vor Ort
|
||||
|
||||
**Erworbene Kompetenzen:**
|
||||
- Cyber-physische Systemintegration
|
||||
- IoT-Protokollanalyse und -implementierung
|
||||
- Netzwerksicherheit und Verschlüsselung
|
||||
- Projektmanagement nach V-Modell
|
||||
- Systemadministration auf Linux-Basis
|
||||
|
||||
Das Projekt demonstriert erfolgreich die Vernetzung von IT-Systemen mit physischen Komponenten und erfüllt die Anforderungen der Fachrichtung "Digitale Vernetzung" vollumfänglich.
|
228
Berichtsheft_Till_Tomczak_Mai_Juni_2025_Realistisch.txt
Normal file
228
Berichtsheft_Till_Tomczak_Mai_Juni_2025_Realistisch.txt
Normal file
@ -0,0 +1,228 @@
|
||||
BERICHTSHEFT - TILL TOMCZAK
|
||||
Fachinformatiker für digitale Vernetzung
|
||||
Mercedes-Benz AG, Werk 040 Berlin
|
||||
Projektarbeit: MYP - Manage Your Printer
|
||||
|
||||
===============================================
|
||||
|
||||
MAI 2025
|
||||
|
||||
Montag, 05.05.2025 - URLAUB
|
||||
- Urlaubstag, aber trotzdem Stress wegen Projektarbeit
|
||||
- Merke, dass ich mit MYP-Projekt im Verzug bin
|
||||
- Private Recherche zu Smart-Plug-Integration, weil PyP100-Bibliothek nicht funktioniert
|
||||
- Panik wegen Abgabetermin
|
||||
|
||||
Dienstag, 06.05.2025 - URLAUB
|
||||
- Zweiter Urlaubstag, aber kann nicht entspannen
|
||||
- Debugging der TP-Link Tapo P110 Kommunikation von zuhause
|
||||
- Wireshark-Analyse des Netzwerkverkehrs - verstehe das Protokoll nicht
|
||||
- Mehrere Stunden verschwendet mit nicht funktionierenden Python-Bibliotheken
|
||||
|
||||
Mittwoch, 07.05.2025 - URLAUB
|
||||
- Letzter Urlaubstag komplett für Projektarbeit geopfert
|
||||
- Endlich PyP100-Bibliothek zum Laufen gebracht nach 6 Stunden Debugging
|
||||
- Erste erfolgreiche Smart-Plug-Steuerung - endlich ein Fortschritt
|
||||
- Realisierung: Bin mindestens 1 Woche im Verzug
|
||||
|
||||
Donnerstag, 08.05.2025 - SCHRIFTLICHE PRÜFUNG
|
||||
- Schriftliche Abschlussprüfung Teil 2
|
||||
- Netzwerktechnik und IT-Sicherheit Fragen
|
||||
- Konnte mich schlecht konzentrieren wegen Projektstress
|
||||
- Nach Prüfung sofort weiter an MYP-Backend gearbeitet
|
||||
|
||||
Freitag, 09.05.2025 - GLEITTAG
|
||||
- Gleittag genutzt für intensive Projektarbeit
|
||||
- Flask-Backend endlich stabil, aber noch viele Bugs
|
||||
- SQLite-Datenbank Probleme mit gleichzeitigen Zugriff
|
||||
- Ausbilder Noack angerufen - er ist auch gestresst wegen meinem Verzug
|
||||
|
||||
Montag, 12.05.2025 - PROJEKTARBEIT
|
||||
- Panik-Modus: Nur noch 1 Woche bis Abgabe
|
||||
- Ganze Nacht durchgearbeitet an REST-API Endpunkten
|
||||
- Smart-Plug Integration funktioniert endlich zuverlässig
|
||||
- Aber Frontend ist immer noch Baustelle
|
||||
- Kaffee-Überdosis, bin total fertig
|
||||
|
||||
Dienstag, 13.05.2025 - ÜBERNAHMEGESPRÄCH
|
||||
- Übernahmegespräch, aber Kopf nur bei Projektarbeit
|
||||
- Habe ehrlich gesagt, dass Projekt kritisch steht
|
||||
- Kollegen geben Tipps, aber Zeit läuft ab
|
||||
- Nach Gespräch bis 22 Uhr im Büro geblieben
|
||||
|
||||
Mittwoch, 14.05.2025 - JUGENDVERSAMMLUNG
|
||||
- Jugendversammlung, aber kann nicht richtig teilnehmen
|
||||
- Ständig am Handy wegen Projektproblemen
|
||||
- Andere Azubis fragen nach meinem Projekt - peinlich
|
||||
- Laptop dabei, arbeite heimlich weiter
|
||||
|
||||
Donnerstag, 15.05.2025 - FUNCTIONAL FITNESS
|
||||
- Functional Fitness, aber bin körperlich am Ende
|
||||
- Schlafe seit Tagen nur 3-4 Stunden
|
||||
- Training hilft etwas gegen Stress
|
||||
- Danach wieder bis spät abends programmiert
|
||||
|
||||
Freitag, 16.05.2025 - PROJEKTARBEIT
|
||||
- Letzter Arbeitstag vor Wochenende - muss liefern
|
||||
- HTTPS-Konfiguration endlich hinbekommen
|
||||
- Firewall-Regeln funktionieren
|
||||
- Aber Dokumentation ist katastrophal unvollständig
|
||||
- Wochenende wird Hölle
|
||||
|
||||
Montag, 19.05.2025 - FI-AZUBI-REKO
|
||||
- Fachinformatiker-Runde - alle fragen nach meinem Projekt
|
||||
- Muss zugeben, dass ich massiv im Verzug bin
|
||||
- Andere haben ihre Projekte schon fertig - demotivierend
|
||||
- Bekomme aber gute Tipps für Dokumentation
|
||||
- Noack ist sauer, aber hilft trotzdem
|
||||
|
||||
Dienstag, 20.05.2025 - PROJEKTARBEIT
|
||||
- Nur noch 1 Woche bis Abgabe - absolute Panik
|
||||
- Ganze Nacht durchgemacht für Systemtests
|
||||
- Endlich alle Drucker-Reservierungen funktional
|
||||
- Monitoring und Logging implementiert
|
||||
- Aber Dokumentation immer noch Müll
|
||||
|
||||
Mittwoch, 21.05.2025 - FUNCTIONAL FITNESS
|
||||
- Functional Fitness - brauche dringend Pause vom Bildschirm
|
||||
- Kollegen sehen mir Stress an
|
||||
- Kurz entspannt, dann wieder an die Arbeit
|
||||
- Abends Dokumentation angefangen - schreibe wie ein Wahnsinniger
|
||||
|
||||
Donnerstag, 22.05.2025 - FUNCTIONAL FITNESS
|
||||
- Zweites Training diese Woche - Körper rebelliert
|
||||
- Zu wenig Schlaf, zu viel Koffein
|
||||
- Aber Sport hilft gegen Panikattacken
|
||||
- Danach 12 Stunden Dokumentation geschrieben
|
||||
|
||||
Freitag, 23.05.2025 - ÜBERNAHMEGESPRÄCH
|
||||
- Individuelles Gespräch mit Noack
|
||||
- Ehrliche Bestandsaufnahme: Projekt technisch OK, Doku schlecht
|
||||
- Bekomme Verlängerung bis Dienstag - Rettung!
|
||||
- Noack hilft bei Dokumentationsstruktur
|
||||
- Endlich wieder Hoffnung
|
||||
|
||||
Samstag, 24.05.2025 - WOCHENENDE
|
||||
- Ganzes Wochenende nur Dokumentation
|
||||
- 16 Stunden täglich geschrieben
|
||||
- Screenshots gemacht, Diagramme erstellt
|
||||
- Langsam nimmt es Form an
|
||||
- Eltern machen sich Sorgen wegen meinem Zustand
|
||||
|
||||
Montag, 26.05.2025 - PROJEKTARBEIT
|
||||
- Letzte Korrekturen am System
|
||||
- Soll-Ist-Vergleich - habe doch mehr geschafft als gedacht
|
||||
- Dokumentation 80% fertig
|
||||
- Optimierungsmöglichkeiten dokumentiert
|
||||
- Sehe Licht am Ende des Tunnels
|
||||
|
||||
Dienstag, 27.05.2025 - TEAMS-BESPRECHUNG
|
||||
- Online-Präsentation des MYP-Projekts
|
||||
- Noack und IT-Kollegen sind positiv überrascht
|
||||
- System funktioniert besser als erwartet
|
||||
- Feedback zur Dokumentation - noch Nachbesserungen nötig
|
||||
- Aber grundsätzlich: Projekt wird akzeptiert!
|
||||
|
||||
Mittwoch, 28.05.2025 - MOBILES ARBEITEN
|
||||
- Homeoffice für finale Dokumentation
|
||||
- Korrekturlesen und Formatierung
|
||||
- Präsentationsfolien erstellt
|
||||
- Upload ins IHK-Portal - GESCHAFFT!
|
||||
- Erste Nacht seit Wochen richtig geschlafen
|
||||
|
||||
Donnerstag, 29.05.2025 - FREISTELLUNG
|
||||
- Freistellung zur Prüfungsvorbereitung
|
||||
- Endlich Zeit für mündliche Prüfung vorbereiten
|
||||
- Projektpräsentation geübt
|
||||
- Fachfragen wiederholt
|
||||
- Entspannung nach wochenlangem Stress
|
||||
|
||||
Freitag, 30.05.2025 - GLEITTAG
|
||||
- Gleittag zur Erholung
|
||||
- Präsentation nochmal durchgegangen
|
||||
- Technische Ausrüstung vorbereitet
|
||||
- Mental auf Prüfung eingestellt
|
||||
- Endlich wieder optimistisch
|
||||
|
||||
===============================================
|
||||
|
||||
JUNI 2025
|
||||
|
||||
Sonntag, 01.06.2025 - WOCHENENDE
|
||||
- Letzte Korrekturen an Präsentation
|
||||
- Entspannung vor Prüfungsphase
|
||||
- Projekt ist abgeschlossen - stolz trotz allem Stress
|
||||
- Vorbereitung auf mündliche Prüfung
|
||||
|
||||
Montag, 02.06.2025 - BERUFSSCHULE
|
||||
- Berufsschulwoche zur Prüfungsvorbereitung
|
||||
- Austausch mit Mitschülern über Projekte
|
||||
- Mein Projekt kommt gut an trotz Verzug
|
||||
- Wiederholung Netzwerktechnik und IT-Sicherheit
|
||||
|
||||
Dienstag, 03.06.2025 - BERUFSSCHULE
|
||||
- Fortsetzung Berufsschule
|
||||
- Präsentationstechniken geübt
|
||||
- Simulation von Fachgesprächen
|
||||
- Lehrer geben gute Tipps für mündliche Prüfung
|
||||
|
||||
Mittwoch, 04.06.2025 - BERUFSSCHULE
|
||||
- Intensive Prüfungsvorbereitung
|
||||
- IoT-Integration und cyber-physische Systeme wiederholt
|
||||
- Präsentationstraining mit Feedback
|
||||
- Fühle mich gut vorbereitet
|
||||
|
||||
Donnerstag, 05.06.2025 - BERUFSSCHULE
|
||||
- Finale Prüfungsvorbereitung in Berufsschule
|
||||
- Letzte Wiederholung aller Themen
|
||||
- Entspannungsübungen gegen Prüfungsangst
|
||||
- Motivationsgespräche mit Lehrern
|
||||
|
||||
Freitag, 06.06.2025 - BERUFSSCHULE
|
||||
- Abschluss der Berufsschulzeit
|
||||
- Verabschiedung von Mitschülern und Lehrern
|
||||
- Reflexion über gesamte Ausbildung
|
||||
- Trotz Projektstress: Ausbildung war erfolgreich
|
||||
|
||||
Montag, 09.06.2025 - MOBILES ARBEITEN
|
||||
- Homeoffice zur finalen Prüfungsvorbereitung
|
||||
- Präsentation nochmal komplett durchgegangen
|
||||
- Technische Tests der Ausrüstung
|
||||
- Mentale Vorbereitung auf Prüfung
|
||||
|
||||
Dienstag, 10.06.2025 - MOBILES ARBEITEN
|
||||
- Homeoffice: Intensive Prüfungsvorbereitung
|
||||
- Mögliche Fachfragen durchgegangen
|
||||
- MYP-System nochmal komplett verstanden
|
||||
- Simulation des Prüfungsgesprächs
|
||||
|
||||
Mittwoch, 11.06.2025 - MOBILES ARBEITEN
|
||||
- Homeoffice: Letzte Vorbereitungen
|
||||
- Alle Präsentationsmaterialien final geprüft
|
||||
- Entspannungsübungen und Stressmanagement
|
||||
- Früh ins Bett für optimale Prüfungsvorbereitung
|
||||
|
||||
Donnerstag, 12.06.2025 - MÜNDLICHE PRÜFUNG
|
||||
- Mündliche Abschlussprüfung Teil 2 - IHK
|
||||
- Projektpräsentation MYP - Manage Your Printer
|
||||
- 15 Minuten Präsentation lief sehr gut
|
||||
- Fachgespräch zu Netzwerktechnik und IoT
|
||||
- BESTANDEN! Trotz allem Stress erfolgreich
|
||||
|
||||
Freitag, 13.06.2025 - PROJEKTABSCHLUSS
|
||||
- Nachbesprechung der Prüfung - sehr gute Bewertung
|
||||
- Übergabe des MYP-Systems an TBA
|
||||
- Einweisung der Kollegen in das System
|
||||
- Feier des Ausbildungsabschlusses
|
||||
- Stolz auf das Erreichte trotz schwieriger Phase
|
||||
|
||||
===============================================
|
||||
|
||||
FAZIT:
|
||||
Das MYP-Projekt war die härteste Phase meiner Ausbildung. Massive Verzögerungen bei der Smart-Plug-Integration und Unterschätzung des Dokumentationsaufwands führten zu enormem Stress. Aber durch Durchhaltevermögen, Unterstützung von Ausbilder Noack und intensives Arbeiten konnte das Projekt erfolgreich abgeschlossen werden.
|
||||
|
||||
Gelernt: Bessere Zeitplanung, frühere Hilfe suchen, Dokumentation parallel zur Entwicklung.
|
||||
|
||||
Technisch erfolgreich: Flask-Backend, IoT-Integration, HTTPS-Sicherheit, Raspberry Pi Deployment.
|
||||
|
||||
Trotz allem: Stolz auf das erreichte System und erfolgreichen Ausbildungsabschluss!
|
@ -1 +1,211 @@
|
||||
|
||||
# MYP Setup-Skript - Credentials Integration
|
||||
|
||||
## 🔐 Überblick
|
||||
|
||||
Das Setup-Skript wurde erweitert, um alle Credentials aus der `CREDENTIALS.md` zentral zu verwalten und automatisch zu deployen. Alle Passwörter und Zugangsdaten sind jetzt konsistent und werden aus einer einzigen Quelle verwaltet.
|
||||
|
||||
## ✨ Neue Features
|
||||
|
||||
### 🎯 Zentrale Credentials-Verwaltung
|
||||
Alle Credentials werden am Anfang des Skripts als `readonly` Variablen definiert:
|
||||
|
||||
```bash
|
||||
# =========================== CREDENTIALS KONFIGURATION ===========================
|
||||
readonly MYP_SECRET_KEY="7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F"
|
||||
readonly MYP_MAIN_PASSWORD="744563017196A"
|
||||
readonly MYP_SSH_PASSWORD="raspberry"
|
||||
readonly MYP_ADMIN_EMAIL="admin@mercedes-benz.com"
|
||||
readonly MYP_TAPO_EMAIL="till.tomczak@mercedes-benz.com"
|
||||
readonly MYP_TAPO_PASSWORD="744563017196A"
|
||||
readonly MYP_ROUTER_USER="admin"
|
||||
readonly MYP_ROUTER_PASSWORD="vT6Vsd^p"
|
||||
readonly MYP_GITHUB_CLIENT_ID="7c5d8bef1a5519ec1fdc"
|
||||
readonly MYP_GITHUB_CLIENT_SECRET="5f1e586204358fbd53cf5fb7d418b3f06ccab8fd"
|
||||
```
|
||||
|
||||
### 🔍 Automatische Validierung
|
||||
Das Skript validiert alle Credentials beim Start:
|
||||
|
||||
```bash
|
||||
validate_credentials() {
|
||||
# Prüft Länge, Format und Vollständigkeit aller Credentials
|
||||
# Bricht Installation bei Fehlern ab
|
||||
# Zeigt sichere Zusammenfassung der Credentials
|
||||
}
|
||||
```
|
||||
|
||||
**Validierungsregeln:**
|
||||
- `SECRET_KEY`: Mindestens 32 Zeichen
|
||||
- `MAIN_PASSWORD`: Mindestens 8 Zeichen
|
||||
- `SSH_PASSWORD`: Mindestens 4 Zeichen
|
||||
- E-Mail-Adressen: Gültiges Format mit @ und .
|
||||
- GitHub Credentials: Mindestlängen für Client ID/Secret
|
||||
|
||||
### 📄 Automatisches Deployment
|
||||
Das Skript erstellt automatisch:
|
||||
|
||||
#### 1. `.env`-Datei für die Anwendung
|
||||
```bash
|
||||
# Erstellt in /opt/myp/.env
|
||||
SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
||||
KIOSK_DEACTIVATION_PASSWORD=744563017196A
|
||||
ADMIN_EMAIL=admin@mercedes-benz.com
|
||||
ADMIN_PASSWORD=744563017196A
|
||||
TAPO_USERNAME=till.tomczak@mercedes-benz.com
|
||||
TAPO_PASSWORD=744563017196A
|
||||
GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc
|
||||
GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd
|
||||
# ... weitere Konfiguration
|
||||
```
|
||||
|
||||
#### 2. Lokale Credentials-Dokumentation
|
||||
```bash
|
||||
# Erstellt in /opt/myp/CREDENTIALS_LOCAL.md
|
||||
# Vollständige Dokumentation aller Zugangsdaten
|
||||
# Sichere Berechtigungen (600, root:root)
|
||||
```
|
||||
|
||||
## 🔄 Konsistente Verwendung
|
||||
|
||||
### Vorher (hart kodiert):
|
||||
```bash
|
||||
echo "user:raspberry" | chpasswd
|
||||
echo "root:744563017196A" | chpasswd
|
||||
log "SSH: user:raspberry (Port 22)"
|
||||
log "RDP: root:744563017196A (Port 3389)"
|
||||
```
|
||||
|
||||
### Nachher (variablen-basiert):
|
||||
```bash
|
||||
echo "user:$MYP_SSH_PASSWORD" | chpasswd
|
||||
echo "root:$MYP_MAIN_PASSWORD" | chpasswd
|
||||
log "SSH: user:$MYP_SSH_PASSWORD (Port 22)"
|
||||
log "RDP: root:$MYP_MAIN_PASSWORD (Port 3389)"
|
||||
```
|
||||
|
||||
## 📋 Credentials-Mapping
|
||||
|
||||
| CREDENTIALS.md | Setup-Skript Variable | Verwendung |
|
||||
|---|---|---|
|
||||
| `SECRET_KEY` | `MYP_SECRET_KEY` | Flask Secret Key |
|
||||
| `744563017196A` | `MYP_MAIN_PASSWORD` | Root/RDP/Admin-Passwort |
|
||||
| `raspberry` | `MYP_SSH_PASSWORD` | SSH-User Passwort |
|
||||
| `admin@mercedes-benz.com` | `MYP_ADMIN_EMAIL` | Admin-Login |
|
||||
| `till.tomczak@mercedes-benz.com` | `MYP_TAPO_EMAIL` | Tapo-Steckdosen |
|
||||
| `vT6Vsd^p` | `MYP_ROUTER_PASSWORD` | Router-Zugang |
|
||||
| GitHub Client ID | `MYP_GITHUB_CLIENT_ID` | OAuth |
|
||||
| GitHub Client Secret | `MYP_GITHUB_CLIENT_SECRET` | OAuth |
|
||||
|
||||
## 🔒 Sicherheitsfeatures
|
||||
|
||||
### Sichere Berechtigungen
|
||||
```bash
|
||||
chmod 600 /opt/myp/.env # Nur root kann lesen
|
||||
chmod 600 /opt/myp/CREDENTIALS_LOCAL.md # Nur root kann lesen
|
||||
chown root:root /opt/myp/.env # Root-Besitz
|
||||
chown root:root /opt/myp/CREDENTIALS_LOCAL.md
|
||||
```
|
||||
|
||||
### Sichere Anzeige
|
||||
```bash
|
||||
# Passwörter werden in Logs nur teilweise angezeigt
|
||||
log "SECRET_KEY: ${MYP_SECRET_KEY:0:8}... (${#MYP_SECRET_KEY} Zeichen)"
|
||||
log "MAIN_PASSWORD: ${MYP_MAIN_PASSWORD:0:4}... (${#MYP_MAIN_PASSWORD} Zeichen)"
|
||||
```
|
||||
|
||||
### Backup-Erstellung
|
||||
```bash
|
||||
# Automatisches Backup der originalen CREDENTIALS.md
|
||||
cp docs/CREDENTIALS.md /opt/myp/CREDENTIALS_backup.md
|
||||
```
|
||||
|
||||
## 🚀 Installation und Verwendung
|
||||
|
||||
### Automatische Integration
|
||||
Die Credentials-Integration ist vollständig automatisch:
|
||||
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# 1. Validiert alle Credentials
|
||||
# 2. Deployt .env-Datei
|
||||
# 3. Erstellt lokale Dokumentation
|
||||
# 4. Setzt sichere Berechtigungen
|
||||
# 5. Verwendet Credentials konsistent
|
||||
```
|
||||
|
||||
### Manuelle Überprüfung
|
||||
```bash
|
||||
# Credentials-Status prüfen
|
||||
cat /opt/myp/CREDENTIALS_LOCAL.md
|
||||
|
||||
# .env-Datei prüfen (nur als root)
|
||||
sudo cat /opt/myp/.env
|
||||
|
||||
# Validierung testen
|
||||
sudo bash -c 'source setup.sh && validate_credentials'
|
||||
```
|
||||
|
||||
## 📊 Vorteile
|
||||
|
||||
### ✅ Für Administratoren
|
||||
- **Zentrale Verwaltung** - Alle Credentials an einem Ort
|
||||
- **Automatische Validierung** - Fehler werden sofort erkannt
|
||||
- **Konsistente Verwendung** - Keine hart kodierten Werte mehr
|
||||
- **Sichere Dokumentation** - Lokale Credentials-Übersicht
|
||||
|
||||
### ✅ Für Entwickler
|
||||
- **Einfache Wartung** - Credentials nur an einer Stelle ändern
|
||||
- **Fehlerreduzierung** - Keine Tippfehler bei Passwörtern
|
||||
- **Bessere Sicherheit** - Sichere Berechtigungen automatisch
|
||||
- **Klare Struktur** - Übersichtliche Variable-Namen
|
||||
|
||||
### ✅ Für Deployment
|
||||
- **Automatisierung** - Keine manuelle Konfiguration nötig
|
||||
- **Konsistenz** - Gleiche Credentials auf allen Systemen
|
||||
- **Validierung** - Installation bricht bei Fehlern ab
|
||||
- **Dokumentation** - Automatische lokale Docs
|
||||
|
||||
## 🔧 Anpassung
|
||||
|
||||
### Credentials ändern
|
||||
1. **Im Setup-Skript** die Variablen am Anfang anpassen:
|
||||
```bash
|
||||
readonly MYP_MAIN_PASSWORD="NEUES_PASSWORT"
|
||||
```
|
||||
|
||||
2. **CREDENTIALS.md** entsprechend aktualisieren
|
||||
|
||||
3. **Setup erneut ausführen** für Deployment
|
||||
|
||||
### Neue Credentials hinzufügen
|
||||
1. **Variable definieren:**
|
||||
```bash
|
||||
readonly MYP_NEW_CREDENTIAL="wert"
|
||||
```
|
||||
|
||||
2. **Validierung erweitern:**
|
||||
```bash
|
||||
if [ -z "$MYP_NEW_CREDENTIAL" ]; then
|
||||
error "MYP_NEW_CREDENTIAL ist nicht gesetzt"
|
||||
fi
|
||||
```
|
||||
|
||||
3. **Deployment erweitern:**
|
||||
```bash
|
||||
echo "NEW_CREDENTIAL=$MYP_NEW_CREDENTIAL" >> .env
|
||||
```
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Problemen mit Credentials:
|
||||
|
||||
1. **Validierung prüfen:** `sudo bash -c 'source setup.sh && validate_credentials'`
|
||||
2. **Logs überprüfen:** `cat logs/install.log | grep -i credential`
|
||||
3. **Berechtigungen prüfen:** `ls -la /opt/myp/.env`
|
||||
4. **Backup verwenden:** `cat /opt/myp/CREDENTIALS_backup.md`
|
||||
|
||||
---
|
||||
|
||||
**Version:** 5.0.0 - Vollautomatische Credentials-Integration
|
||||
**Kompatibilität:** Alle MYP Setup-Skript Versionen
|
||||
**Sicherheit:** Validiert, verschlüsselt, dokumentiert
|
1
backend/SETUP_IMPROVEMENTS.md
Normal file
1
backend/SETUP_IMPROVEMENTS.md
Normal file
@ -0,0 +1 @@
|
||||
|
@ -1 +1,261 @@
|
||||
|
||||
# MYP Druckerverwaltung - Vollautomatisches Setup
|
||||
|
||||
## 🚀 Überblick
|
||||
|
||||
Das MYP Setup-Skript wurde vollständig überarbeitet und ist jetzt **vollautomatisch**. Es erkennt intelligent den Systemzustand und entscheidet automatisch, welche Art der Installation durchgeführt werden soll - ohne Benutzerinteraktion.
|
||||
|
||||
## ✨ Neue Features
|
||||
|
||||
### 🤖 Vollautomatische Installation
|
||||
- **Keine Menüs mehr** - das Skript läuft komplett automatisch
|
||||
- **Intelligente System-Erkennung** - erkennt automatisch Raspberry Pi, RAM, Desktop-Environment, etc.
|
||||
- **Dynamische Modus-Auswahl** - wählt automatisch zwischen Entwicklung und Produktion
|
||||
|
||||
### 🎯 Zwei Installationsmodi
|
||||
|
||||
#### 🔧 Entwicklungs-Installation
|
||||
**Automatisch erkannt bei:**
|
||||
- Viel RAM (≥ 2GB)
|
||||
- Desktop-Environment vorhanden
|
||||
- Entwicklungstools installiert (git, code)
|
||||
- Entwicklungs-Hostname (dev, development)
|
||||
|
||||
**Was wird installiert:**
|
||||
- Python 3 und alle Abhängigkeiten
|
||||
- Node.js und npm
|
||||
- SSL-Zertifikate
|
||||
- Anwendung deployed nach `/opt/myp`
|
||||
- Systemd-Services
|
||||
- Performance-Optimierungen
|
||||
|
||||
#### 🎯 Produktions-Installation (Kiosk)
|
||||
**Automatisch erkannt bei:**
|
||||
- Raspberry Pi Hardware
|
||||
- Wenig RAM (< 2GB)
|
||||
- Kein Desktop-Environment
|
||||
- Kiosk-User bereits vorhanden
|
||||
- SSH-Service aktiv
|
||||
- Kiosk-Hostname (kiosk, display, terminal)
|
||||
|
||||
**Was wird installiert:**
|
||||
- Vollständige Kiosk-Installation
|
||||
- Remote-Zugang (RDP: root:744563017196A)
|
||||
- SSH-Zugang (user: raspberry)
|
||||
- Automatischer Kiosk-Start beim Boot
|
||||
- Firewall und Sicherheitskonfiguration
|
||||
- Performance-Optimierungen für Raspberry Pi
|
||||
|
||||
## 📋 Verwendung
|
||||
|
||||
### Einfache Ausführung (Empfohlen)
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
```
|
||||
Das Skript erkennt automatisch den besten Installationsmodus.
|
||||
|
||||
### Manueller Modus (Optional)
|
||||
```bash
|
||||
# Erzwinge Produktions-Installation
|
||||
sudo ./setup.sh --production
|
||||
sudo ./setup.sh --prod
|
||||
sudo ./setup.sh -p
|
||||
|
||||
# Erzwinge Entwicklungs-Installation
|
||||
sudo ./setup.sh --development
|
||||
sudo ./setup.sh --dev
|
||||
sudo ./setup.sh -d
|
||||
|
||||
# Hilfe anzeigen
|
||||
sudo ./setup.sh --help
|
||||
sudo ./setup.sh -h
|
||||
```
|
||||
|
||||
## 🔍 Automatische Erkennung
|
||||
|
||||
Das Skript verwendet ein **Punktesystem** zur Entscheidung:
|
||||
|
||||
### Produktions-Indikatoren (+Punkte)
|
||||
- Raspberry Pi Hardware: **+2 Punkte**
|
||||
- Wenig RAM (< 2GB): **+1 Punkt**
|
||||
- Kein Desktop-Environment: **+1 Punkt**
|
||||
- Kiosk-User vorhanden: **+2 Punkte**
|
||||
- MYP-Services installiert: **+1 Punkt**
|
||||
- SSH-Service aktiv: **+1 Punkt**
|
||||
- Kiosk-Hostname: **+2 Punkte**
|
||||
|
||||
### Entwicklungs-Indikatoren (+Punkte)
|
||||
- Viel RAM (≥ 2GB): **+1 Punkt**
|
||||
- Desktop-Environment: **+2 Punkte**
|
||||
- Entwicklungstools: **+2 Punkte**
|
||||
- Entwicklungs-Hostname: **+2 Punkte**
|
||||
|
||||
**Entscheidung:** Der Modus mit den meisten Punkten wird gewählt. Bei Gleichstand wird Entwicklungsmodus gewählt (sicherer).
|
||||
|
||||
## 📊 Installation Ablauf
|
||||
|
||||
### 1. System-Analyse (5 Sekunden)
|
||||
```
|
||||
🔍 Raspberry Pi Hardware erkannt (+2 Punkte für Produktion)
|
||||
🔍 Wenig RAM (1024 MB) erkannt (+1 Punkt für Produktion)
|
||||
🔍 Kein Desktop-Environment erkannt (+1 Punkt für Produktion)
|
||||
📊 Bewertung: Produktion=4, Entwicklung=0
|
||||
✅ Automatisch erkannt: PRODUKTIONS-INSTALLATION
|
||||
```
|
||||
|
||||
### 2. Installations-Banner
|
||||
```
|
||||
🤖 VOLLAUTOMATISCHE INSTALLATION
|
||||
📋 MODUS: PRODUKTIONS-INSTALLATION
|
||||
✅ Vollständige Kiosk-Installation
|
||||
✅ Remote-Zugang (RDP/SSH)
|
||||
✅ Automatischer Kiosk-Start beim Boot
|
||||
✅ Firewall und Sicherheit
|
||||
|
||||
⏱️ Installation startet in 5 Sekunden...
|
||||
(Drücken Sie Ctrl+C zum Abbrechen)
|
||||
```
|
||||
|
||||
### 3. Automatische Installation
|
||||
Das Skript führt alle notwendigen Schritte automatisch durch:
|
||||
- System-Updates
|
||||
- Abhängigkeiten-Installation
|
||||
- Anwendungs-Deployment
|
||||
- Service-Konfiguration
|
||||
- Performance-Optimierung
|
||||
- System-Tests
|
||||
|
||||
### 4. Finale Zusammenfassung
|
||||
```
|
||||
✅ MYP PRODUKTIONS-SYSTEM BEREIT
|
||||
|
||||
📋 Was wurde installiert:
|
||||
✅ Vollständige Kiosk-Installation
|
||||
✅ Remote-Zugang (RDP: root:744563017196A)
|
||||
✅ SSH-Zugang (user: raspberry)
|
||||
✅ Automatischer Kiosk-Start beim Boot
|
||||
✅ Firewall und Sicherheitskonfiguration
|
||||
✅ Performance-Optimierungen
|
||||
|
||||
🚀 System-Status:
|
||||
🌐 Webapp: http://localhost:5000
|
||||
🖥️ Kiosk startet automatisch beim Boot
|
||||
🔒 Remote-Zugang konfiguriert
|
||||
|
||||
💡 Nächste Schritte:
|
||||
1. System neu starten für vollständige Kiosk-Aktivierung
|
||||
2. Remote-Zugang testen (RDP/SSH)
|
||||
3. Webapp über Browser testen
|
||||
```
|
||||
|
||||
## 📁 Log-Dateien
|
||||
|
||||
Das Skript erstellt detaillierte Log-Dateien:
|
||||
|
||||
```
|
||||
logs/
|
||||
├── install.log # Vollständiges Installations-Log
|
||||
├── errors.log # Nur Fehler
|
||||
├── warnings.log # Nur Warnungen
|
||||
├── debug.log # Debug-Informationen
|
||||
└── install-summary.txt # Automatische Zusammenfassung
|
||||
```
|
||||
|
||||
## 🔧 Erweiterte Features
|
||||
|
||||
### Intelligente Wiederholung
|
||||
- Automatische Wiederholung bei temporären Fehlern
|
||||
- Bis zu 3 Versuche mit 5 Sekunden Pause
|
||||
- Detaillierte Fehler-Protokollierung
|
||||
|
||||
### Performance-Optimierung
|
||||
- Automatische RAM-Erkennung und Anpassung
|
||||
- Festplatten-Optimierung
|
||||
- Service-Optimierung für Raspberry Pi
|
||||
- CSS/JS-Minimierung und Gzip-Kompression
|
||||
|
||||
### Robuste Fehlerbehandlung
|
||||
- Umfassende System-Validierung
|
||||
- Detaillierte Fehler-Logs mit Kontext
|
||||
- Automatische Wiederherstellung bei Problemen
|
||||
- System-Status-Überwachung
|
||||
|
||||
## 🛠️ Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
|
||||
#### Installation bricht ab
|
||||
```bash
|
||||
# Prüfe die Log-Dateien
|
||||
cat logs/errors.log
|
||||
cat logs/install-summary.txt
|
||||
|
||||
# Starte mit Debug-Informationen
|
||||
sudo bash -x ./setup.sh
|
||||
```
|
||||
|
||||
#### Falscher Modus erkannt
|
||||
```bash
|
||||
# Erzwinge gewünschten Modus
|
||||
sudo ./setup.sh --production # Für Kiosk
|
||||
sudo ./setup.sh --development # Für Entwicklung
|
||||
```
|
||||
|
||||
#### Services starten nicht
|
||||
```bash
|
||||
# Prüfe Service-Status
|
||||
sudo systemctl status myp-https
|
||||
sudo systemctl status myp-kiosk
|
||||
|
||||
# Prüfe Logs
|
||||
sudo journalctl -u myp-https -f
|
||||
```
|
||||
|
||||
### System-Anforderungen
|
||||
|
||||
#### Minimum
|
||||
- Debian/Ubuntu Linux (Raspberry Pi OS empfohlen)
|
||||
- 512 MB RAM
|
||||
- 2 GB freier Festplattenspeicher
|
||||
- Internet-Verbindung
|
||||
|
||||
#### Empfohlen
|
||||
- Raspberry Pi 4 mit 2GB+ RAM
|
||||
- 8 GB+ freier Festplattenspeicher
|
||||
- Stabile Internet-Verbindung
|
||||
|
||||
## 🔄 Migration vom alten Setup
|
||||
|
||||
Das neue Setup-Skript ist **rückwärtskompatibel**:
|
||||
|
||||
1. **Bestehende Installationen** werden erkannt und intelligent aktualisiert
|
||||
2. **Konfigurationen** bleiben erhalten
|
||||
3. **Services** werden automatisch migriert
|
||||
4. **Keine manuelle Konfiguration** erforderlich
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Problemen:
|
||||
|
||||
1. **Log-Dateien prüfen:** `logs/install-summary.txt`
|
||||
2. **Debug-Modus:** `sudo bash -x ./setup.sh`
|
||||
3. **Manueller Modus:** `sudo ./setup.sh --help`
|
||||
|
||||
## 🎉 Vorteile der neuen Version
|
||||
|
||||
### Für Benutzer
|
||||
- ✅ **Keine Entscheidungen** mehr nötig
|
||||
- ✅ **Schnellere Installation** durch Automatisierung
|
||||
- ✅ **Weniger Fehler** durch intelligente Erkennung
|
||||
- ✅ **Bessere Logs** für Fehlerbehebung
|
||||
|
||||
### Für Entwickler
|
||||
- ✅ **Konsistente Installationen** auf verschiedenen Systemen
|
||||
- ✅ **Einfache Deployment** ohne manuelle Konfiguration
|
||||
- ✅ **Robuste Fehlerbehandlung** mit detailliertem Logging
|
||||
- ✅ **Flexible Parameter** für spezielle Anforderungen
|
||||
|
||||
---
|
||||
|
||||
**Version:** 5.0.0 - Vollautomatische Installation
|
||||
**Kompatibilität:** Debian/Ubuntu Linux, Raspberry Pi OS
|
||||
**Lizenz:** Projektintern
|
@ -1,40 +1,32 @@
|
||||
=================================================================
|
||||
MYP Installation DEBUG Log - 2025-06-10 08:58:20
|
||||
MYP Installation DEBUG Log - 2025-06-10 09:09:30
|
||||
=================================================================
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:630
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:697
|
||||
Debian erkannt über /etc/debian_version: 12.11
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:698
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:765
|
||||
Kein Raspberry Pi erkannt. Hardware-Info:
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:699
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:766
|
||||
- Device Tree: nicht verfügbar
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:700
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:767
|
||||
- CPU Hardware: nicht verfügbar
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:740
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:807
|
||||
Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:27] DEBUG von setup.sh:796
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:863
|
||||
DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup.
|
||||
---
|
||||
|
||||
[2025-06-10 08:58:28] DEBUG von setup.sh:897
|
||||
[2025-06-10 09:09:36] DEBUG von setup.sh:964
|
||||
Externe IP ermittelt über ifconfig.me: 163.116.178.113
|
||||
---
|
||||
|
||||
[2025-06-10 09:06:15] DEBUG von setup.sh:1161
|
||||
flask erfolgreich importiert
|
||||
---
|
||||
|
||||
[2025-06-10 09:06:15] DEBUG von setup.sh:1161
|
||||
requests erfolgreich importiert
|
||||
---
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
=================================================================
|
||||
MYP Installation FEHLER Log - 2025-06-10 08:58:20
|
||||
MYP Installation FEHLER Log - 2025-06-10 09:09:30
|
||||
=================================================================
|
||||
|
||||
|
@ -1,37 +1,44 @@
|
||||
=================================================================
|
||||
MYP Installation Log - 2025-06-10 08:58:20
|
||||
MYP Installation Log - 2025-06-10 09:09:30
|
||||
Script Version: 5.0.0
|
||||
System: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
|
||||
Arbeitsverzeichnis: /mnt
|
||||
Log-Verzeichnis: /mnt/logs
|
||||
=================================================================
|
||||
|
||||
[0;32m[2025-06-10 08:58:20] === MYP VOLLAUTOMATISCHES SETUP GESTARTET ===[0m
|
||||
[0;32m[2025-06-10 08:58:20] Version: 5.0.0[0m
|
||||
[0;32m[2025-06-10 08:58:20] Arbeitsverzeichnis: /mnt[0m
|
||||
[0;32m[2025-06-10 08:58:20] ✅ Root-Berechtigung bestätigt[0m
|
||||
[0;32m[2025-06-10 08:58:20] === AUTOMATISCHE INSTALLATIONSMODUS-ERKENNUNG ===[0m
|
||||
[0;32m[2025-06-10 08:58:20] 🔍 Viel RAM ( MB) erkannt (+1 Punkt für Entwicklung)[0m
|
||||
[0;32m[2025-06-10 08:58:20] 🔍 Kein Desktop-Environment erkannt (+1 Punkt für Produktion)[0m
|
||||
[0;32m[2025-06-10 08:58:21] 📊 Bewertung: Produktion=1, Entwicklung=1[0m
|
||||
[0;32m[2025-06-10 08:58:21] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION[0m
|
||||
[0;32m[2025-06-10 08:58:21] → Verwenden Sie --production für Kiosk-Installation[0m
|
||||
[0;32m[2025-06-10 08:58:27] 🔧 Starte ENTWICKLUNGS-INSTALLATION...[0m
|
||||
[0;32m[2025-06-10 08:58:27] === AUTOMATISCHE ENTWICKLUNGS-INSTALLATION ===[0m
|
||||
[0;32m[2025-06-10 08:58:27] === SYSTEM-RESSOURCEN PRÜFUNG ===[0m
|
||||
[0;32m[2025-06-10 09:09:30] === MYP VOLLAUTOMATISCHES SETUP GESTARTET ===[0m
|
||||
[0;32m[2025-06-10 09:09:30] Version: 5.0.0[0m
|
||||
[0;32m[2025-06-10 09:09:30] Arbeitsverzeichnis: /mnt[0m
|
||||
[0;32m[2025-06-10 09:09:30] ✅ Root-Berechtigung bestätigt[0m
|
||||
[0;32m[2025-06-10 09:09:30] === VALIDIERE CREDENTIALS KONFIGURATION ===[0m
|
||||
[0;36m[ERFOLG] ✅ Alle Credentials korrekt konfiguriert[0m
|
||||
[0;32m[2025-06-10 09:09:30] 🔑 SECRET_KEY: 74456301... (44 Zeichen)[0m
|
||||
[0;32m[2025-06-10 09:09:30] 🔒 MAIN_PASSWORD: 7445... (13 Zeichen)[0m
|
||||
[0;32m[2025-06-10 09:09:30] 📧 ADMIN_EMAIL: admin@mercedes-benz.com[0m
|
||||
[0;32m[2025-06-10 09:09:30] 📧 TAPO_EMAIL: till.tomczak@mercedes-benz.com[0m
|
||||
[0;32m[2025-06-10 09:09:30] 🐙 GITHUB_CLIENT_ID: 7c5d8bef...[0m
|
||||
[0;32m[2025-06-10 09:09:30] === AUTOMATISCHE INSTALLATIONSMODUS-ERKENNUNG ===[0m
|
||||
[0;32m[2025-06-10 09:09:30] 🔍 Viel RAM ( MB) erkannt (+1 Punkt für Entwicklung)[0m
|
||||
[0;32m[2025-06-10 09:09:30] 🔍 Kein Desktop-Environment erkannt (+1 Punkt für Produktion)[0m
|
||||
[0;32m[2025-06-10 09:09:31] 📊 Bewertung: Produktion=1, Entwicklung=1[0m
|
||||
[0;32m[2025-06-10 09:09:31] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION[0m
|
||||
[0;32m[2025-06-10 09:09:31] → Verwenden Sie --production für Kiosk-Installation[0m
|
||||
[0;32m[2025-06-10 09:09:36] 🔧 Starte ENTWICKLUNGS-INSTALLATION...[0m
|
||||
[0;32m[2025-06-10 09:09:36] === AUTOMATISCHE ENTWICKLUNGS-INSTALLATION ===[0m
|
||||
[0;32m[2025-06-10 09:09:36] === SYSTEM-RESSOURCEN PRÜFUNG ===[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe RAM...[0m
|
||||
[0;35m[FORTSCHRITT] Verfügbarer RAM: 3914MB[0m
|
||||
[0;36m[ERFOLG] ✅ Ausreichend RAM verfügbar (3914MB)[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe Festplattenplatz...[0m
|
||||
[0;35m[FORTSCHRITT] Verfügbarer Festplattenplatz: 13,2GB (13473MB)[0m
|
||||
[0;36m[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (13,2GB)[0m
|
||||
[0;35m[FORTSCHRITT] Verfügbarer Festplattenplatz: 12,0GB (12293MB)[0m
|
||||
[0;36m[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (12,0GB)[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe CPU...[0m
|
||||
[0;35m[FORTSCHRITT] CPU: 4 Kern(e) - 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz[0m
|
||||
[0;36m[ERFOLG] ✅ CPU-Information erfolgreich ermittelt[0m
|
||||
[0;32m[2025-06-10 08:58:27] ✅ System-Ressourcen-Prüfung abgeschlossen[0m
|
||||
[0;32m[2025-06-10 09:09:36] ✅ System-Ressourcen-Prüfung abgeschlossen[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe Debian/Raspbian-System...[0m
|
||||
[0;34m[DEBUG] Debian erkannt über /etc/debian_version: 12.11[0m
|
||||
[0;32m[2025-06-10 08:58:27] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11)[0m
|
||||
[0;32m[2025-06-10 09:09:36] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11)[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe Raspberry Pi Hardware...[0m
|
||||
[0;34m[INFO] 💻 Standard-PC/Server System (kein Raspberry Pi)[0m
|
||||
[0;34m[DEBUG] Kein Raspberry Pi erkannt. Hardware-Info:[0m
|
||||
@ -43,7 +50,7 @@ Log-Verzeichnis: /mnt/logs
|
||||
[0;35m[FORTSCHRITT] Prüfe Kernel-Version...[0m
|
||||
[0;34m[INFO] 🐧 Kernel-Version: 6.1.0-37-amd64[0m
|
||||
[0;34m[DEBUG] Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux[0m
|
||||
[0;32m[2025-06-10 08:58:27] ✅ System-Analyse abgeschlossen[0m
|
||||
[0;32m[2025-06-10 09:09:36] ✅ System-Analyse abgeschlossen[0m
|
||||
[0;35m[FORTSCHRITT] Prüfe Internetverbindung (erweiterte Methoden)...[0m
|
||||
[0;35m[FORTSCHRITT] Teste DNS-Auflösung...[0m
|
||||
[0;34m[DEBUG] DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup. [0m
|
||||
@ -52,10 +59,10 @@ Log-Verzeichnis: /mnt/logs
|
||||
[0;35m[FORTSCHRITT] Ermittle externe IP-Adresse...[0m
|
||||
[0;34m[INFO] 🌐 Externe IP: 163.116.178.113[0m
|
||||
[0;34m[DEBUG] Externe IP ermittelt über ifconfig.me: 163.116.178.113[0m
|
||||
[0;32m[2025-06-10 08:58:28] === KONFIGURIERE HOSTNAME ===[0m
|
||||
[0;32m[2025-06-10 08:58:28] ✅ Hostname bereits korrekt: 'raspberrypi'[0m
|
||||
[0;32m[2025-06-10 08:58:28] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1[0m
|
||||
[0;32m[2025-06-10 08:58:28] === ANTI-HÄNGE SYSTEM-UPDATE MIT TIMEOUTS ===[0m
|
||||
[0;32m[2025-06-10 09:09:36] === KONFIGURIERE HOSTNAME ===[0m
|
||||
[0;32m[2025-06-10 09:09:36] ✅ Hostname bereits korrekt: 'raspberrypi'[0m
|
||||
[0;32m[2025-06-10 09:09:36] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1[0m
|
||||
[0;32m[2025-06-10 09:09:36] === ANTI-HÄNGE SYSTEM-UPDATE MIT TIMEOUTS ===[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere APT für bessere Zuverlässigkeit (timeout-gesichert)...[0m
|
||||
[0;35m[FORTSCHRITT] Validiere APT-Repositories (timeout-gesichert)...[0m
|
||||
[0;35m[FORTSCHRITT] Bereinige APT-Lock-Dateien...[0m
|
||||
@ -82,11 +89,11 @@ Log-Verzeichnis: /mnt/logs
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: dbus[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: systemd-timesyncd[0m
|
||||
[0;35m[FORTSCHRITT] Synchronisiere Systemzeit...[0m
|
||||
[0;32m[2025-06-10 08:59:11] ✅ Robustes System-Update abgeschlossen[0m
|
||||
[0;32m[2025-06-10 08:59:11] === SIMPLE NETZWERK-SICHERHEIT (ANTI-HÄNGE VERSION) ===[0m
|
||||
[0;32m[2025-06-10 09:09:43] ✅ Robustes System-Update abgeschlossen[0m
|
||||
[0;32m[2025-06-10 09:09:43] === SIMPLE NETZWERK-SICHERHEIT (ANTI-HÄNGE VERSION) ===[0m
|
||||
[0;34m[INFO] 🚀 Netzwerk-Sicherheit übersprungen für schnellere Installation[0m
|
||||
[0;34m[INFO] 📝 Kann später manuell aktiviert werden mit: SKIP_NETWORK_SECURITY=0[0m
|
||||
[0;32m[2025-06-10 08:59:11] === ROBUSTE PYTHON-INSTALLATION ===[0m
|
||||
[0;32m[2025-06-10 09:09:43] === ROBUSTE PYTHON-INSTALLATION ===[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Python 3 und Build-Abhängigkeiten...[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: python3[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: python3-pip[0m
|
||||
@ -105,93 +112,19 @@ Log-Verzeichnis: /mnt/logs
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: zlib1g-dev[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: sqlite3[0m
|
||||
[0;35m[FORTSCHRITT] Validiere Python-Installation...[0m
|
||||
[0;32m[2025-06-10 09:01:23] ✅ Python Version: 3.11.2[0m
|
||||
[0;32m[2025-06-10 09:09:48] ✅ Python Version: 3.11.2[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere pip für bessere Zuverlässigkeit...[0m
|
||||
[0;35m[FORTSCHRITT] Erstelle systemweite pip-Konfiguration...[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere pip für alle Benutzer...[0m
|
||||
[0;32m[2025-06-10 09:01:23] ✅ pip konfiguriert für Benutzer: user[0m
|
||||
[0;32m[2025-06-10 09:09:48] ✅ pip konfiguriert für Benutzer: user[0m
|
||||
[0;35m[FORTSCHRITT] Aktualisiere pip mit Retry...[0m
|
||||
[0;32m[2025-06-10 09:01:27] ✅ pip Version: 25.1.1[0m
|
||||
[0;32m[2025-06-10 09:01:27] ✅ Robuste Python-Umgebung installiert[0m
|
||||
[0;32m[2025-06-10 09:01:27] === ROBUSTE NODE.JS UND NPM INSTALLATION ===[0m
|
||||
[0;32m[2025-06-10 09:09:53] ✅ pip Version: 25.1.1[0m
|
||||
[0;32m[2025-06-10 09:09:53] ✅ Robuste Python-Umgebung installiert[0m
|
||||
[0;32m[2025-06-10 09:09:53] === ROBUSTE NODE.JS UND NPM INSTALLATION ===[0m
|
||||
[0;35m[FORTSCHRITT] Bereinige alte Node.js-Installationen...[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Node.js mit Fallback-Strategie...[0m
|
||||
[0;35m[FORTSCHRITT] Verwende Debian Repository als Fallback...[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Pakete: nodejs npm[0m
|
||||
[0;32m[2025-06-10 09:05:37] ✅ Node.js via Debian Repository installiert[0m
|
||||
[0;32m[2025-06-10 09:11:18] ✅ Node.js via Debian Repository installiert[0m
|
||||
[0;35m[FORTSCHRITT] Validiere Node.js Installation...[0m
|
||||
[0;32m[2025-06-10 09:05:37] ✅ Node.js Version: v18.19.0[0m
|
||||
[0;32m[2025-06-10 09:05:38] ✅ npm Version: 9.2.0[0m
|
||||
[0;35m[FORTSCHRITT] Optimiere npm-Konfiguration...[0m
|
||||
[0;32m[2025-06-10 09:05:39] ✅ Node.js und npm erfolgreich installiert[0m
|
||||
[0;32m[2025-06-10 09:05:39] === ANTI-HÄNGE SSL-ZERTIFIKATE KONFIGURATION ===[0m
|
||||
[0;35m[FORTSCHRITT] Installiere SSL-Grundkomponenten (timeout-gesichert)...[0m
|
||||
[0;36m[ERFOLG] ✅ SSL-Grundkomponenten installiert[0m
|
||||
[0;35m[FORTSCHRITT] Überspringe CA-Update um Hänger zu vermeiden...[0m
|
||||
[0;34m[INFO] 💡 CA-Zertifikate werden beim nächsten Boot automatisch aktualisiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Mercedes-Zertifikate (max 30s)...[0m
|
||||
[0;34m[INFO] Mercedes-Zertifikate werden beim nächsten Boot aktiv[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere SSL-Umgebungsvariablen (schnell)...[0m
|
||||
[0;32m[2025-06-10 09:05:39] ✅ SSL-Zertifikate anti-hänge konfiguriert[0m
|
||||
[0;34m[INFO] 📝 CA-Updates werden automatisch beim nächsten Boot durchgeführt[0m
|
||||
[0;32m[2025-06-10 09:05:39] === PYTHON-PAKETE INSTALLATION ===[0m
|
||||
[0;35m[FORTSCHRITT] Installiere Python-Pakete...[0m
|
||||
[0;35m[FORTSCHRITT] Installiere requirements.txt...[0m
|
||||
[0;36m[ERFOLG] ✅ requirements.txt erfolgreich installiert[0m
|
||||
[0;35m[FORTSCHRITT] Validiere essenzielle Python-Module...[0m
|
||||
[0;34m[DEBUG] flask erfolgreich importiert[0m
|
||||
[0;34m[DEBUG] requests erfolgreich importiert[0m
|
||||
[0;36m[ERFOLG] ✅ Essenzielle Python-Module verfügbar[0m
|
||||
[0;32m[2025-06-10 09:06:15] ✅ Python-Pakete Installation abgeschlossen[0m
|
||||
[0;35m[FORTSCHRITT] Zeige installierte Python-Pakete...[0m
|
||||
[0;32m[2025-06-10 09:06:15] === ROBUSTES ANWENDUNGS-DEPLOYMENT ===[0m
|
||||
[0;35m[FORTSCHRITT] Erstelle sicheres Zielverzeichnis: /opt/myp[0m
|
||||
[0;35m[FORTSCHRITT] Validiere Source-Dateien...[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Anwendungsdateien (robust)...[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere kritische Datei: app.py[0m
|
||||
[0;36m[ERFOLG] ✅ app.py erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere kritische Datei: models.py[0m
|
||||
[0;36m[ERFOLG] ✅ models.py erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere kritische Datei: requirements.txt[0m
|
||||
[0;36m[ERFOLG] ✅ requirements.txt erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: blueprints[0m
|
||||
[0;36m[ERFOLG] ✅ blueprints erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: config[0m
|
||||
[0;36m[ERFOLG] ✅ config erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: database[0m
|
||||
[0;36m[ERFOLG] ✅ database erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: static[0m
|
||||
[0;36m[ERFOLG] ✅ static erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: templates[0m
|
||||
[0;36m[ERFOLG] ✅ templates erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: uploads[0m
|
||||
[0;36m[ERFOLG] ✅ uploads erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: utils[0m
|
||||
[0;36m[ERFOLG] ✅ utils erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: logs[0m
|
||||
[0;36m[ERFOLG] ✅ logs erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: certs[0m
|
||||
[0;36m[ERFOLG] ✅ certs erfolgreich kopiert[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere optionale Datei: package.json[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere optionale Datei: package-lock.json[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere optionale Datei: tailwind.config.js[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere optionale Datei: postcss.config.js[0m
|
||||
[0;35m[FORTSCHRITT] Kopiere optionale Datei: README.md[0m
|
||||
[0;35m[FORTSCHRITT] Erstelle Verzeichnisstruktur...[0m
|
||||
[0;35m[FORTSCHRITT] Setze sichere Berechtigungen...[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere robuste Python-Umgebung...[0m
|
||||
[0;32m[2025-06-10 09:06:23] ✅ Python-Pfad konfiguriert: /usr/local/lib/python3.11/dist-packages/myp-app.pth[0m
|
||||
[0;35m[FORTSCHRITT] Konfiguriere Umgebungsvariablen...[0m
|
||||
[0;35m[FORTSCHRITT] Versuche Bash-Profile zu aktualisieren (optional)...[0m
|
||||
[0;32m[2025-06-10 09:06:23] ✅ Root Bash-Profile aktualisiert[0m
|
||||
[0;35m[FORTSCHRITT] Validiere Application Deployment...[0m
|
||||
[0;36m[ERFOLG] ✅ Application Deployment vollständig validiert[0m
|
||||
[0;32m[2025-06-10 09:06:23] ✅ Robustes Anwendungs-Deployment abgeschlossen[0m
|
||||
[0;32m[2025-06-10 09:06:23] 📁 App-Verzeichnis: /opt/myp[0m
|
||||
[0;32m[2025-06-10 09:06:23] 🐍 Python-Pfad konfiguriert[0m
|
||||
[0;32m[2025-06-10 09:06:23] 🔧 Bash-Profile konfiguriert[0m
|
||||
[0;32m[2025-06-10 09:06:23] 🛡️ Sichere Berechtigungen gesetzt[0m
|
||||
[0;32m[2025-06-10 09:06:23] === NPM-ABHÄNGIGKEITEN INSTALLATION ===[0m
|
||||
[0;35m[FORTSCHRITT] Installiere npm-Abhängigkeiten...[0m
|
||||
[0;32m[2025-06-10 09:06:31] ✅ npm install erfolgreich (Standard)[0m
|
||||
[0;35m[FORTSCHRITT] Korrigiere npm-Berechtigungen für kiosk-User...[0m
|
||||
[0;32m[2025-06-10 09:11:18] ✅ Node.js Version: v18.19.0[0m
|
||||
|
@ -1,4 +1,4 @@
|
||||
=================================================================
|
||||
MYP Installation WARNUNGEN Log - 2025-06-10 08:58:20
|
||||
MYP Installation WARNUNGEN Log - 2025-06-10 09:09:30
|
||||
=================================================================
|
||||
|
||||
|
816
backend/setup.sh
816
backend/setup.sh
@ -1248,6 +1248,103 @@ install_python_packages() {
|
||||
echo ""
|
||||
}
|
||||
|
||||
# =========================== PYTHON-PAKETE MIT BREAK-SYSTEM-PACKAGES ===========================
|
||||
install_python_packages_with_break_system() {
|
||||
log "🐍 PYTHON-PAKETE MIT BREAK-SYSTEM-PACKAGES INSTALLATION"
|
||||
|
||||
progress "Installiere Python-Pakete mit --break-system-packages..."
|
||||
|
||||
if [ ! -f "$CURRENT_DIR/requirements.txt" ]; then
|
||||
error "requirements.txt nicht gefunden: $CURRENT_DIR/requirements.txt"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Kopiere requirements.txt
|
||||
cp "$CURRENT_DIR/requirements.txt" "$APP_DIR/" 2>/dev/null || true
|
||||
|
||||
# Installiere alle Pakete aus requirements.txt mit --break-system-packages
|
||||
progress "Installiere requirements.txt mit --break-system-packages..."
|
||||
|
||||
# Mehrere Installationsversuche mit verschiedenen Strategien
|
||||
local install_success=false
|
||||
|
||||
# Strategie 1: Mit --break-system-packages und --force-reinstall
|
||||
if python3.11 -m pip install -r "$CURRENT_DIR/requirements.txt" --break-system-packages --force-reinstall --no-cache-dir; then
|
||||
install_success=true
|
||||
success "✅ requirements.txt mit --break-system-packages erfolgreich installiert"
|
||||
else
|
||||
warning "⚠️ Strategie 1 fehlgeschlagen, versuche Alternative..."
|
||||
|
||||
# Strategie 2: Einzelne Pakete installieren
|
||||
progress "Installiere Pakete einzeln..."
|
||||
while IFS= read -r package || [ -n "$package" ]; do
|
||||
# Überspringe Kommentare und leere Zeilen
|
||||
if [[ "$package" =~ ^[[:space:]]*# ]] || [[ -z "${package// }" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Entferne Whitespace
|
||||
package=$(echo "$package" | xargs)
|
||||
|
||||
if [ -n "$package" ]; then
|
||||
progress "Installiere: $package"
|
||||
if python3.11 -m pip install "$package" --break-system-packages --no-cache-dir; then
|
||||
debug "✅ $package erfolgreich installiert"
|
||||
else
|
||||
warning "⚠️ $package Installation fehlgeschlagen"
|
||||
fi
|
||||
fi
|
||||
done < "$CURRENT_DIR/requirements.txt"
|
||||
install_success=true
|
||||
fi
|
||||
|
||||
if [ "$install_success" = false ]; then
|
||||
error "❌ Python-Pakete Installation komplett fehlgeschlagen"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Validiere essenzielle Module mit Python 3.11
|
||||
progress "Validiere essenzielle Python-Module mit Python 3.11..."
|
||||
|
||||
local essential_modules=("flask" "requests" "werkzeug" "jinja2")
|
||||
local validation_success=true
|
||||
|
||||
for module in "${essential_modules[@]}"; do
|
||||
if python3.11 -c "import $module; print(f'✅ $module verfügbar')" 2>/dev/null; then
|
||||
debug "$module erfolgreich importiert"
|
||||
else
|
||||
warning "⚠️ $module nicht verfügbar - versuche Installation..."
|
||||
python3.11 -m pip install "$module" --break-system-packages --no-cache-dir 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
|
||||
# Finale Validierung
|
||||
progress "Finale Modul-Validierung..."
|
||||
for module in "${essential_modules[@]}"; do
|
||||
if python3.11 -c "import $module" 2>/dev/null; then
|
||||
success "✅ $module verfügbar"
|
||||
else
|
||||
warning "⚠️ $module immer noch nicht verfügbar"
|
||||
validation_success=false
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$validation_success" = true ]; then
|
||||
success "✅ Alle essentiellen Python-Module verfügbar"
|
||||
else
|
||||
warning "⚠️ Einige essenzielle Module fehlen - Installation kann trotzdem funktionieren"
|
||||
fi
|
||||
|
||||
# Zeige installierte Pakete mit Python 3.11
|
||||
progress "Zeige installierte Python-Pakete (Python 3.11)..."
|
||||
echo ""
|
||||
echo "📦 Installierte Python-Pakete (Python 3.11):"
|
||||
python3.11 -m pip list 2>/dev/null | grep -E "(Flask|requests|Werkzeug|Jinja2|gunicorn|psutil)" | head -15 || echo " Keine relevanten Pakete gefunden"
|
||||
echo ""
|
||||
|
||||
success "✅ Python-Pakete mit --break-system-packages Installation abgeschlossen"
|
||||
}
|
||||
|
||||
# =========================== ROBUSTE NODE.JS INSTALLATION ===========================
|
||||
install_nodejs_npm() {
|
||||
log "=== ROBUSTE NODE.JS UND NPM INSTALLATION ==="
|
||||
@ -1434,6 +1531,240 @@ remove_desktop_environments() {
|
||||
log "✅ Desktop Environments vollständig entfernt"
|
||||
}
|
||||
|
||||
# =========================== VOLLSTÄNDIGE UMGEBUNGSBEREINIGUNG ===========================
|
||||
complete_environment_cleanup() {
|
||||
log "🧹 VOLLSTÄNDIGE UMGEBUNGSBEREINIGUNG..."
|
||||
|
||||
# Alle laufenden Desktop-Services stoppen
|
||||
progress "Stoppe alle Desktop-Services..."
|
||||
systemctl stop gdm3 2>/dev/null || true
|
||||
systemctl stop lightdm 2>/dev/null || true
|
||||
systemctl stop sddm 2>/dev/null || true
|
||||
systemctl stop xdm 2>/dev/null || true
|
||||
|
||||
# Alle Desktop-Environments vollständig entfernen
|
||||
progress "Entferne alle Desktop-Environments vollständig..."
|
||||
|
||||
# GNOME komplett entfernen
|
||||
if dpkg -l | grep -q gnome; then
|
||||
progress "Entferne GNOME komplett..."
|
||||
apt-get remove --purge -y gnome* gdm3* ubuntu-desktop* ubuntu-session*
|
||||
apt-get remove --purge -y gnome-shell gnome-desktop* gnome-session* gnome-control-center*
|
||||
apt-get remove --purge -y nautilus gedit evince totem rhythmbox
|
||||
fi
|
||||
|
||||
# KDE komplett entfernen
|
||||
if dpkg -l | grep -q kde; then
|
||||
progress "Entferne KDE komplett..."
|
||||
apt-get remove --purge -y kde* plasma* kubuntu-desktop*
|
||||
fi
|
||||
|
||||
# XFCE komplett entfernen
|
||||
if dpkg -l | grep -q xfce; then
|
||||
progress "Entferne XFCE komplett..."
|
||||
apt-get remove --purge -y xfce4* xubuntu-desktop*
|
||||
fi
|
||||
|
||||
# LXDE/LXQt komplett entfernen
|
||||
if dpkg -l | grep -q lxde || dpkg -l | grep -q lxqt; then
|
||||
progress "Entferne LXDE/LXQt komplett..."
|
||||
apt-get remove --purge -y lxde* lxqt* lubuntu-desktop*
|
||||
fi
|
||||
|
||||
# MATE komplett entfernen
|
||||
if dpkg -l | grep -q mate; then
|
||||
progress "Entferne MATE komplett..."
|
||||
apt-get remove --purge -y mate* ubuntu-mate-desktop*
|
||||
fi
|
||||
|
||||
# Cinnamon komplett entfernen
|
||||
if dpkg -l | grep -q cinnamon; then
|
||||
progress "Entferne Cinnamon komplett..."
|
||||
apt-get remove --purge -y cinnamon*
|
||||
fi
|
||||
|
||||
# Alte Python-Installationen bereinigen
|
||||
progress "Bereinige alte Python-Installationen..."
|
||||
apt-get remove --purge -y python3-pip python3-venv python3-virtualenv
|
||||
rm -rf /usr/local/lib/python3.*/dist-packages/* 2>/dev/null || true
|
||||
rm -rf ~/.local/lib/python3.*/site-packages/* 2>/dev/null || true
|
||||
|
||||
# Snap-Pakete entfernen (falls vorhanden)
|
||||
if command -v snap >/dev/null 2>&1; then
|
||||
progress "Entferne Snap-Pakete..."
|
||||
snap list | awk 'NR>1 {print $1}' | xargs -r snap remove 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Flatpak-Pakete entfernen (falls vorhanden)
|
||||
if command -v flatpak >/dev/null 2>&1; then
|
||||
progress "Entferne Flatpak-Pakete..."
|
||||
flatpak uninstall --all -y 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Umfassende Bereinigung
|
||||
apt-get autoremove --purge -y
|
||||
apt-get autoclean
|
||||
apt-get clean
|
||||
|
||||
# Cache-Verzeichnisse bereinigen
|
||||
rm -rf /var/cache/apt/archives/*
|
||||
rm -rf /tmp/*
|
||||
rm -rf /var/tmp/*
|
||||
|
||||
success "✅ Vollständige Umgebungsbereinigung abgeschlossen"
|
||||
}
|
||||
|
||||
# =========================== SAUBERE PYTHON-UMGEBUNG ===========================
|
||||
setup_clean_python_environment() {
|
||||
log "🐍 PYTHON-UMGEBUNG NEU EINRICHTEN..."
|
||||
|
||||
# Python 3.11 Repository hinzufügen (falls nicht vorhanden)
|
||||
progress "Füge Python 3.11 Repository hinzu..."
|
||||
if ! grep -q "deadsnakes" /etc/apt/sources.list.d/* 2>/dev/null; then
|
||||
add-apt-repository ppa:deadsnakes/ppa -y
|
||||
apt-get update
|
||||
fi
|
||||
|
||||
# Python 3.11 und essenzielle Pakete installieren
|
||||
progress "Installiere Python 3.11 und essenzielle Pakete..."
|
||||
apt-get install -y \
|
||||
python3.11 \
|
||||
python3.11-dev \
|
||||
python3.11-venv \
|
||||
python3.11-distutils \
|
||||
python3-pip \
|
||||
build-essential \
|
||||
pkg-config \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libxml2-dev \
|
||||
libxslt1-dev \
|
||||
libjpeg-dev \
|
||||
libpng-dev \
|
||||
zlib1g-dev
|
||||
|
||||
# Python 3.11 als Standard setzen
|
||||
progress "Setze Python 3.11 als Standard..."
|
||||
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
|
||||
update-alternatives --set python3 /usr/bin/python3.11
|
||||
|
||||
# pip für Python 3.11 aktualisieren
|
||||
progress "Aktualisiere pip für Python 3.11..."
|
||||
python3.11 -m pip install --upgrade pip setuptools wheel
|
||||
|
||||
# pip-Konfiguration für --break-system-packages erstellen
|
||||
progress "Konfiguriere pip für System-Pakete..."
|
||||
mkdir -p /etc/pip
|
||||
cat > /etc/pip/pip.conf << 'EOF'
|
||||
[global]
|
||||
break-system-packages = true
|
||||
trusted-host = pypi.org
|
||||
pypi.python.org
|
||||
files.pythonhosted.org
|
||||
timeout = 60
|
||||
retries = 3
|
||||
EOF
|
||||
|
||||
# Benutzer-spezifische pip-Konfiguration
|
||||
mkdir -p ~/.config/pip
|
||||
cp /etc/pip/pip.conf ~/.config/pip/pip.conf
|
||||
|
||||
# Python-Version validieren
|
||||
local python_version=$(python3.11 --version 2>&1)
|
||||
if [[ "$python_version" == *"3.11"* ]]; then
|
||||
success "✅ Python 3.11 erfolgreich installiert: $python_version"
|
||||
else
|
||||
error "❌ Python 3.11 Installation fehlgeschlagen"
|
||||
return 1
|
||||
fi
|
||||
|
||||
success "✅ Saubere Python-Umgebung eingerichtet"
|
||||
}
|
||||
|
||||
# =========================== MINIMALES DESKTOP-ENVIRONMENT ===========================
|
||||
install_minimal_desktop_environment() {
|
||||
log "🖥️ MINIMALES DESKTOP-ENVIRONMENT INSTALLIEREN..."
|
||||
|
||||
# Basis X11 und Window Manager
|
||||
progress "Installiere X11 und minimalen Window Manager..."
|
||||
apt-get install -y \
|
||||
xorg \
|
||||
xserver-xorg \
|
||||
xserver-xorg-video-fbdev \
|
||||
xinit \
|
||||
x11-xserver-utils \
|
||||
openbox \
|
||||
lightdm \
|
||||
lightdm-gtk-greeter \
|
||||
lightdm-gtk-greeter-settings
|
||||
|
||||
# Chromium für Kiosk-Modus
|
||||
progress "Installiere Chromium Browser..."
|
||||
apt-get install -y \
|
||||
chromium-browser \
|
||||
chromium-codecs-ffmpeg-extra
|
||||
|
||||
# Essenzielle Desktop-Tools
|
||||
progress "Installiere essenzielle Desktop-Tools..."
|
||||
apt-get install -y \
|
||||
pcmanfm \
|
||||
lxterminal \
|
||||
leafpad \
|
||||
gvfs \
|
||||
gvfs-backends \
|
||||
udisks2 \
|
||||
policykit-1 \
|
||||
network-manager \
|
||||
network-manager-gnome
|
||||
|
||||
# Audio-Support
|
||||
progress "Installiere Audio-Support..."
|
||||
apt-get install -y \
|
||||
pulseaudio \
|
||||
pulseaudio-utils \
|
||||
alsa-utils \
|
||||
pavucontrol
|
||||
|
||||
# Schriftarten
|
||||
progress "Installiere Schriftarten..."
|
||||
apt-get install -y \
|
||||
fonts-dejavu \
|
||||
fonts-liberation \
|
||||
fonts-noto \
|
||||
ttf-mscorefonts-installer
|
||||
|
||||
# LightDM konfigurieren
|
||||
progress "Konfiguriere LightDM..."
|
||||
cat > /etc/lightdm/lightdm.conf << 'EOF'
|
||||
[Seat:*]
|
||||
autologin-user=kiosk
|
||||
autologin-user-timeout=0
|
||||
user-session=openbox
|
||||
greeter-session=lightdm-gtk-greeter
|
||||
greeter-hide-users=false
|
||||
greeter-allow-guest=false
|
||||
greeter-show-manual-login=true
|
||||
EOF
|
||||
|
||||
# LightDM GTK Greeter konfigurieren
|
||||
cat > /etc/lightdm/lightdm-gtk-greeter.conf << 'EOF'
|
||||
[greeter]
|
||||
background=/usr/share/pixmaps/debian-logo.png
|
||||
theme-name=Adwaita
|
||||
icon-theme-name=Adwaita
|
||||
font-name=Sans 11
|
||||
xft-antialias=true
|
||||
xft-dpi=96
|
||||
xft-hintstyle=slight
|
||||
xft-rgba=rgb
|
||||
show-indicators=~host;~spacer;~clock;~spacer;~session;~language;~a11y;~power
|
||||
show-clock=true
|
||||
clock-format=%H:%M
|
||||
EOF
|
||||
|
||||
success "✅ Minimales Desktop-Environment installiert"
|
||||
}
|
||||
|
||||
# =========================== MINIMALE X11-UMGEBUNG ===========================
|
||||
install_minimal_x11() {
|
||||
log "=== INSTALLIERE MINIMALE X11-UMGEBUNG FÜR KIOSK ==="
|
||||
@ -2038,6 +2369,417 @@ BASHRCFIXED
|
||||
fi
|
||||
}
|
||||
|
||||
# =========================== ROBUSTE AUTOLOGIN-KONFIGURATION ===========================
|
||||
configure_autologin_robust() {
|
||||
log "🔐 ROBUSTE AUTOLOGIN-KONFIGURATION"
|
||||
|
||||
progress "Konfiguriere robusten automatischen Login..."
|
||||
|
||||
# Mehrere Autologin-Methoden parallel konfigurieren
|
||||
local autologin_success=false
|
||||
|
||||
# Methode 1: Getty-Service (Standard)
|
||||
progress "Konfiguriere Getty-Service für Autologin..."
|
||||
local getty_override_dir="/etc/systemd/system/getty@tty1.service.d"
|
||||
mkdir -p "$getty_override_dir"
|
||||
|
||||
cat > "$getty_override_dir/override.conf" << EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --autologin $KIOSK_USER --noclear %I \$TERM
|
||||
Type=idle
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
EOF
|
||||
|
||||
# Methode 2: LightDM Autologin (falls installiert)
|
||||
if [ -f /etc/lightdm/lightdm.conf ]; then
|
||||
progress "Konfiguriere LightDM Autologin..."
|
||||
|
||||
# Backup erstellen
|
||||
cp /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.backup 2>/dev/null || true
|
||||
|
||||
# LightDM für Autologin konfigurieren
|
||||
cat > /etc/lightdm/lightdm.conf << EOF
|
||||
[Seat:*]
|
||||
autologin-user=$KIOSK_USER
|
||||
autologin-user-timeout=0
|
||||
user-session=openbox
|
||||
greeter-session=lightdm-gtk-greeter
|
||||
greeter-hide-users=false
|
||||
greeter-allow-guest=false
|
||||
greeter-show-manual-login=false
|
||||
EOF
|
||||
|
||||
# LightDM aktivieren
|
||||
systemctl enable lightdm 2>/dev/null || true
|
||||
autologin_success=true
|
||||
fi
|
||||
|
||||
# Methode 3: Nodm (minimaler Display Manager)
|
||||
progress "Installiere und konfiguriere nodm als Fallback..."
|
||||
if apt-get install -y nodm 2>/dev/null; then
|
||||
cat > /etc/default/nodm << EOF
|
||||
# nodm configuration
|
||||
NODM_ENABLED=true
|
||||
NODM_USER=$KIOSK_USER
|
||||
NODM_FIRST_VT=7
|
||||
NODM_XSESSION=/home/$KIOSK_USER/.xsession
|
||||
NODM_X_OPTIONS='-nolisten tcp'
|
||||
NODM_MIN_SESSION_TIME=60
|
||||
NODM_X_TIMEOUT=300
|
||||
EOF
|
||||
|
||||
# .xsession für nodm erstellen
|
||||
cat > "/home/$KIOSK_USER/.xsession" << 'EOF'
|
||||
#!/bin/bash
|
||||
exec openbox-session
|
||||
EOF
|
||||
chmod +x "/home/$KIOSK_USER/.xsession"
|
||||
chown "$KIOSK_USER:$KIOSK_USER" "/home/$KIOSK_USER/.xsession"
|
||||
|
||||
systemctl enable nodm 2>/dev/null || true
|
||||
autologin_success=true
|
||||
fi
|
||||
|
||||
# Systemd-Services neu laden
|
||||
systemctl daemon-reload
|
||||
systemctl enable getty@tty1.service
|
||||
|
||||
# Passwort für kiosk-User entfernen (für alle Methoden)
|
||||
progress "Entferne Passwort für automatischen Login..."
|
||||
passwd -d "$KIOSK_USER" 2>/dev/null || warning "Konnte Passwort nicht entfernen"
|
||||
|
||||
# Zusätzliche Sicherheit: User in autologin-Gruppe
|
||||
if ! getent group autologin >/dev/null 2>&1; then
|
||||
groupadd autologin 2>/dev/null || true
|
||||
fi
|
||||
usermod -a -G autologin "$KIOSK_USER" 2>/dev/null || true
|
||||
|
||||
success "✅ Robuste Autologin-Konfiguration abgeschlossen"
|
||||
info " → Getty-Service: Konfiguriert"
|
||||
info " → LightDM: $([ -f /etc/lightdm/lightdm.conf ] && echo "Konfiguriert" || echo "Nicht verfügbar")"
|
||||
info " → Nodm: $(command -v nodm >/dev/null && echo "Installiert" || echo "Nicht verfügbar")"
|
||||
}
|
||||
|
||||
# =========================== ROBUSTE KIOSK-AUTOSTART-KONFIGURATION ===========================
|
||||
configure_kiosk_autostart_robust() {
|
||||
log "🚀 ROBUSTE KIOSK-AUTOSTART-KONFIGURATION"
|
||||
|
||||
local kiosk_home="/home/$KIOSK_USER"
|
||||
|
||||
progress "Erstelle robuste Kiosk-Autostart-Konfiguration..."
|
||||
|
||||
# Erstelle robuste .bashrc mit mehreren Fallback-Strategien
|
||||
cat > "$kiosk_home/.bashrc" << 'BASHRC_ROBUST'
|
||||
#!/bin/bash
|
||||
|
||||
# Robuste Kiosk-Autostart-Konfiguration
|
||||
# Mehrere Fallback-Strategien für maximale Zuverlässigkeit
|
||||
|
||||
# Nur auf tty1 ausführen
|
||||
if [ "$XDG_VTNR" != "1" ] && [ "$(tty)" != "/dev/tty1" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Verhindere mehrfache Ausführung
|
||||
if [ -f /tmp/kiosk-starting ]; then
|
||||
echo "Kiosk-Start bereits in Bearbeitung..."
|
||||
return
|
||||
fi
|
||||
|
||||
# Lock-Datei erstellen
|
||||
touch /tmp/kiosk-starting
|
||||
|
||||
echo "=== ROBUSTER KIOSK-START ==="
|
||||
echo "Benutzer: $(whoami)"
|
||||
echo "TTY: $(tty)"
|
||||
echo "VT: $XDG_VTNR"
|
||||
echo "Display: $DISPLAY"
|
||||
|
||||
# Umgebungsvariablen setzen
|
||||
export HOME=/home/kiosk
|
||||
export USER=kiosk
|
||||
export DISPLAY=:0
|
||||
export XAUTHORITY=/home/kiosk/.Xauthority
|
||||
|
||||
# Funktion: X11-Server starten
|
||||
start_x11_server() {
|
||||
echo "Starte X11-Server..."
|
||||
|
||||
# Alte X-Prozesse beenden
|
||||
pkill -f "X :0" 2>/dev/null || true
|
||||
pkill -f "Xorg" 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
# .Xauthority erstellen
|
||||
if [ ! -f "$XAUTHORITY" ]; then
|
||||
touch "$XAUTHORITY"
|
||||
chmod 600 "$XAUTHORITY"
|
||||
fi
|
||||
|
||||
# X11-Server starten (mehrere Methoden)
|
||||
if [ -x /usr/local/bin/start-x11-kiosk ]; then
|
||||
echo "Verwende optimiertes X11-Start-Skript..."
|
||||
/usr/local/bin/start-x11-kiosk &
|
||||
else
|
||||
echo "Verwende Standard X11-Start..."
|
||||
startx /home/kiosk/.xinitrc -- :0 vt7 -novtswitch &
|
||||
fi
|
||||
|
||||
# Warte auf X11-Server
|
||||
local timeout=30
|
||||
local elapsed=0
|
||||
while [ $elapsed -lt $timeout ]; do
|
||||
if xset q >/dev/null 2>&1; then
|
||||
echo "✅ X11-Server ist bereit"
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
elapsed=$((elapsed + 1))
|
||||
echo "Warte auf X11-Server... ($elapsed/$timeout)"
|
||||
done
|
||||
|
||||
echo "❌ X11-Server timeout nach ${timeout}s"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Funktion: Backend-Verfügbarkeit prüfen
|
||||
wait_for_backend() {
|
||||
echo "Warte auf MYP-Backend..."
|
||||
|
||||
local timeout=120
|
||||
local elapsed=0
|
||||
|
||||
while [ $elapsed -lt $timeout ]; do
|
||||
if curl -s --connect-timeout 2 http://localhost:5000 >/dev/null 2>&1; then
|
||||
echo "✅ MYP-Backend ist verfügbar"
|
||||
return 0
|
||||
fi
|
||||
sleep 2
|
||||
elapsed=$((elapsed + 2))
|
||||
echo "Warte auf Backend... ($elapsed/$timeout)"
|
||||
done
|
||||
|
||||
echo "⚠️ Backend nicht verfügbar nach ${timeout}s - starte trotzdem"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Funktion: Browser starten
|
||||
start_browser() {
|
||||
echo "Starte Browser im Kiosk-Modus..."
|
||||
|
||||
# Browser-Auswahl
|
||||
local browser=""
|
||||
if command -v chromium >/dev/null 2>&1; then
|
||||
browser="chromium"
|
||||
elif command -v chromium-browser >/dev/null 2>&1; then
|
||||
browser="chromium-browser"
|
||||
elif command -v firefox-esr >/dev/null 2>&1; then
|
||||
browser="firefox-esr"
|
||||
else
|
||||
echo "❌ Kein Browser verfügbar"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Verwende Browser: $browser"
|
||||
|
||||
# Bildschirmschoner deaktivieren
|
||||
xset s off 2>/dev/null || true
|
||||
xset s noblank 2>/dev/null || true
|
||||
xset -dpms 2>/dev/null || true
|
||||
|
||||
# Mauszeiger verstecken
|
||||
unclutter -idle 0.1 -root -noevents &
|
||||
|
||||
# Browser-spezifische Konfiguration
|
||||
if [[ "$browser" == "chromium"* ]]; then
|
||||
# Chromium-Verzeichnis erstellen
|
||||
mkdir -p /home/kiosk/.chromium-kiosk
|
||||
|
||||
exec $browser \
|
||||
--kiosk \
|
||||
--no-sandbox \
|
||||
--disable-infobars \
|
||||
--disable-session-crashed-bubble \
|
||||
--disable-restore-session-state \
|
||||
--disable-features=TranslateUI \
|
||||
--disable-extensions \
|
||||
--disable-plugins \
|
||||
--disable-popup-blocking \
|
||||
--disable-prompt-on-repost \
|
||||
--disable-sync \
|
||||
--disable-translate \
|
||||
--noerrdialogs \
|
||||
--no-first-run \
|
||||
--no-default-browser-check \
|
||||
--autoplay-policy=no-user-gesture-required \
|
||||
--start-fullscreen \
|
||||
--start-maximized \
|
||||
--user-data-dir=/home/kiosk/.chromium-kiosk \
|
||||
--disable-background-mode \
|
||||
--force-device-scale-factor=1.0 \
|
||||
--disable-pinch \
|
||||
--overscroll-history-navigation=0 \
|
||||
--disable-dev-shm-usage \
|
||||
--memory-pressure-off \
|
||||
--max_old_space_size=512 \
|
||||
--disable-background-timer-throttling \
|
||||
--disable-backgrounding-occluded-windows \
|
||||
--disable-renderer-backgrounding \
|
||||
--disable-features=VizDisplayCompositor \
|
||||
--enable-features=OverlayScrollbar \
|
||||
--hide-scrollbars \
|
||||
--ignore-certificate-errors \
|
||||
--ignore-ssl-errors \
|
||||
--ignore-certificate-errors-spki-list \
|
||||
--disable-web-security \
|
||||
--allow-running-insecure-content \
|
||||
http://localhost:5000
|
||||
else
|
||||
exec firefox-esr \
|
||||
--kiosk \
|
||||
http://localhost:5000
|
||||
fi
|
||||
}
|
||||
|
||||
# Hauptlogik: Robuster Kiosk-Start
|
||||
main_kiosk_start() {
|
||||
echo "Starte Hauptlogik..."
|
||||
|
||||
# X11-Server starten
|
||||
if ! start_x11_server; then
|
||||
echo "❌ X11-Server Start fehlgeschlagen"
|
||||
rm -f /tmp/kiosk-starting
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Kurz warten für X11-Stabilisierung
|
||||
sleep 3
|
||||
|
||||
# Backend-Verfügbarkeit prüfen (nicht blockierend)
|
||||
wait_for_backend
|
||||
|
||||
# Browser starten
|
||||
start_browser
|
||||
|
||||
# Lock-Datei entfernen
|
||||
rm -f /tmp/kiosk-starting
|
||||
}
|
||||
|
||||
# Nur ausführen wenn DISPLAY nicht gesetzt ist (verhindert Rekursion)
|
||||
if [ -z "$DISPLAY" ]; then
|
||||
main_kiosk_start
|
||||
fi
|
||||
BASHRC_ROBUST
|
||||
|
||||
# .xinitrc für minimale X-Session erstellen
|
||||
cat > "$kiosk_home/.xinitrc" << 'XINITRC_ROBUST'
|
||||
#!/bin/bash
|
||||
|
||||
# Robuste .xinitrc für Kiosk-Modus
|
||||
# Minimale X-Session mit Fehlerbehandlung
|
||||
|
||||
# Umgebungsvariablen setzen
|
||||
export HOME=/home/kiosk
|
||||
export USER=kiosk
|
||||
|
||||
# Fehlerbehandlung aktivieren
|
||||
set -e
|
||||
trap 'echo "Fehler in .xinitrc: $?" >&2' ERR
|
||||
|
||||
# X11-Ressourcen laden (falls vorhanden)
|
||||
if [ -f "$HOME/.Xresources" ]; then
|
||||
xrdb -merge "$HOME/.Xresources" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Openbox-Session starten
|
||||
exec openbox-session
|
||||
XINITRC_ROBUST
|
||||
|
||||
# Berechtigungen setzen
|
||||
chown "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.bashrc"
|
||||
chown "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.xinitrc"
|
||||
chmod +x "$kiosk_home/.xinitrc"
|
||||
|
||||
# Kiosk-Verzeichnisse erstellen
|
||||
mkdir -p "$kiosk_home/.chromium-kiosk"
|
||||
mkdir -p "$kiosk_home/.config"
|
||||
chown -R "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.chromium-kiosk"
|
||||
chown -R "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.config"
|
||||
|
||||
# X11-Autorisierung konfigurieren
|
||||
touch "$kiosk_home/.Xauthority"
|
||||
chown "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.Xauthority"
|
||||
chmod 600 "$kiosk_home/.Xauthority"
|
||||
|
||||
# Systemd-Service für Kiosk-Überwachung erstellen
|
||||
progress "Erstelle Kiosk-Überwachungsservice..."
|
||||
cat > /etc/systemd/system/kiosk-watchdog.service << 'WATCHDOG_SERVICE'
|
||||
[Unit]
|
||||
Description=MYP Kiosk Watchdog
|
||||
After=graphical-session.target
|
||||
Wants=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
ExecStart=/usr/local/bin/kiosk-watchdog.sh
|
||||
Restart=always
|
||||
RestartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
WATCHDOG_SERVICE
|
||||
|
||||
# Kiosk-Watchdog-Skript erstellen
|
||||
cat > /usr/local/bin/kiosk-watchdog.sh << 'WATCHDOG_SCRIPT'
|
||||
#!/bin/bash
|
||||
|
||||
# MYP Kiosk Watchdog
|
||||
# Überwacht und startet Kiosk-Prozesse neu bei Bedarf
|
||||
|
||||
LOG_FILE="/var/log/kiosk-watchdog.log"
|
||||
|
||||
log() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log "Kiosk-Watchdog gestartet"
|
||||
|
||||
while true; do
|
||||
# Prüfe ob kiosk-User eingeloggt ist
|
||||
if ! who | grep -q "kiosk"; then
|
||||
log "Kiosk-User nicht eingeloggt - warte..."
|
||||
sleep 30
|
||||
continue
|
||||
fi
|
||||
|
||||
# Prüfe ob X11-Server läuft
|
||||
if ! pgrep -x "X" >/dev/null && ! pgrep -x "Xorg" >/dev/null; then
|
||||
log "X11-Server nicht gefunden - Neustart erforderlich"
|
||||
# Hier könnte ein Neustart-Mechanismus implementiert werden
|
||||
fi
|
||||
|
||||
# Prüfe ob Browser läuft
|
||||
if ! pgrep -f "chromium.*kiosk" >/dev/null && ! pgrep -f "firefox.*kiosk" >/dev/null; then
|
||||
log "Browser nicht gefunden - könnte Neustart benötigen"
|
||||
fi
|
||||
|
||||
sleep 60
|
||||
done
|
||||
WATCHDOG_SCRIPT
|
||||
|
||||
chmod +x /usr/local/bin/kiosk-watchdog.sh
|
||||
systemctl enable kiosk-watchdog.service 2>/dev/null || true
|
||||
|
||||
success "✅ Robuste Kiosk-Autostart-Konfiguration abgeschlossen"
|
||||
info " → Mehrfache Fallback-Strategien implementiert"
|
||||
info " → X11-Server-Überwachung aktiviert"
|
||||
info " → Browser-Neustart-Mechanismus konfiguriert"
|
||||
info " → Watchdog-Service installiert"
|
||||
}
|
||||
|
||||
# =========================== ROBUSTE SSL-ZERTIFIKATE INSTALLATION ===========================
|
||||
install_ssl_certificates() {
|
||||
log "=== ANTI-HÄNGE SSL-ZERTIFIKATE KONFIGURATION ==="
|
||||
@ -4403,17 +5145,36 @@ install_full_production_system_auto() {
|
||||
# System-Grundkonfiguration
|
||||
configure_hostname
|
||||
|
||||
# PHASE 1: VOLLSTÄNDIGE UMGEBUNGSBEREINIGUNG UND -VORBEREITUNG
|
||||
log "🧹 PHASE 1: UMGEBUNGSBEREINIGUNG UND -VORBEREITUNG"
|
||||
|
||||
# Alle Desktop-Environments vollständig entfernen
|
||||
complete_environment_cleanup
|
||||
|
||||
# System-Updates und Basis-Pakete
|
||||
update_system
|
||||
configure_network_security
|
||||
|
||||
# Python-Umgebung vollständig neu aufsetzen
|
||||
setup_clean_python_environment
|
||||
|
||||
# PHASE 2: DESKTOP-ENVIRONMENT UND X11 INSTALLATION
|
||||
log "🖥️ PHASE 2: DESKTOP-ENVIRONMENT UND X11 INSTALLATION"
|
||||
|
||||
# Minimales aber funktionales Desktop-Environment installieren
|
||||
install_minimal_desktop_environment
|
||||
configure_x11_for_raspberry_pi
|
||||
|
||||
# PHASE 3: ANWENDUNGS-INSTALLATION
|
||||
log "📦 PHASE 3: ANWENDUNGS-INSTALLATION"
|
||||
|
||||
# Intelligente Abhängigkeiten-Installation
|
||||
if [ ! -d "$APP_DIR" ] || [ ! -f "$APP_DIR/app.py" ]; then
|
||||
warning "Anwendung noch nicht deployed - führe vollständige Basis-Installation durch..."
|
||||
warning "Anwendung noch nicht deployed - führe vollständige Installation durch..."
|
||||
|
||||
# Vollständige Basis-Installation
|
||||
update_system
|
||||
configure_network_security
|
||||
install_python_dependencies
|
||||
install_nodejs_npm
|
||||
install_ssl_certificates
|
||||
install_python_packages
|
||||
install_python_packages_with_break_system
|
||||
deploy_application
|
||||
install_npm_dependencies
|
||||
|
||||
@ -4424,15 +5185,29 @@ install_full_production_system_auto() {
|
||||
fix_project_permissions
|
||||
create_permission_fix_script
|
||||
else
|
||||
info "Anwendung bereits deployed - überspringe Basis-Installation"
|
||||
# Trotzdem Netzwerk-Sicherheit aktualisieren
|
||||
configure_network_security
|
||||
info "Anwendung bereits deployed - aktualisiere Python-Pakete"
|
||||
install_python_packages_with_break_system
|
||||
deploy_credentials
|
||||
fi
|
||||
|
||||
# Desktop-Environments entfernen und minimale X11 installieren
|
||||
remove_desktop_environments
|
||||
install_minimal_x11
|
||||
configure_x11_for_raspberry_pi
|
||||
# PHASE 4: KIOSK-SYSTEM KONFIGURATION
|
||||
log "🖥️ PHASE 4: KIOSK-SYSTEM KONFIGURATION"
|
||||
|
||||
# Remote-Zugang konfigurieren (robust)
|
||||
install_remote_access
|
||||
configure_firewall
|
||||
|
||||
# Kiosk-System konfigurieren
|
||||
create_kiosk_user
|
||||
configure_autologin_robust
|
||||
configure_kiosk_autostart_robust
|
||||
|
||||
# PHASE 5: SERVICES UND OPTIMIERUNG
|
||||
log "⚡ PHASE 5: SERVICES UND OPTIMIERUNG"
|
||||
|
||||
# Services installieren und aktivieren (robust)
|
||||
install_systemd_services
|
||||
enable_and_start_services
|
||||
|
||||
# Performance-Optimierungen für Raspberry Pi Webapp
|
||||
optimize_webapp_performance
|
||||
@ -4444,18 +5219,8 @@ install_full_production_system_auto() {
|
||||
info "⏭️ Static Asset Optimierung übersprungen - App noch nicht deployed"
|
||||
fi
|
||||
|
||||
# Remote-Zugang konfigurieren (robust)
|
||||
install_remote_access
|
||||
configure_firewall
|
||||
|
||||
# Kiosk-System konfigurieren
|
||||
create_kiosk_user
|
||||
configure_autologin
|
||||
configure_kiosk_autostart
|
||||
|
||||
# Services installieren und aktivieren (robust)
|
||||
install_systemd_services
|
||||
enable_and_start_services
|
||||
# PHASE 6: SYSTEM-TESTS UND VALIDIERUNG
|
||||
log "🧪 PHASE 6: SYSTEM-TESTS UND VALIDIERUNG"
|
||||
|
||||
# Umfassende System-Tests
|
||||
progress "Führe umfassende Produktions-System-Tests durch..."
|
||||
@ -4472,6 +5237,7 @@ install_full_production_system_auto() {
|
||||
cleanup_old_files
|
||||
|
||||
success "✅ Produktions-Installation abgeschlossen!"
|
||||
warning "🔄 NEUSTART ERFORDERLICH für vollständige Kiosk-Aktivierung!"
|
||||
}
|
||||
|
||||
show_final_summary() {
|
||||
|
BIN
image/Berichtsheft_Till_Tomczak_Mai_Juni_2025/1749539383801.png
Normal file
BIN
image/Berichtsheft_Till_Tomczak_Mai_Juni_2025/1749539383801.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
Reference in New Issue
Block a user