From fc6ba6e87efeea8371b4134bf82812197de5d7b9 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Sun, 1 Jun 2025 15:31:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Optimierung=20der=20RDP-Server-I?= =?UTF-8?q?nstallation=20und=20Firewall-Konfiguration=20im=20Backend=20?= =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F.=20Vereinfachte=20Installation=20von=20xr?= =?UTF-8?q?dp=20und=20XFCE,=20verbesserte=20Fehlerbehandlung=20und=20Valid?= =?UTF-8?q?ierung=20der=20Firewall-Einstellungen.=20Aktualisierte=20Logik?= =?UTF-8?q?=20zur=20=C3=9Cberpr=C3=BCfung=20des=20Dienststatus=20und=20zur?= =?UTF-8?q?=20Konfiguration=20von=20Netzwerkquellen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/README.md | 32 +- backend/database/myp.db | Bin 118784 -> 118784 bytes backend/database/myp.db-wal | Bin 8272 -> 4152 bytes .../docs/CHANGELOG_SETUP_KONSOLIDIERUNG.md | 80 +-- backend/docs/INSTALLATION_DEBIAN_KIOSK.md | 472 ++++++++++++++++- backend/docs/LOGS_FUNCTIONALITY_FIX.md | 207 +++++++- backend/docs/SETUP_ANLEITUNG.md | 220 +++++--- backend/docs/WARTUNGS_MODAL_REPARATUR.md | 270 +++++++++- backend/setup.sh | 474 +++++++++--------- 9 files changed, 1399 insertions(+), 356 deletions(-) diff --git a/backend/README.md b/backend/README.md index bfc12456..d6d216af 100644 --- a/backend/README.md +++ b/backend/README.md @@ -16,10 +16,8 @@ sudo ./setup.sh ``` **Installationsoptionen**: -1. **Nur Abhängigkeiten installieren** - System vorbereiten ohne Kiosk-Modus -2. **Finale Kiosk-Installation** - Vollständige Kiosk-Konfiguration -3. **Nur Services installieren** - Systemd-Services aktualisieren -4. **System-Test** - Funktionalität überprüfen +1. **Abhängigkeiten installieren** - System für manuelles Testen vorbereiten +2. **Vollständige Kiosk-Installation** - Automatischer Kiosk-Modus mit Remote-Zugang **Nach der Installation**: System mit `sudo reboot` neustarten für automatischen Kiosk-Modus. @@ -64,6 +62,7 @@ python app.py --debug - **Chromium-Vollbildmodus** ohne Desktop-Environment - **Automatischer Login** und Browser-Start - **Watchdog-Überwachung** für Systemstabilität +- **Remote-Zugang** via SSH und RDP mit Firewall-Schutz - **Responsive Design** für Desktop-Nutzung ### Sicherheit @@ -71,6 +70,9 @@ python app.py --debug - **CSRF-Schutz** und Session-Management - **Rate-Limiting** und Eingabevalidierung - **Systemd-Service-Isolation** +- **IPv6 vollständig deaktiviert** für erhöhte Sicherheit +- **IP-Spoofing-Schutz** und DDoS-Abwehr +- **TCP-Optimierungen** und RFC-Compliance ## 🏗️ Architektur @@ -144,18 +146,14 @@ backend/ sudo ./setup.sh # Menüoptionen: -# 1. Nur Abhängigkeiten installieren und System vorbereiten -# 2. Finale Installation mit kompletter Kiosk-Modus-Konfiguration -# 3. Nur Services installieren/aktualisieren -# 4. System-Test durchführen -# 5. Beenden +# 1. Abhängigkeiten installieren für manuelles Testen +# 2. Vollständige Kiosk-Installation mit Remote-Zugang +# 3. Beenden ``` **Installationsmodi**: -- **Option 1**: Ideal für Entwicklung und erste Tests -- **Option 2**: Vollständige Produktionsinstallation -- **Option 3**: Service-Updates ohne Systemänderungen -- **Option 4**: Diagnose und Wartung +- **Option 1**: Ideal für Entwicklung, manuelle Tests und Debugging +- **Option 2**: Vollständige Produktionsinstallation mit automatischem Kiosk-Start ### Option 2: Manuelle Installation @@ -209,6 +207,10 @@ sudo systemctl enable myp-kiosk.service ### Netzwerk-Zugriff - **HTTPS**: `https://:443` +### Remote-Zugang (falls konfiguriert) +- **SSH**: `ssh user@` (Passwort: `raspberry`) +- **RDP**: `:3389` (Benutzer: `root`, Passwort: `744563017196A`) + ### Standard-Anmeldedaten - **Benutzername**: `admin` - **Passwort**: `admin123` @@ -271,7 +273,7 @@ curl -k https://localhost:443 openssl s_client -connect localhost:443 -servername localhost # Automatische Tests mit setup.sh -sudo ./setup.sh # Option 4: System-Test +sudo ./setup.sh # Option 5: System-Test ``` ### Log-Dateien @@ -401,7 +403,7 @@ sudo journalctl -u kiosk-watchdog -f ### Support Bei Problemen: -1. **System-Test durchführen**: `sudo ./setup.sh` → Option 4 +1. **System-Test durchführen**: `sudo ./setup.sh` → Option 5 2. **Log-Bundle erstellen**: ```bash sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \ diff --git a/backend/database/myp.db b/backend/database/myp.db index 6d5e4ffa1f92713fc6ecda9ffad4ea006e66374b..6043676d21da3fc31c7ce240bf47b419d1ce6059 100644 GIT binary patch delta 96 zcmZozz}~QceS$RO@`*CejLSDBaO<0zWmP#Ec%&NmW`v}rSA_>yx|C*S=y|2PWrk%N z=<8>=IR^PUmK261I+jHSWtBSRdbp)kPF|oN!eeA$WoV{nXkcz;XxU`2%z$wL00y%j A)c^nh delta 96 zcmZozz}~QceS$ROvWYUzjLSAAaO;~|y16Fj1ey4{xR-|~7nvJcRGFBT>J=n=I|n)! z8x`s0Sq8g1rsStvq#GOQdlp(09e*ExA-^ZTGLSn8MnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zVEBZ93OkFqt#D~^YEf};i_H{(5CAn-aAyDj literal 8272 zcmeHM-EY%Y6pw)>ZGd%~gp9ORvIdA+A|-a4hLlah6o;0!DTDxH(_}gJZE}mhu$@A9 zL9~eRFlq05;gLUK`vWGizhHakb$i&}Ch@X+ukF~^`JfZ8j+#0?=bm%#`JGQE)u;LW zTe*M~L2pg}a7W0)`fBf^sZ*LHZLGQVU?!Vsn;qo`_FK^%4gg)SQY}ZtM zZV^czIg-1=acJ#pydJ%y7mq$13vWI{SF8`eqHAzR|9_oZc)?HMMYHcPXKwc0@t;rb z7yp`mRanc{r>e}E-0!ph(n248w{arRo;$~U>#J=8cn=L^qT>0gFC;&IwAz%Vmdv%J ztD7>H8$8{P8;8;1KiF0_2$DzOQ8t?fIC zX6y9nF=N+mrK3Gp5bFiEy zW6Z!~2fDyZyHE8z*s;(Cqdj)BxxOVe?{gdSeQqA=1kd_*Q(nK`z_j^TiszbgU2e*a zRrxj-lD&~KfwQUgh%|a_jC;FJNuUsLM~ft&Iiy4awL?mbK#h{5>@V{BCyE93{CVc! z9;pc^RNxNONCtY;%?YX^P^<|B0b`L!AF3SqeJ4&gltL8KQTv9i>Vv2qlj10Zb?)l+ z_NFW~aJIfLD8lnlh{XOX^3R^m6xdRUIS>dOWVr)e6QWqOEiZk4oB}1y#kde!TxuvA zHPyn!-1QX_WC=4Y0CbcOVFD)=$R4M|bPhZ_&2MMO{L1f~TMivprGU0~0gVV>JT z&*^(UFcrh@cwYRmNZFlWOb7)ZnyAmHrZcF~6c`5B195W@Q{jL_J+%{u3+gTD6}H|p zs0GCI6#h6yprfd|jtWlP8o~lj7Ncz}f2bZ)*p8?+?}PREjY5Gvb&7fUh`@>+j^8sB zkU_0ETz3`I0O-KeT-`tkSv@pJb+K()%^k5~)*&;bZPzHaPr|~u) z+J&N{kFQc|`2x$b%zl`oXwLC4#@;j)PJ}cmBayffbl1RV;Yf#V@CgqGBpQoM#{g)) zisB>YkMWA3qQNp8C#XP3V_W18){Yg}xjE*AM)D%+PSG__85B_`*hGz4LldZpCcL=F zU^ceJu!Dv-NSlZ;zEYT~HmZnFf#evyPHIXV=Htwqd}gA?L2dn!?dsGKDQ%;33}q$U z15^VUJu4HJXdR(P@`q!0t5GZ{3l(`2-4lk-s>VXIJN#9JF-sID860v$9R@ zqan^ygvg791A`%9{C#!MY)Oapj#6I75TWigwk!@mR#3nk0^tx`rK@`JBrb@T=#gZy zn_N55eZ(NJ{vZ0N$D&7`B=%z_au4`Ev^w!fuLB275oWS)MIr3i9;8~rfYG(BxLt+~ zunp~S;v(@t&JX=Qb*M=JL0my{DhiPZeH0)3(LDPVJ1#zmmlcs*ruZZ8Un-EL;dA`w z)96|ID1I)Fz8Cm&>zBVzAN%ReNkn937jx(@du0e@2xJIk2xJIk2xJIk2xJIk2xJIk z2xJIk2*e0HyTN>#yUaeDI?v8Xk`yph9sMAC#RRSf&^OJcHn5&7pl=2V`K;JJD~M;8 zcb`b*HBjE_wstyC?%k|i>%s2AjZPijeNeu5v0Im#Tay3qt}5-_Z|?T4nrro)zJ&Ec z&qu%d+Ah&1mc>e`Tq%h)PPnwPR9RUR7nZ8E>QXh}ESJgxCoHZAh_kd%5o@(_Ey<~@ Ph~*Vwc|j;wmxbDYWgysT diff --git a/backend/docs/CHANGELOG_SETUP_KONSOLIDIERUNG.md b/backend/docs/CHANGELOG_SETUP_KONSOLIDIERUNG.md index c5ea855c..b4404c68 100644 --- a/backend/docs/CHANGELOG_SETUP_KONSOLIDIERUNG.md +++ b/backend/docs/CHANGELOG_SETUP_KONSOLIDIERUNG.md @@ -2,18 +2,19 @@ ## Übersicht der Änderungen -Diese Version konsolidiert alle bisherigen Installationsskripte in ein einziges, benutzerfreundliches Setup-System. +Diese Version konsolidiert alle bisherigen Installationsskripte in ein einziges, benutzerfreundliches Setup-System mit **vereinfachten 2 Installationsmodi**. ## 🔄 Strukturelle Änderungen ### Neue Dateien -- **`setup.sh`** - Konsolidiertes Hauptinstallationsskript mit Menüführung +- **`setup.sh`** - Konsolidiertes Hauptinstallationsskript mit **2 Hauptoptionen** - **`systemd/`** - Neues Verzeichnis für alle systemd-Service-Dateien - `systemd/myp-https.service` - `systemd/myp-kiosk.service` - `systemd/kiosk-watchdog.service` - `systemd/kiosk-watchdog-python.service` + - `systemd/myp-firewall.service` - **Erweiterte Firewall-Konfiguration** - **`docs/SETUP_ANLEITUNG.md`** - Detaillierte Anleitung für das neue Setup-System ### Entfernte Dateien @@ -27,49 +28,50 @@ Diese Version konsolidiert alle bisherigen Installationsskripte in ein einziges, - **`README.md`** - Vollständig überarbeitet für neues Setup-System - **Version erhöht auf 4.0.0** -## 🚀 Neue Features +## 🔄 Neue Features -### Menügeführte Installation +### Vereinfachte Installation +Das neue `setup.sh` bietet **nur 2 Hauptoptionen** für maximale Benutzerfreundlichkeit: -Das neue `setup.sh` bietet vier verschiedene Installationsmodi: +1. **Abhängigkeiten installieren für manuelles Testen** + - Vollständige Systemvorbereitung + - Alle Abhängigkeiten installiert + - Anwendung deployed und getestet + - Bereit für manuelle Entwicklung + - **Ideal für**: Entwicklung, Tests, Debugging -1. **Nur Abhängigkeiten installieren** +2. **Vollständige Kiosk-Installation mit Remote-Zugang** + - **Automatischer Kiosk-Modus** beim Boot + - **SSH-Zugang**: `user:raspberry` + - **RDP-Zugang**: `root:744563017196A` mit XFCE + - **Erweiterte Firewall**: 192.168.0.0/16 + localhost + m040tbaraspi001 + - **Automatischer Login** und Browser-Start + - **Ideal für**: Produktionsumgebungen, finale Deployment - - Python, Node.js, SSL-Zertifikate - - Anwendungsdeployment - - Minimaler Funktionstest - - Ideal für Entwicklung -2. **Finale Kiosk-Installation** +### Erweiterte Firewall-Konfiguration +- **Netzwerk-Bereich**: `192.168.0.0/16` (erweitert von /24) +- **Localhost-Support**: IPv4 und IPv6 +- **Hostname-Integration**: Automatische Erkennung lokaler und Remote-Hostnames +- **Spezifischer Remote-Host**: `m040tbaraspi001` +- **Automatische Konfiguration** beim Systemstart - - Vollständige Produktionsinstallation - - Desktop-Environment-Entfernung - - Kiosk-Benutzer-Setup - - Service-Aktivierung -3. **Nur Services installieren** +### Automatischer Kiosk-Start +- **Vollautomatische Konfiguration** ohne manuelle Eingriffe +- **X-Server-Autostart** beim Login +- **Browser-Autostart** mit HTTPS-Backend-Erkennung +- **Robuste Fehlerbehandlung** und Fallback-Mechanismen +- **Optimierte Performance** für Kiosk-Umgebungen - - Service-Updates ohne Systemänderungen - - Systemd-Konfiguration neu laden - - Optional: Services aktivieren -4. **System-Test** - - - HTTPS-Verbindungstest - - SSL-Zertifikat-Validierung - - Service-Status-Überprüfung - - Systemressourcen-Monitoring - -### Verbesserte Modularität - -- **Getrennte Installationsphasen** für bessere Kontrolle -- **Fallback-Mechanismen** für robuste Installation -- **Intelligente Abhängigkeitserkennung** -- **Automatische Fehlerbehandlung** - -### Erweiterte Logging-Funktionen - -- **Farbkodierte Ausgabe** für bessere Lesbarkeit -- **Detailliertes Installationslog** (`/var/log/myp-install.log`) -- **Strukturierte Fehlermeldungen** -- **Fortschrittsanzeigen** +### Erweiterte Netzwerk-Sicherheit +- **IPv6 vollständig deaktiviert** auf allen Ebenen (GRUB, Kernel, Firewall) +- **IP-Spoofing-Schutz** mit Reverse Path Filtering +- **SYN-Flood-Schutz** mit optimierten TCP-Einstellungen +- **DDoS-Abwehr** durch Broadcast-Ping-Schutz +- **TCP-RFC-Compliance** verhindert aggressive Paketwiederholungen +- **Optimierte Netzwerk-Performance** durch TCP-Window-Skalierung +- **Anti-Fingerprinting** durch deaktivierte TCP-Timestamps +- **Verdächtige Pakete werden geloggt** (Martian-Pakete) +- **Paketweiterleitung deaktiviert** (kein Router-Verhalten) ## 🔧 Technische Verbesserungen diff --git a/backend/docs/INSTALLATION_DEBIAN_KIOSK.md b/backend/docs/INSTALLATION_DEBIAN_KIOSK.md index 0519ecba..9e75005f 100644 --- a/backend/docs/INSTALLATION_DEBIAN_KIOSK.md +++ b/backend/docs/INSTALLATION_DEBIAN_KIOSK.md @@ -1 +1,471 @@ - \ No newline at end of file +# MYP Druckerverwaltung - Debian/Linux Kiosk-Installation + +## Übersicht + +Diese Anleitung beschreibt die Installation der MYP Druckerverwaltung als vollständigen Kiosk-Modus auf Debian/Linux-Systemen (insbesondere Raspberry Pi OS). Das System wird für den Desktop-Modus optimiert und läuft mit HTTPS auf Port 443. + +## Systemanforderungen + +### Zielplattform +- **Debian/Raspbian** (Raspberry Pi OS empfohlen) +- **Kein Windows-Support** - Windows dient nur als Entwicklungsumgebung +- **Desktop-Modus** - Responsiv, aber keine Touch-Optimierung +- **Chromium-Kiosk-Modus** für die Anzeige + +### Hardware-Anforderungen +- Raspberry Pi 4 (empfohlen) oder vergleichbares Debian-System +- Mindestens 2GB RAM +- 16GB SD-Karte oder größer +- Netzwerkverbindung (Ethernet oder WLAN) +- Monitor mit HDMI-Anschluss + +## Schnellinstallation + +### 1. Repository klonen +```bash +git clone +cd backend +``` + +### 2. Installationsskript ausführen +```bash +sudo chmod +x combined.sh +sudo ./combined.sh +``` + +### 3. Installationsoptionen +Das Skript bietet folgende Optionen: + +1. **System-Abhängigkeiten installieren** + - Python 3, Node.js, npm, SSL-Zertifikate + - Verwendet `pip install --break-system-packages` + - Kein virtuelles Environment + +2. **VOLLSTÄNDIGER KIOSK-MODUS (HTTPS Port 443)** + - ⚠️ **ENTFERNT ALLE DESKTOP-ENVIRONMENTS!** + - Installiert minimale X11-Umgebung + - Erstellt SSL-Zertifikate automatisch + - Konfiguriert Autologin und Chromium-Kiosk + - **NEUSTART ERFORDERLICH!** + +## Detaillierte Installation + +### Schritt 1: System vorbereiten + +```bash +# Als Root ausführen +sudo su + +# System aktualisieren +apt-get update && apt-get upgrade -y + +# Grundlegende Tools installieren +apt-get install -y curl wget git nano htop +``` + +### Schritt 2: Abhängigkeiten installieren + +Das Installationsskript installiert automatisch: + +#### Python-Umgebung +- Python 3.x +- pip (neueste Version) +- Entwicklungstools (build-essential, libssl-dev, etc.) + +#### Node.js und npm +- Node.js LTS +- npm (neueste kompatible Version) +- TailwindCSS und Frontend-Dependencies + +#### Python-Pakete +```bash +# Automatisch installiert mit --break-system-packages +Flask==3.1.1 +Flask-Login==0.6.3 +Flask-WTF==1.2.1 +SQLAlchemy==2.0.36 +bcrypt==4.2.1 +cryptography==44.0.0 +Werkzeug==3.1.3 +requests==2.32.3 +psutil==6.1.1 +gunicorn==23.0.0 +``` + +### Schritt 3: SSL-Zertifikate + +#### Automatische Generierung +Das System generiert automatisch selbstsignierte SSL-Zertifikate: + +```bash +# Zertifikate werden erstellt in: +/opt/myp/certs/localhost/localhost.crt +/opt/myp/certs/localhost/localhost.key + +# Automatisch zum System CA-Store hinzugefügt: +/usr/local/share/ca-certificates/localhost.crt +``` + +#### Manuelle Zertifikat-Generierung +```bash +# Falls erforderlich, manuell generieren: +sudo python3 -c " +import sys; sys.path.insert(0, '/opt/myp') +from utils.ssl_config import ensure_ssl_certificates +ensure_ssl_certificates('/opt/myp', True) +" +``` + +### Schritt 4: Systemd-Services + +#### HTTPS Backend-Service +```bash +# Service-Datei: /etc/systemd/system/myp-https.service +sudo systemctl enable myp-https.service +sudo systemctl start myp-https.service + +# Status prüfen +sudo systemctl status myp-https.service +``` + +#### Kiosk-Browser-Service +```bash +# Service-Datei: /etc/systemd/system/myp-kiosk.service +sudo systemctl enable myp-kiosk.service + +# Wird automatisch nach Autologin gestartet +``` + +### Schritt 5: Kiosk-Konfiguration + +#### Autologin einrichten +```bash +# Getty-Service für automatischen Login +# Konfiguration in: /etc/systemd/system/getty@tty1.service.d/override.conf + +[Service] +ExecStart= +ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM +``` + +#### Browser-Konfiguration +```bash +# Chromium-Kiosk startet automatisch mit: +# - Vollbildmodus +# - SSL-Zertifikat-Ignorierung für localhost +# - Optimierte Performance-Einstellungen +# - URL: https://localhost:443 +``` + +## Konfiguration + +### Netzwerk-Zugriff + +#### HTTPS-URLs +- **Lokal**: `https://localhost:443` +- **Netzwerk**: `https://:443` + +#### Firewall (falls aktiviert) +```bash +# Port 443 öffnen +sudo ufw allow 443/tcp +``` + +### SSL-Zertifikat für Netzwerk-Zugriff + +Für Zugriff von anderen Geräten im Netzwerk: + +```bash +# Zertifikat mit IP-Adresse generieren +sudo python3 -c " +import sys; sys.path.insert(0, '/opt/myp') +from utils.ssl_config import SSLCertificateManager +manager = SSLCertificateManager('/opt/myp') +manager.generate_ssl_certificate(force_regenerate=True) +" +``` + +### Anwendungskonfiguration + +#### Datenbank +- SQLite-Datenbank in `/opt/myp/database/` +- Automatische Backups in `/opt/myp/database/backups/` + +#### Logs +- Anwendungslogs in `/opt/myp/logs/` +- Systemd-Logs: `journalctl -u myp-https -f` + +#### Uploads +- Dateien in `/opt/myp/uploads/` +- Temporäre Dateien in `/opt/myp/uploads/temp/` + +## Wartung und Überwachung + +### Service-Management + +```bash +# HTTPS-Service +sudo systemctl start myp-https.service +sudo systemctl stop myp-https.service +sudo systemctl restart myp-https.service +sudo systemctl status myp-https.service + +# Kiosk-Service +sudo systemctl start myp-kiosk.service +sudo systemctl stop myp-kiosk.service +sudo systemctl status myp-kiosk.service + +# Logs anzeigen +sudo journalctl -u myp-https -f +sudo journalctl -u myp-kiosk -f +``` + +### Watchdog-Service + +Der Watchdog-Service überwacht automatisch: +- HTTPS Backend-Erreichbarkeit +- SSL-Zertifikat-Gültigkeit +- Kiosk-Browser-Status +- Systemressourcen + +```bash +# Watchdog-Service verwalten +sudo systemctl enable kiosk-watchdog.service +sudo systemctl start kiosk-watchdog.service + +# Watchdog-Logs +sudo tail -f /var/log/kiosk-watchdog.log +``` + +### System-Tests + +```bash +# HTTPS-Erreichbarkeit testen +curl -k https://localhost:443 + +# SSL-Zertifikat prüfen +openssl s_client -connect localhost:443 -servername localhost + +# Service-Status prüfen +sudo systemctl is-active myp-https +sudo systemctl is-active myp-kiosk +``` + +## Fehlerbehebung + +### Häufige Probleme + +#### 1. HTTPS nicht erreichbar +```bash +# Service-Status prüfen +sudo systemctl status myp-https.service + +# Logs überprüfen +sudo journalctl -u myp-https -n 50 + +# SSL-Zertifikate neu generieren +sudo python3 /opt/myp/utils/ssl_config.py /opt/myp --force +sudo systemctl restart myp-https.service +``` + +#### 2. Kiosk-Browser startet nicht +```bash +# X-Server-Status prüfen +ps aux | grep X + +# Kiosk-User-Session prüfen +sudo su - kiosk +echo $DISPLAY + +# Browser manuell starten +DISPLAY=:0 chromium --kiosk https://localhost:443 +``` + +#### 3. SSL-Zertifikat-Fehler +```bash +# Zertifikat-Gültigkeit prüfen +openssl x509 -in /opt/myp/certs/localhost/localhost.crt -text -noout + +# Zertifikat neu generieren +sudo rm -rf /opt/myp/certs/localhost/ +sudo python3 /opt/myp/utils/ssl_config.py /opt/myp --force +sudo systemctl restart myp-https.service +``` + +#### 4. Hohe Speichernutzung +```bash +# Speicher-Status prüfen +free -h + +# Browser-Cache leeren +sudo rm -rf /home/kiosk/.chromium-kiosk/Default/Cache/* +sudo rm -rf /home/kiosk/.cache/* + +# System-Cache leeren +sudo sync +sudo echo 3 > /proc/sys/vm/drop_caches +``` + +### Log-Dateien + +#### Anwendungslogs +```bash +# Hauptanwendung +tail -f /opt/myp/logs/app/app.log + +# Authentifizierung +tail -f /opt/myp/logs/auth/auth.log + +# Drucker-Management +tail -f /opt/myp/logs/printers/printers.log + +# Job-Management +tail -f /opt/myp/logs/jobs/jobs.log +``` + +#### Systemlogs +```bash +# HTTPS-Service +sudo journalctl -u myp-https -f + +# Kiosk-Service +sudo journalctl -u myp-kiosk -f + +# Watchdog-Service +sudo tail -f /var/log/kiosk-watchdog.log + +# System-Boot +sudo journalctl -b +``` + +## Sicherheit + +### SSL/TLS-Konfiguration +- TLS 1.2+ erforderlich +- Starke Cipher-Suites +- Selbstsignierte Zertifikate für localhost +- Automatische Zertifikat-Erneuerung + +### Netzwerk-Sicherheit +- HTTPS-only (kein HTTP) +- CSRF-Schutz aktiviert +- Session-Management +- Rate-Limiting + +### System-Sicherheit +- Minimale X11-Umgebung +- Kiosk-User ohne Sudo-Rechte +- Systemd-Service-Isolation +- Read-only Systempartitionen (optional) + +## Performance-Optimierung + +### Browser-Optimierung +```bash +# Chromium-Flags für bessere Performance +--disable-background-mode +--disable-dev-shm-usage +--memory-pressure-off +--max_old_space_size=512 +--disable-background-timer-throttling +``` + +### System-Optimierung +```bash +# GPU-Memory für Raspberry Pi +echo "gpu_mem=128" >> /boot/config.txt + +# Swap-Datei optimieren +sudo dphys-swapfile swapoff +sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=512/' /etc/dphys-swapfile +sudo dphys-swapfile setup +sudo dphys-swapfile swapon +``` + +### Datenbank-Optimierung +```bash +# SQLite-Optimierungen in der Anwendung +PRAGMA journal_mode=WAL; +PRAGMA synchronous=NORMAL; +PRAGMA cache_size=10000; +PRAGMA temp_store=memory; +``` + +## Backup und Wiederherstellung + +### Automatische Backups +```bash +# Datenbank-Backups +/opt/myp/database/backups/ + +# Konfiguration sichern +sudo tar -czf /opt/myp/backups/config-$(date +%Y%m%d).tar.gz \ + /opt/myp/config/ \ + /etc/systemd/system/myp-*.service \ + /home/kiosk/.xinitrc \ + /home/kiosk/.bashrc +``` + +### Wiederherstellung +```bash +# System neu installieren +sudo ./combined.sh + +# Datenbank wiederherstellen +sudo cp backup.db /opt/myp/database/app.db +sudo chown root:root /opt/myp/database/app.db + +# Services neustarten +sudo systemctl restart myp-https.service +``` + +## Updates + +### Anwendungs-Updates +```bash +# Repository aktualisieren +cd /opt/myp +git pull origin main + +# Dependencies aktualisieren +sudo pip3 install -r requirements.txt --break-system-packages --upgrade +sudo npm install + +# Services neustarten +sudo systemctl restart myp-https.service +``` + +### System-Updates +```bash +# System aktualisieren +sudo apt-get update && sudo apt-get upgrade -y + +# Nach Updates neustarten +sudo reboot +``` + +## Support und Dokumentation + +### Weitere Dokumentation +- `docs/API_DOCUMENTATION.md` - API-Referenz +- `docs/CONFIGURATION.md` - Konfigurationsoptionen +- `docs/TROUBLESHOOTING.md` - Erweiterte Fehlerbehebung + +### Logs für Support +```bash +# Support-Informationen sammeln +sudo ./combined.sh # Option 5: System-Tests + +# Log-Bundle erstellen +sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \ + /opt/myp/logs/ \ + /var/log/kiosk-watchdog.log \ + /var/log/myp-install.log +``` + +--- + +**Version**: 3.6.1 +**Letzte Aktualisierung**: Automatisch generiert +**Plattform**: Debian/Linux (Raspberry Pi OS) +**Modus**: HTTPS Kiosk (Port 443) \ No newline at end of file diff --git a/backend/docs/LOGS_FUNCTIONALITY_FIX.md b/backend/docs/LOGS_FUNCTIONALITY_FIX.md index 0519ecba..1ad7ef79 100644 --- a/backend/docs/LOGS_FUNCTIONALITY_FIX.md +++ b/backend/docs/LOGS_FUNCTIONALITY_FIX.md @@ -1 +1,206 @@ - \ No newline at end of file +# Log-Funktionalität Implementierung + +## Problembeschreibung +Die System-Logs im Admin-Dashboard wurden nicht geladen. Die JavaScript-Funktionalität fehlte und die API-Endpunkte waren unvollständig implementiert. + +## Durchgeführte Fixes + +### 1. API-Endpunkte Implementiert + +#### `/api/admin/logs` (GET) +- **Zweck**: Lädt System-Logs für das Admin-Dashboard +- **Features**: + - Multi-Format Log-Parser (unterstützt verschiedene Log-Formate) + - Level-Filter (ERROR, WARNING, INFO, DEBUG, CRITICAL, ALL) + - Suchfunktion in Log-Nachrichten + - Component-Filter nach Log-Kategorien + - Paginierung (limit/offset) + - Automatische Duplikat-Entfernung + - Sortierung nach Timestamp (neueste zuerst) + +#### `/api/admin/logs/export` (GET) +- **Zweck**: Exportiert alle Log-Dateien als ZIP-Archiv +- **Features**: + - Sammelt alle .log Dateien aus dem logs-Verzeichnis + - Erstellt komprimierte ZIP-Datei + - Relativer Pfad-Erhalt in der ZIP-Struktur + - Automatische Dateinamen mit Timestamp + +### 2. JavaScript-Funktionalität + +#### Admin-Dashboard Logs-Management +```javascript +// Neue Funktionen hinzugefügt: +- loadLogs(level = null) // Lädt Logs mit Filter +- displayLogs(logs) // Zeigt Logs formatiert an +- formatLogTimestamp(timestamp) // Formatiert Zeitstempel +- escapeHtml(text) // HTML-Escape für Sicherheit +- exportLogs() // Exportiert Logs als Datei +``` + +#### Event-Handler +- `#refresh-logs-btn` - Logs manuell aktualisieren +- `#export-logs-btn` - Logs exportieren +- `#log-level-filter` - Filter nach Log-Level + +#### Automatisches Laden +- Logs werden automatisch geladen wenn: + - URL-Parameter `tab=logs` gesetzt ist + - Das Logs-Container-Element sichtbar ist + - Die Seite das erste Mal geladen wird und der Logs-Tab aktiv ist + +### 3. HTML-Template Fixes + +#### Progress Bar Fixes +- Entfernt problematische Jinja2-Style-Attribute aus HTML +- Verlagert Style-Definitionen in separaten `