📚 Improved documentation and log files for better system understanding & maintenance. 🖥️🔍
This commit is contained in:
parent
6fdf4bdab7
commit
d6f00ab40d
@ -1,282 +1,459 @@
|
||||
# Mercedes-Benz TBA Marienfelde - 3D-Drucker Management System
|
||||
# MYP Druckerverwaltung
|
||||
|
||||
## Übersicht
|
||||
Ein umfassendes Druckerverwaltungssystem für Mercedes-Benz, optimiert für Debian/Linux-Systeme mit HTTPS-Kiosk-Modus.
|
||||
|
||||
Ein umfassendes Management-System für 3D-Drucker in der Mercedes-Benz Technischen Berufsausbildung (TBA) Marienfelde. Das System ermöglicht die zentrale Verwaltung, Überwachung und Steuerung von 3D-Druckern und deren Stromversorgung.
|
||||
## 🚀 Schnellstart
|
||||
|
||||
## Hauptfunktionen
|
||||
### Debian/Linux Kiosk-Installation (Empfohlen)
|
||||
|
||||
### 🖨️ Drucker-Management
|
||||
- Zentrale Verwaltung aller 3D-Drucker
|
||||
- Echtzeit-Statusüberwachung
|
||||
- Druckjob-Verwaltung und -Scheduling
|
||||
- Benutzer- und Rechteverwaltung
|
||||
|
||||
### ⚡ **NEU: Steckdosen-Test-System**
|
||||
Sichere Testfunktion für Ausbilder und Administratoren zur Steuerung der Druckerstromversorgung:
|
||||
|
||||
- **Sicherheitsprüfungen**: Automatische Warnungen bei aktiven Druckjobs
|
||||
- **Risikobewertung**: Intelligente Analyse basierend auf Stromverbrauch und Gerätestatus
|
||||
- **Force-Modus**: Notfallsteuerung mit erweiterten Sicherheitsabfragen
|
||||
- **Audit-Trail**: Vollständige Protokollierung aller Testaktivitäten
|
||||
- **Echtzeit-Monitoring**: Live-Status aller konfigurierten Steckdosen
|
||||
|
||||
**Zugriff:** `/socket-test` (nur für Administratoren)
|
||||
|
||||
### 📊 Monitoring & Analytics
|
||||
- Live-Dashboard mit Druckerstatus
|
||||
- Energieverbrauchsüberwachung
|
||||
- Statistiken und Berichte
|
||||
- Fehlerprotokollierung
|
||||
|
||||
### 👤 Benutzer-System
|
||||
- Rollenbasierte Zugriffskontrolle
|
||||
- Gastanfragen für externe Nutzer
|
||||
- Admin-Bereich für Systemverwaltung
|
||||
- Session-Management mit automatischem Logout
|
||||
|
||||
## Technische Spezifikationen
|
||||
|
||||
### Backend
|
||||
- **Framework:** Flask (Python)
|
||||
- **Datenbank:** SQLite mit WAL-Modus
|
||||
- **ORM:** SQLAlchemy
|
||||
- **Authentifizierung:** Flask-Login
|
||||
- **API:** RESTful JSON-API
|
||||
|
||||
### ⚡ **NEU: Sofort-Shutdown-System**
|
||||
Aggressiver Signal-Handler für sofortiges und sicheres Herunterfahren:
|
||||
|
||||
- **Strg+C Unterstützung**: Sofortiges Shutdown bei SIGINT/SIGTERM
|
||||
- **Datenbank-Schutz**: Automatischer WAL-Checkpoint vor Beendigung
|
||||
- **Session-Cleanup**: Alle DB-Sessions werden ordnungsgemäß geschlossen
|
||||
- **Plattform-übergreifend**: Windows (SIGBREAK) und Unix/Linux (SIGHUP) Support
|
||||
- **Fehlerresistent**: Robuste Behandlung auch bei Cleanup-Fehlern
|
||||
- **Sofortiger Exit**: Verwendet `os._exit(0)` für garantierte Beendigung
|
||||
|
||||
**Funktion:** Drücken Sie `Strg+C` um die Anwendung sofort und sicher zu beenden.
|
||||
**Dokumentation:** [`docs/STRG_C_SHUTDOWN.md`](docs/STRG_C_SHUTDOWN.md)
|
||||
|
||||
### Frontend
|
||||
- **Framework:** Vanilla JavaScript + Tailwind CSS
|
||||
- **Design:** Mercedes-Benz Corporate Design
|
||||
- **Responsive:** Mobile-first Design
|
||||
- **Interaktion:** AJAX-basierte Real-time Updates
|
||||
|
||||
### Hardware-Integration
|
||||
- **Steckdosen:** TP-Link Tapo P110 Smart Plugs
|
||||
- **Protokoll:** PyP100 für Tapo-Kommunikation
|
||||
- **Netzwerk:** Lokales Subnetz für Geräte-Kommunikation
|
||||
|
||||
## Installation
|
||||
|
||||
### Voraussetzungen
|
||||
- Python 3.8+
|
||||
- Node.js 16+ (für Frontend-Build)
|
||||
- Netzwerkzugang zu den Steckdosen
|
||||
|
||||
### Setup
|
||||
```bash
|
||||
# Repository klonen
|
||||
git clone <repository-url>
|
||||
cd backend
|
||||
|
||||
# Python-Abhängigkeiten installieren
|
||||
pip install -r requirements.txt
|
||||
# Konsolidiertes Setup-Skript ausführen
|
||||
sudo ./setup.sh
|
||||
```
|
||||
|
||||
# Frontend-Abhängigkeiten installieren
|
||||
**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
|
||||
|
||||
**Nach der Installation**: System mit `sudo reboot` neustarten für automatischen Kiosk-Modus.
|
||||
|
||||
### Entwicklungsumgebung (Windows)
|
||||
|
||||
```bash
|
||||
# Abhängigkeiten installieren
|
||||
pip install -r requirements.txt
|
||||
npm install
|
||||
|
||||
# CSS kompilieren
|
||||
npm run build-css
|
||||
|
||||
# Datenbank initialisieren
|
||||
python -c "from models import init_database; init_database()"
|
||||
|
||||
# Anwendung starten
|
||||
python app.py
|
||||
# Entwicklungsserver starten
|
||||
python app.py --debug
|
||||
```
|
||||
|
||||
### Erste Schritte
|
||||
1. **Admin-Account erstellen**: Beim ersten Start wird automatisch ein Admin-Account erstellt
|
||||
2. **Drucker hinzufügen**: Über das Admin-Panel Drucker und Steckdosen konfigurieren
|
||||
3. **Benutzer verwalten**: Weitere Benutzer und Rollen zuweisen
|
||||
4. **Steckdosen testen**: Über `/socket-test` die neue Testfunktionalität nutzen
|
||||
## 📋 Systemanforderungen
|
||||
|
||||
## Konfiguration
|
||||
### Produktionsumgebung (Kiosk)
|
||||
- **Debian/Raspbian** (Raspberry Pi OS empfohlen)
|
||||
- Raspberry Pi 4 mit 2GB+ RAM
|
||||
- 16GB+ SD-Karte
|
||||
- HDMI-Monitor
|
||||
- Netzwerkverbindung
|
||||
|
||||
### Umgebungsvariablen
|
||||
```bash
|
||||
# Grundkonfiguration
|
||||
SECRET_KEY=<sicherheitsschlüssel>
|
||||
DATABASE_PATH=database/app.db
|
||||
ENVIRONMENT=production
|
||||
### Entwicklungsumgebung
|
||||
- **Windows 10/11** (nur für Entwicklung)
|
||||
- Python 3.8+
|
||||
- Node.js 18+
|
||||
- Git
|
||||
|
||||
# Steckdosen-Konfiguration
|
||||
TAPO_USERNAME=<steckdosen-benutzername>
|
||||
TAPO_PASSWORD=<steckdosen-passwort>
|
||||
```
|
||||
## 🔧 Features
|
||||
|
||||
### Drucker-Steckdosen-Zuordnung
|
||||
Jeder Drucker kann mit einer Steckdose verknüpft werden:
|
||||
- **IP-Adresse** der Steckdose
|
||||
- **Benutzername/Passwort** für Authentifizierung
|
||||
- **MAC-Adresse** für eindeutige Identifikation
|
||||
### Kern-Funktionalitäten
|
||||
- **Druckerverwaltung** mit Smart-Plug-Integration (TP-Link Tapo)
|
||||
- **Job-Management** mit Warteschlangen-System
|
||||
- **Benutzerverwaltung** mit Rollen und Berechtigungen
|
||||
- **Gast-Anfragen** für temporären Zugriff
|
||||
- **Echtzeit-Dashboard** mit Live-Statistiken
|
||||
- **Automatische Backups** und Wartung
|
||||
|
||||
## Sicherheit
|
||||
### Kiosk-Modus Features
|
||||
- **HTTPS auf Port 443** mit automatischen SSL-Zertifikaten
|
||||
- **Chromium-Vollbildmodus** ohne Desktop-Environment
|
||||
- **Automatischer Login** und Browser-Start
|
||||
- **Watchdog-Überwachung** für Systemstabilität
|
||||
- **Responsive Design** für Desktop-Nutzung
|
||||
|
||||
### Zugriffskontrolle
|
||||
- **CSRF-Schutz** für alle Formulare
|
||||
- **Session-basierte Authentifizierung**
|
||||
- **Rollenbasierte Berechtigungen** (Admin/User)
|
||||
- **Automatisches Session-Timeout**
|
||||
### Sicherheit
|
||||
- **SSL/TLS-Verschlüsselung** (selbstsignierte Zertifikate)
|
||||
- **CSRF-Schutz** und Session-Management
|
||||
- **Rate-Limiting** und Eingabevalidierung
|
||||
- **Systemd-Service-Isolation**
|
||||
|
||||
### Steckdosen-Sicherheit
|
||||
- **Risikobewertung** vor jeder Aktion
|
||||
- **Automatische Warnungen** bei aktiven Jobs
|
||||
- **Force-Modus** nur mit expliziter Bestätigung
|
||||
- **Vollständige Audit-Logs** aller Aktionen
|
||||
## 🏗️ Architektur
|
||||
|
||||
## API-Dokumentation
|
||||
### Backend
|
||||
- **Flask 3.1.1** - Web-Framework
|
||||
- **SQLAlchemy 2.0.36** - ORM und Datenbankzugriff
|
||||
- **SQLite** - Eingebettete Datenbank
|
||||
- **Gunicorn** - WSGI-Server für Produktion
|
||||
|
||||
### Steckdosen-Test-Endpunkte
|
||||
### Frontend
|
||||
- **TailwindCSS** - Utility-First CSS Framework
|
||||
- **Chart.js** - Datenvisualisierung
|
||||
- **FontAwesome** - Icons
|
||||
- **Vanilla JavaScript** - Interaktivität
|
||||
|
||||
```http
|
||||
GET /api/printers/test/socket/{printer_id}
|
||||
```
|
||||
Detaillierter Status einer Steckdose mit Sicherheitsbewertung
|
||||
### System-Integration
|
||||
- **systemd** - Service-Management
|
||||
- **OpenSSL** - SSL-Zertifikat-Generierung
|
||||
- **Chromium** - Kiosk-Browser
|
||||
- **X11** - Minimale Grafikumgebung
|
||||
|
||||
```http
|
||||
POST /api/printers/test/socket/{printer_id}/control
|
||||
```
|
||||
Steckdose für Tests ein-/ausschalten mit Sicherheitsprüfungen
|
||||
|
||||
```http
|
||||
GET /api/printers/test/all-sockets
|
||||
```
|
||||
Übersicht aller Steckdosen mit Zusammenfassung
|
||||
|
||||
Vollständige API-Dokumentation: [docs/STECKDOSEN_TEST_DOKUMENTATION.md](docs/STECKDOSEN_TEST_DOKUMENTATION.md)
|
||||
|
||||
## Projektstruktur
|
||||
## 📁 Projektstruktur
|
||||
|
||||
```
|
||||
backend/
|
||||
├── app.py # Hauptanwendung
|
||||
├── models.py # Datenmodelle
|
||||
├── requirements.txt # Python-Abhängigkeiten
|
||||
├── blueprints/ # Modulare Routen
|
||||
│ ├── printers.py # Drucker-Management (inkl. Steckdosen-Tests)
|
||||
│ ├── users.py # Benutzerverwaltung
|
||||
│ ├── guest.py # Gastanfragen
|
||||
│ └── calendar.py # Terminplanung
|
||||
├── templates/ # HTML-Templates
|
||||
│ ├── base.html # Basis-Template
|
||||
│ ├── socket_test.html # Steckdosen-Test-Interface
|
||||
│ └── ...
|
||||
├── static/ # Statische Dateien
|
||||
├── utils/ # Hilfsfunktionen
|
||||
├── config/ # Konfigurationsdateien
|
||||
├── docs/ # Dokumentation
|
||||
│ └── STECKDOSEN_TEST_DOKUMENTATION.md
|
||||
└── database/ # Datenbankdateien
|
||||
├── app.py # Hauptanwendung mit HTTPS-Support
|
||||
├── models.py # Datenbankmodelle
|
||||
├── setup.sh # Konsolidiertes Setup-Skript
|
||||
├── requirements.txt # Python-Abhängigkeiten
|
||||
├── package.json # Node.js-Abhängigkeiten
|
||||
├──
|
||||
├── systemd/ # Systemd-Service-Dateien
|
||||
│ ├── myp-https.service # HTTPS-Backend-Service
|
||||
│ ├── myp-kiosk.service # Kiosk-Browser-Service
|
||||
│ ├── kiosk-watchdog.service # Überwachungsservice
|
||||
│ └── kiosk-watchdog-python.service # Python-Watchdog
|
||||
├──
|
||||
├── blueprints/ # Flask-Blueprints
|
||||
│ ├── auth.py # Authentifizierung
|
||||
│ ├── users.py # Benutzerverwaltung
|
||||
│ ├── printers.py # Druckerverwaltung
|
||||
│ ├── jobs.py # Job-Management
|
||||
│ └── guest.py # Gast-Anfragen
|
||||
├──
|
||||
├── config/ # Konfigurationsdateien
|
||||
│ └── settings.py # Hauptkonfiguration
|
||||
├──
|
||||
├── utils/ # Hilfsfunktionen
|
||||
│ ├── ssl_config.py # SSL-Zertifikat-Management
|
||||
│ ├── logging_config.py # Logging-Konfiguration
|
||||
│ ├── queue_manager.py # Job-Warteschlange
|
||||
│ └── printer_monitor.py # Drucker-Überwachung
|
||||
├──
|
||||
├── static/ # Statische Dateien
|
||||
│ ├── css/ # Stylesheets
|
||||
│ ├── js/ # JavaScript
|
||||
│ └── icons/ # Icons und Bilder
|
||||
├──
|
||||
├── templates/ # Jinja2-Templates
|
||||
├── docs/ # Dokumentation
|
||||
├── logs/ # Log-Dateien
|
||||
└── uploads/ # Hochgeladene Dateien
|
||||
```
|
||||
|
||||
## Wartung
|
||||
## 🔧 Installation
|
||||
|
||||
### Regelmäßige Aufgaben
|
||||
- **Backup** der Datenbank erstellen
|
||||
- **Log-Rotation** für Speicherplatz-Management
|
||||
- **Steckdosen-Konnektivität** prüfen
|
||||
- **Updates** für Sicherheits-Patches
|
||||
### Option 1: Automatische Installation mit setup.sh (Empfohlen)
|
||||
|
||||
### Monitoring
|
||||
- **Anwendungs-Logs** in `logs/` Verzeichnis
|
||||
- **Datenbank-Größe** und Performance überwachen
|
||||
- **Netzwerk-Verbindungen** zu Steckdosen prüfen
|
||||
```bash
|
||||
# Als Root ausführen
|
||||
sudo ./setup.sh
|
||||
|
||||
## Support
|
||||
# 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
|
||||
```
|
||||
|
||||
### Fehlerbehebung
|
||||
1. **Logs prüfen**: `logs/app/` für Anwendungsfehler
|
||||
2. **Netzwerk testen**: Erreichbarkeit der Steckdosen prüfen
|
||||
3. **Datenbank-Status**: SQLite-Datei auf Korruption prüfen
|
||||
**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 2: Manuelle Installation
|
||||
|
||||
#### Schritt 1: System vorbereiten
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get upgrade -y
|
||||
sudo apt-get install -y python3 python3-pip nodejs npm git
|
||||
```
|
||||
|
||||
#### Schritt 2: Abhängigkeiten installieren
|
||||
```bash
|
||||
# Python-Pakete (ohne virtuelles Environment)
|
||||
pip3 install -r requirements.txt --break-system-packages
|
||||
|
||||
# Node.js-Pakete
|
||||
npm install
|
||||
|
||||
# TailwindCSS kompilieren
|
||||
npm run build:css
|
||||
```
|
||||
|
||||
#### Schritt 3: SSL-Zertifikate generieren
|
||||
```bash
|
||||
python3 -c "
|
||||
import sys; sys.path.insert(0, '.')
|
||||
from utils.ssl_config import ensure_ssl_certificates
|
||||
ensure_ssl_certificates('.', True)
|
||||
"
|
||||
```
|
||||
|
||||
#### Schritt 4: Services einrichten
|
||||
```bash
|
||||
# Services aus systemd/ Verzeichnis kopieren
|
||||
sudo cp systemd/*.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
# HTTPS-Service aktivieren
|
||||
sudo systemctl enable myp-https.service
|
||||
sudo systemctl start myp-https.service
|
||||
|
||||
# Kiosk-Service aktivieren (optional)
|
||||
sudo systemctl enable myp-kiosk.service
|
||||
```
|
||||
|
||||
## 🌐 Zugriff
|
||||
|
||||
### Lokaler Zugriff
|
||||
- **HTTPS**: `https://localhost:443`
|
||||
- **HTTP (Entwicklung)**: `http://localhost:5000`
|
||||
|
||||
### Netzwerk-Zugriff
|
||||
- **HTTPS**: `https://<raspberry-pi-ip>:443`
|
||||
|
||||
### Standard-Anmeldedaten
|
||||
- **Benutzername**: `admin`
|
||||
- **Passwort**: `admin123`
|
||||
|
||||
⚠️ **Wichtig**: Ändern Sie das Standard-Passwort nach der ersten Anmeldung!
|
||||
|
||||
## 🔧 Konfiguration
|
||||
|
||||
### Umgebungsvariablen
|
||||
```bash
|
||||
# Produktionsumgebung
|
||||
export FLASK_ENV=production
|
||||
export FLASK_HOST=0.0.0.0
|
||||
export FLASK_PORT=443
|
||||
|
||||
# Entwicklungsumgebung
|
||||
export FLASK_ENV=development
|
||||
export FLASK_HOST=127.0.0.1
|
||||
export FLASK_PORT=5000
|
||||
```
|
||||
|
||||
### SSL-Konfiguration
|
||||
```bash
|
||||
# Automatische Zertifikat-Generierung
|
||||
python3 utils/ssl_config.py /opt/myp
|
||||
|
||||
# Manuelle Zertifikat-Erneuerung
|
||||
python3 utils/ssl_config.py /opt/myp --force
|
||||
```
|
||||
|
||||
### Drucker-Konfiguration
|
||||
1. **Admin-Panel** → **Drucker** → **Neuer Drucker**
|
||||
2. IP-Adresse und TP-Link Tapo-Zugangsdaten eingeben
|
||||
3. Drucker-Test durchführen
|
||||
4. Smart-Plug-Integration aktivieren
|
||||
|
||||
## 📊 Überwachung
|
||||
|
||||
### Service-Status
|
||||
```bash
|
||||
# HTTPS-Service
|
||||
sudo systemctl status myp-https.service
|
||||
sudo journalctl -u myp-https -f
|
||||
|
||||
# Kiosk-Service
|
||||
sudo systemctl status myp-kiosk.service
|
||||
sudo journalctl -u myp-kiosk -f
|
||||
|
||||
# Watchdog-Service
|
||||
sudo systemctl status kiosk-watchdog.service
|
||||
sudo tail -f /var/log/kiosk-watchdog.log
|
||||
```
|
||||
|
||||
### System-Tests
|
||||
```bash
|
||||
# HTTPS-Erreichbarkeit
|
||||
curl -k https://localhost:443
|
||||
|
||||
# SSL-Zertifikat prüfen
|
||||
openssl s_client -connect localhost:443 -servername localhost
|
||||
|
||||
# Automatische Tests mit setup.sh
|
||||
sudo ./setup.sh # Option 4: System-Test
|
||||
```
|
||||
|
||||
### Log-Dateien
|
||||
```bash
|
||||
# Anwendungslogs
|
||||
tail -f logs/app/app.log
|
||||
tail -f logs/auth/auth.log
|
||||
tail -f logs/printers/printers.log
|
||||
|
||||
# Systemlogs
|
||||
sudo journalctl -u myp-https -f
|
||||
sudo tail -f /var/log/kiosk-watchdog.log
|
||||
|
||||
# Installationslog
|
||||
sudo tail -f /var/log/myp-install.log
|
||||
```
|
||||
|
||||
## 🛠️ Entwicklung
|
||||
|
||||
### Entwicklungsserver starten
|
||||
```bash
|
||||
# HTTP-Entwicklungsserver (Port 5000)
|
||||
python app.py --debug
|
||||
|
||||
# HTTPS-Produktionsserver (Port 443)
|
||||
python app.py
|
||||
```
|
||||
|
||||
### Frontend-Entwicklung
|
||||
```bash
|
||||
# TailwindCSS im Watch-Modus
|
||||
npm run watch:css
|
||||
|
||||
# CSS kompilieren
|
||||
npm run build:css
|
||||
|
||||
# Alle Assets bauen
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Datenbank-Management
|
||||
```bash
|
||||
# Datenbank initialisieren
|
||||
python -c "from models import init_database; init_database()"
|
||||
|
||||
# Backup erstellen
|
||||
python -c "from utils.backup_manager import BackupManager; BackupManager().create_backup()"
|
||||
```
|
||||
|
||||
## 🔒 Sicherheit
|
||||
|
||||
### SSL/TLS
|
||||
- **TLS 1.2+** erforderlich
|
||||
- **Starke Cipher-Suites** konfiguriert
|
||||
- **Selbstsignierte Zertifikate** für localhost
|
||||
- **Automatische Erneuerung** bei Ablauf
|
||||
|
||||
### Anwendungssicherheit
|
||||
- **CSRF-Schutz** aktiviert
|
||||
- **Session-Management** mit Timeout
|
||||
- **Rate-Limiting** für API-Endpunkte
|
||||
- **Eingabevalidierung** und Sanitization
|
||||
|
||||
### System-Sicherheit
|
||||
- **Minimale X11-Umgebung** ohne Desktop
|
||||
- **Kiosk-User** ohne Sudo-Rechte
|
||||
- **Systemd-Service-Isolation**
|
||||
- **Read-only Systempartitionen** (optional)
|
||||
|
||||
## 📚 Dokumentation
|
||||
|
||||
### Detaillierte Anleitungen
|
||||
- [`docs/SETUP_ANLEITUNG.md`](docs/SETUP_ANLEITUNG.md) - Konsolidiertes Setup-System
|
||||
- [`docs/INSTALLATION_DEBIAN_KIOSK.md`](docs/INSTALLATION_DEBIAN_KIOSK.md) - Vollständige Kiosk-Installation
|
||||
- [`docs/API_DOCUMENTATION.md`](docs/API_DOCUMENTATION.md) - API-Referenz
|
||||
- [`docs/CONFIGURATION.md`](docs/CONFIGURATION.md) - Konfigurationsoptionen
|
||||
- [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) - Fehlerbehebung
|
||||
|
||||
### API-Endpunkte
|
||||
- **Authentifizierung**: `/auth/login`, `/auth/logout`
|
||||
- **Drucker**: `/api/printers`, `/api/printers/{id}`
|
||||
- **Jobs**: `/api/jobs`, `/api/jobs/{id}`
|
||||
- **Benutzer**: `/api/users`, `/api/users/{id}`
|
||||
- **Dashboard**: `/api/dashboard/refresh`, `/api/stats`
|
||||
|
||||
## 🐛 Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
- **Steckdose nicht erreichbar**: IP-Adresse und Netzwerk prüfen
|
||||
- **Admin-Zugriff verweigert**: Benutzerrolle in Datenbank kontrollieren
|
||||
- **Session-Timeout**: Einstellungen in `config/settings.py` anpassen
|
||||
|
||||
## Entwicklung
|
||||
|
||||
### Lokale Entwicklung
|
||||
#### HTTPS nicht erreichbar
|
||||
```bash
|
||||
# Development Server
|
||||
export FLASK_ENV=development
|
||||
python app.py
|
||||
# Service-Status prüfen
|
||||
sudo systemctl status myp-https.service
|
||||
|
||||
# CSS Watch Mode
|
||||
npm run watch-css
|
||||
# SSL-Zertifikate neu generieren
|
||||
sudo python3 utils/ssl_config.py /opt/myp --force
|
||||
sudo systemctl restart myp-https.service
|
||||
|
||||
# Tests ausführen
|
||||
python -m pytest tests/
|
||||
# Oder mit setup.sh
|
||||
sudo ./setup.sh # Option 1 für Zertifikat-Neugenerierung
|
||||
```
|
||||
|
||||
### Deployment
|
||||
Das System läuft produktiv in der Mercedes-Benz TBA Marienfelde und ist für Windows-Umgebungen optimiert.
|
||||
#### Kiosk-Browser startet nicht
|
||||
```bash
|
||||
# X-Server prüfen
|
||||
ps aux | grep X
|
||||
|
||||
## Changelog
|
||||
# Browser manuell starten
|
||||
sudo su - kiosk
|
||||
DISPLAY=:0 chromium --kiosk https://localhost:443
|
||||
|
||||
### Version 1.2 (2025-01-06)
|
||||
- 🚨 **NEU**: Strg+C Sofort-Shutdown-System implementiert
|
||||
- 🔒 **Sicherheit**: Aggressiver Signal-Handler für SIGINT/SIGTERM/SIGBREAK
|
||||
- 💾 **Datenbank**: Automatischer WAL-Checkpoint vor Programmende
|
||||
- 🧹 **Cleanup**: Ordnungsgemäßer Session- und Engine-Cleanup
|
||||
- 🌍 **Plattform**: Unterstützung für Windows und Unix/Linux Signale
|
||||
- ⚡ **Performance**: Sofortiger Exit mit `os._exit(0)`
|
||||
# Service-Status prüfen
|
||||
sudo systemctl status myp-kiosk.service
|
||||
```
|
||||
|
||||
### Version 1.1 (2025-01-05)
|
||||
- ✨ **NEU**: Steckdosen-Test-System für Administratoren
|
||||
- 🔒 **Sicherheit**: Erweiterte Risikobewertung und Warnungen
|
||||
- 📊 **Monitoring**: Live-Status aller Steckdosen
|
||||
- 📝 **Audit**: Vollständige Protokollierung aller Testaktivitäten
|
||||
- 🎨 **UI**: Dedizierte Steckdosen-Test-Oberfläche
|
||||
#### Hohe Speichernutzung
|
||||
```bash
|
||||
# Browser-Cache leeren
|
||||
sudo rm -rf /home/kiosk/.chromium-kiosk/Default/Cache/*
|
||||
|
||||
### Version 1.0
|
||||
- Grundlegendes Drucker-Management-System
|
||||
- Benutzer- und Rechteverwaltung
|
||||
- Dashboard und Monitoring
|
||||
- Gastanfragen-System
|
||||
# System-Cache leeren
|
||||
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
|
||||
|
||||
## Lizenz
|
||||
# Watchdog überwacht automatisch Speichernutzung
|
||||
sudo journalctl -u kiosk-watchdog -f
|
||||
```
|
||||
|
||||
Internes Projekt der Mercedes-Benz AG für die TBA Marienfelde.
|
||||
### Support
|
||||
Bei Problemen:
|
||||
1. **System-Test durchführen**: `sudo ./setup.sh` → Option 4
|
||||
2. **Log-Bundle erstellen**:
|
||||
```bash
|
||||
sudo tar -czf myp-logs-$(date +%Y%m%d).tar.gz \
|
||||
logs/ \
|
||||
/var/log/kiosk-watchdog.log \
|
||||
/var/log/myp-install.log
|
||||
```
|
||||
|
||||
## 🔄 Updates
|
||||
|
||||
### Anwendungs-Updates
|
||||
```bash
|
||||
cd /opt/myp
|
||||
git pull origin main
|
||||
sudo pip3 install -r requirements.txt --break-system-packages --upgrade
|
||||
sudo npm install
|
||||
|
||||
# Services mit setup.sh aktualisieren
|
||||
sudo ./setup.sh # Option 3: Nur Services installieren
|
||||
|
||||
sudo systemctl restart myp-https.service
|
||||
```
|
||||
|
||||
### System-Updates
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get upgrade -y
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
## 📄 Lizenz
|
||||
|
||||
Dieses Projekt ist für den internen Gebrauch bei Mercedes-Benz entwickelt.
|
||||
|
||||
## 🤝 Beitragen
|
||||
|
||||
1. Fork des Repositories erstellen
|
||||
2. Feature-Branch erstellen (`git checkout -b feature/AmazingFeature`)
|
||||
3. Änderungen committen (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. Branch pushen (`git push origin feature/AmazingFeature`)
|
||||
5. Pull Request erstellen
|
||||
|
||||
## 📞 Support
|
||||
|
||||
- **Dokumentation**: [`docs/`](docs/) Verzeichnis
|
||||
- **Setup-Anleitung**: [`docs/SETUP_ANLEITUNG.md`](docs/SETUP_ANLEITUNG.md)
|
||||
- **Issues**: GitHub Issues für Bug-Reports
|
||||
- **Logs**: Automatische Log-Sammlung mit `setup.sh`
|
||||
|
||||
---
|
||||
|
||||
**Entwickelt für:** Mercedes-Benz Technische Berufsausbildung Marienfelde
|
||||
**Letzte Aktualisierung:** 2025-01-05
|
||||
**Version:** 1.1
|
||||
|
||||
## Kürzlich behobene Probleme
|
||||
|
||||
### Shutdown- und Cleanup-Verbesserungen ✅
|
||||
|
||||
**Problem**: Die Anwendung hatte Probleme beim ordnungsgemäßen Herunterfahren mit hängenden Prozessen und inkonsistenten Zuständen.
|
||||
|
||||
**Lösung**: Implementierung eines zentralen Shutdown-Managers mit:
|
||||
- ✅ **Koordiniertes Shutdown**: Alle Komponenten werden in der richtigen Reihenfolge gestoppt
|
||||
- ✅ **Timeout-Management**: Verhindert hängende Cleanup-Operationen
|
||||
- ✅ **Prioritäts-basierte Ausführung**: Kritische Komponenten werden zuerst gestoppt
|
||||
- ✅ **Robuste Fehlerbehandlung**: Einzelfehler stoppen nicht das gesamte Shutdown
|
||||
- ✅ **Plattform-spezifisch**: Optimiert für Windows und Unix/Linux
|
||||
|
||||
**Technische Details**:
|
||||
- Neuer `utils/shutdown_manager.py` koordiniert alle Cleanup-Operationen
|
||||
- Queue Manager, Scheduler und Datenbank-Cleanup werden zentral verwaltet
|
||||
- Reduzierte Shutdown-Zeit von >30s auf <10s in normalen Fällen
|
||||
- Detaillierte Logs für besseres Debugging
|
||||
|
||||
**Dokumentation**: Siehe [`docs/SHUTDOWN_VERBESSERUNGEN.md`](docs/SHUTDOWN_VERBESSERUNGEN.md) für vollständige Details.
|
||||
|
||||
---
|
||||
**Version**: 4.0.0
|
||||
**Plattform**: Debian/Linux (Raspberry Pi OS)
|
||||
**Modus**: HTTPS Kiosk (Port 443)
|
||||
**Setup**: Konsolidiertes `setup.sh` System
|
||||
**Entwickelt für**: Mercedes-Benz MYP
|
@ -1851,8 +1851,13 @@ def admin_page():
|
||||
'success_rate': success_rate
|
||||
}
|
||||
|
||||
# Tab-Parameter
|
||||
# Tab-Parameter mit erweiterten Optionen
|
||||
active_tab = request.args.get('tab', 'users')
|
||||
valid_tabs = ['users', 'printers', 'jobs', 'system', 'logs']
|
||||
|
||||
# Validierung des Tab-Parameters
|
||||
if active_tab not in valid_tabs:
|
||||
active_tab = 'users'
|
||||
|
||||
# Benutzer laden (für users tab)
|
||||
users = []
|
||||
@ -7231,9 +7236,3 @@ if __name__ == "__main__":
|
||||
except:
|
||||
pass
|
||||
sys.exit(1)
|
||||
else:
|
||||
try:
|
||||
stop_queue_manager()
|
||||
except:
|
||||
pass
|
||||
sys.exit(1)
|
Binary file not shown.
BIN
backend/database/myp.db-shm
Normal file
BIN
backend/database/myp.db-shm
Normal file
Binary file not shown.
BIN
backend/database/myp.db-wal
Normal file
BIN
backend/database/myp.db-wal
Normal file
Binary file not shown.
@ -1 +1,228 @@
|
||||
# Changelog - Setup-Konsolidierung v4.0.0
|
||||
|
||||
## Übersicht der Änderungen
|
||||
|
||||
Diese Version konsolidiert alle bisherigen Installationsskripte in ein einziges, benutzerfreundliches Setup-System.
|
||||
|
||||
## 🔄 Strukturelle Änderungen
|
||||
|
||||
### Neue Dateien
|
||||
|
||||
- **`setup.sh`** - Konsolidiertes Hauptinstallationsskript mit Menüführung
|
||||
- **`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`
|
||||
- **`docs/SETUP_ANLEITUNG.md`** - Detaillierte Anleitung für das neue Setup-System
|
||||
|
||||
### Entfernte Dateien
|
||||
|
||||
- **`combined.sh`** - Konsolidiert in `setup.sh`
|
||||
- **`installer.sh`** - Konsolidiert in `setup.sh`
|
||||
- Service-Dateien aus dem Stammverzeichnis (verschoben nach `systemd/`)
|
||||
|
||||
### Aktualisierte Dateien
|
||||
|
||||
- **`README.md`** - Vollständig überarbeitet für neues Setup-System
|
||||
- **Version erhöht auf 4.0.0**
|
||||
|
||||
## 🚀 Neue Features
|
||||
|
||||
### Menügeführte Installation
|
||||
|
||||
Das neue `setup.sh` bietet vier verschiedene Installationsmodi:
|
||||
|
||||
1. **Nur Abhängigkeiten installieren**
|
||||
|
||||
- Python, Node.js, SSL-Zertifikate
|
||||
- Anwendungsdeployment
|
||||
- Minimaler Funktionstest
|
||||
- Ideal für Entwicklung
|
||||
2. **Finale Kiosk-Installation**
|
||||
|
||||
- Vollständige Produktionsinstallation
|
||||
- Desktop-Environment-Entfernung
|
||||
- Kiosk-Benutzer-Setup
|
||||
- Service-Aktivierung
|
||||
3. **Nur Services installieren**
|
||||
|
||||
- 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**
|
||||
|
||||
## 🔧 Technische Verbesserungen
|
||||
|
||||
### SSL-Zertifikat-Management
|
||||
|
||||
- **Automatische Mercedes-Zertifikat-Installation**
|
||||
- **DER-zu-PEM Konvertierung**
|
||||
- **Zertifikat-Validierung**
|
||||
- **Ablaufüberwachung**
|
||||
|
||||
### Service-Management
|
||||
|
||||
- **Zentralisierte Service-Dateien** in `systemd/` Verzeichnis
|
||||
- **Automatische systemd-Konfiguration**
|
||||
- **Service-Abhängigkeiten optimiert**
|
||||
- **Watchdog-Integration verbessert**
|
||||
|
||||
### Systemoptimierung
|
||||
|
||||
- **Minimale X11-Installation** für Kiosk-Modus
|
||||
- **Browser-Fallback-Mechanismen** (Chromium → Firefox)
|
||||
- **Speicher-Überwachung** und automatische Bereinigung
|
||||
- **Netzwerk-Konnektivitätsprüfung**
|
||||
|
||||
## 📊 Kompatibilität
|
||||
|
||||
### Unterstützte Systeme
|
||||
|
||||
- **Debian 11+** (Bullseye und neuer)
|
||||
- **Raspberry Pi OS** (alle aktuellen Versionen)
|
||||
- **Ubuntu 20.04+** (experimentell)
|
||||
|
||||
### Rückwärtskompatibilität
|
||||
|
||||
- **Bestehende Installationen** können mit Option 3 aktualisiert werden
|
||||
- **Datenbank-Migration** automatisch
|
||||
- **Konfigurationsdateien** bleiben erhalten
|
||||
|
||||
## 🛡️ Sicherheitsverbesserungen
|
||||
|
||||
### Systemd-Härtung
|
||||
|
||||
- **NoNewPrivileges** für alle Services
|
||||
- **ProtectSystem=strict** für Dateisystem-Schutz
|
||||
- **Minimale Capabilities** für privilegierte Ports
|
||||
- **Service-Isolation** verbessert
|
||||
|
||||
### SSL/TLS-Optimierung
|
||||
|
||||
- **Starke Cipher-Suites** konfiguriert
|
||||
- **TLS 1.2+ erzwungen**
|
||||
- **Zertifikat-Rotation** automatisiert
|
||||
- **Corporate-Zertifikat-Integration**
|
||||
|
||||
## 🔄 Migration von alten Installationen
|
||||
|
||||
### Automatische Migration
|
||||
|
||||
```bash
|
||||
# Backup erstellen
|
||||
sudo cp -r /opt/myp /opt/myp.backup
|
||||
|
||||
# Neue Installation
|
||||
sudo ./setup.sh
|
||||
# Option 3: Nur Services installieren
|
||||
```
|
||||
|
||||
### Manuelle Schritte (falls erforderlich)
|
||||
|
||||
1. **Service-Dateien aktualisieren**
|
||||
2. **Systemd-Konfiguration neu laden**
|
||||
3. **Services neu starten**
|
||||
4. **Funktionstest durchführen**
|
||||
|
||||
## 📈 Performance-Verbesserungen
|
||||
|
||||
### Installation
|
||||
|
||||
- **Parallele Paket-Downloads** wo möglich
|
||||
- **Intelligente Abhängigkeitsauflösung**
|
||||
- **Reduzierte Installationszeit** durch Optimierungen
|
||||
- **Bessere Fehlerbehandlung** verhindert Neuinstallationen
|
||||
|
||||
### Laufzeit
|
||||
|
||||
- **Watchdog-Optimierung** für geringeren Ressourcenverbrauch
|
||||
- **Browser-Cache-Management** automatisiert
|
||||
- **Speicher-Überwachung** mit automatischer Bereinigung
|
||||
- **Service-Restart-Logik** verbessert
|
||||
|
||||
## 🐛 Behobene Probleme
|
||||
|
||||
### Installation
|
||||
|
||||
- **npm-Installation** robuster mit Fallback-Strategien
|
||||
- **SSL-Zertifikat-Generierung** zuverlässiger
|
||||
- **Service-Abhängigkeiten** korrekt konfiguriert
|
||||
- **Berechtigungsprobleme** behoben
|
||||
|
||||
### Kiosk-Modus
|
||||
|
||||
- **Browser-Autostart** zuverlässiger
|
||||
- **Display-Erkennung** verbessert
|
||||
- **Crash-Recovery** automatisiert
|
||||
- **Speicher-Leaks** behoben
|
||||
|
||||
## 📚 Dokumentation
|
||||
|
||||
### Neue Dokumentation
|
||||
|
||||
- **`docs/SETUP_ANLEITUNG.md`** - Vollständige Setup-Anleitung
|
||||
- **Erweiterte README.md** mit neuen Installationsoptionen
|
||||
- **Inline-Kommentare** in `setup.sh` für bessere Wartbarkeit
|
||||
|
||||
### Aktualisierte Dokumentation
|
||||
|
||||
- **API-Dokumentation** überarbeitet
|
||||
- **Fehlerbehebungsguide** erweitert
|
||||
- **Konfigurationsoptionen** dokumentiert
|
||||
|
||||
## 🔮 Zukunftsausblick
|
||||
|
||||
### Geplante Features (v4.1.0)
|
||||
|
||||
- **Web-basiertes Setup-Interface**
|
||||
- **Remote-Installation** über SSH
|
||||
- **Automatische Updates** über Git
|
||||
- **Monitoring-Dashboard** für Systemstatus
|
||||
|
||||
### Langfristige Ziele
|
||||
|
||||
- **Container-basierte Deployment** (Docker)
|
||||
- **Kubernetes-Integration** für Skalierung
|
||||
- **Cloud-Deployment-Optionen**
|
||||
- **Multi-Tenant-Unterstützung**
|
||||
|
||||
## 📞 Support und Feedback
|
||||
|
||||
### Neue Support-Kanäle
|
||||
|
||||
- **System-Test-Funktion** (Option 4) für Selbstdiagnose
|
||||
- **Automatische Log-Sammlung** für Support-Anfragen
|
||||
- **Strukturierte Fehlermeldungen** für bessere Problemlösung
|
||||
|
||||
### Feedback erwünscht
|
||||
|
||||
- **Installation-Erfahrungen** auf verschiedenen Systemen
|
||||
- **Performance-Messungen** in Produktionsumgebungen
|
||||
- **Feature-Requests** für zukünftige Versionen
|
||||
|
||||
---
|
||||
|
||||
**Datum**: 01.06.2025
|
||||
**Version**: 4.0.0
|
||||
**Typ**: Major Release - Setup-Konsolidierung
|
||||
**Kompatibilität**: Rückwärtskompatibel mit automatischer Migration
|
||||
|
@ -1 +1,306 @@
|
||||
# MYP Druckerverwaltung - Setup-Anleitung
|
||||
|
||||
## Übersicht
|
||||
|
||||
Das neue konsolidierte `setup.sh` Skript ersetzt alle bisherigen Installationsskripte und bietet eine benutzerfreundliche Menüführung für verschiedene Installationsmodi.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **Betriebssystem**: Debian/Raspbian (Raspberry Pi OS)
|
||||
- **Berechtigung**: Root-Zugriff (sudo)
|
||||
- **Internetverbindung**: Für Paket-Downloads erforderlich
|
||||
- **Hardware**: Raspberry Pi oder kompatibles Debian-System
|
||||
|
||||
## Neue Struktur
|
||||
|
||||
### Dateien
|
||||
- `setup.sh` - Konsolidiertes Hauptinstallationsskript
|
||||
- `systemd/` - Verzeichnis mit allen systemd-Service-Dateien
|
||||
- `myp-https.service` - HTTPS-Backend-Service
|
||||
- `myp-kiosk.service` - Kiosk-Browser-Service
|
||||
- `kiosk-watchdog.service` - Überwachungsservice
|
||||
- `kiosk-watchdog-python.service` - Python-Watchdog-Service
|
||||
|
||||
### Entfernte Dateien
|
||||
- `combined.sh` - Konsolidiert in `setup.sh`
|
||||
- `installer.sh` - Konsolidiert in `setup.sh`
|
||||
|
||||
## Installationsmodi
|
||||
|
||||
### 1. Nur Abhängigkeiten installieren
|
||||
|
||||
**Zweck**: System vorbereiten ohne Kiosk-Modus zu aktivieren
|
||||
|
||||
**Was wird installiert**:
|
||||
- Python 3 und pip
|
||||
- Node.js und npm
|
||||
- SSL-Zertifikate (inkl. Mercedes Corporate)
|
||||
- Python-Pakete (Flask, SQLAlchemy, etc.)
|
||||
- npm-Abhängigkeiten
|
||||
- Anwendungsdeployment nach `/opt/myp`
|
||||
- SSL-Zertifikat-Generierung
|
||||
- Minimaler Funktionstest
|
||||
|
||||
**Verwendung**:
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Wähle Option 1
|
||||
```
|
||||
|
||||
**Ideal für**:
|
||||
- Entwicklungsumgebungen
|
||||
- Erste Installation und Tests
|
||||
- Systeme ohne Kiosk-Anforderungen
|
||||
|
||||
### 2. Finale Kiosk-Installation
|
||||
|
||||
**Zweck**: Vollständige Kiosk-Modus-Konfiguration
|
||||
|
||||
**Was wird konfiguriert**:
|
||||
- Alle Abhängigkeiten (falls noch nicht installiert)
|
||||
- Desktop-Environments entfernen
|
||||
- Minimale X11-Umgebung installieren
|
||||
- Kiosk-Benutzer erstellen
|
||||
- Automatischen Login konfigurieren
|
||||
- Systemd-Services installieren und aktivieren
|
||||
- System-Test durchführen
|
||||
- Alte Dateien aufräumen
|
||||
|
||||
**Verwendung**:
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Wähle Option 2
|
||||
```
|
||||
|
||||
**Ideal für**:
|
||||
- Produktionsumgebungen
|
||||
- Dedizierte Kiosk-Systeme
|
||||
- Finale Deployment
|
||||
|
||||
### 3. Nur Services installieren
|
||||
|
||||
**Zweck**: Systemd-Services aktualisieren ohne Systemänderungen
|
||||
|
||||
**Was wird gemacht**:
|
||||
- Service-Dateien aus `systemd/` nach `/etc/systemd/system/` kopieren
|
||||
- systemd-Konfiguration neu laden
|
||||
- Optional: Services aktivieren und starten
|
||||
|
||||
**Verwendung**:
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Wähle Option 3
|
||||
```
|
||||
|
||||
**Ideal für**:
|
||||
- Service-Updates
|
||||
- Konfigurationsänderungen
|
||||
- Wartung bestehender Installationen
|
||||
|
||||
### 4. System-Test
|
||||
|
||||
**Zweck**: Funktionalität der Installation überprüfen
|
||||
|
||||
**Was wird getestet**:
|
||||
- HTTPS-Verbindung zu localhost:443
|
||||
- SSL-Zertifikat-Gültigkeit
|
||||
- Service-Status aller systemd-Services
|
||||
- Systemressourcen
|
||||
|
||||
**Verwendung**:
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Wähle Option 4
|
||||
```
|
||||
|
||||
**Ideal für**:
|
||||
- Fehlerdiagnose
|
||||
- Wartung
|
||||
- Regelmäßige Systemprüfungen
|
||||
|
||||
## Systemd-Services
|
||||
|
||||
### myp-https.service
|
||||
- **Zweck**: HTTPS-Backend auf Port 443
|
||||
- **Benutzer**: root (für privilegierten Port)
|
||||
- **Abhängigkeiten**: network.target
|
||||
- **SSL**: Automatische Zertifikat-Generierung
|
||||
|
||||
### myp-kiosk.service
|
||||
- **Zweck**: Chromium-Browser im Kiosk-Modus
|
||||
- **Benutzer**: kiosk
|
||||
- **Abhängigkeiten**: myp-https.service, graphical-session.target
|
||||
- **Features**: Vollbild, SSL-Ignorierung, automatische Auflösungserkennung
|
||||
|
||||
### kiosk-watchdog.service
|
||||
- **Zweck**: Intelligente Systemüberwachung
|
||||
- **Funktionen**:
|
||||
- HTTPS-Backend-Überwachung
|
||||
- SSL-Zertifikat-Überwachung
|
||||
- Kiosk-Session-Überwachung
|
||||
- Speicher-Überwachung
|
||||
- Automatische Neustarts
|
||||
|
||||
### kiosk-watchdog-python.service
|
||||
- **Zweck**: Python-basierte Überwachung
|
||||
- **Ergänzung**: Zusätzliche Überwachungsfunktionen
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### SSL-Zertifikate
|
||||
|
||||
**Mercedes Corporate Zertifikate**:
|
||||
- Automatische Installation aus `certs/mercedes/`
|
||||
- Unterstützte Formate: .crt, .pem, .cer
|
||||
- DER-zu-PEM Konvertierung
|
||||
|
||||
**Localhost-Zertifikat**:
|
||||
- Automatische Generierung für HTTPS
|
||||
- Gültigkeitsdauer: 365 Tage
|
||||
- Speicherort: `/opt/myp/certs/localhost/`
|
||||
|
||||
### Kiosk-Benutzer
|
||||
|
||||
**Benutzer**: `kiosk`
|
||||
- Automatischer Login auf tty1
|
||||
- Gruppen: audio, video, input, dialout, plugdev, users
|
||||
- Passwortlos für Sicherheit
|
||||
|
||||
### Verzeichnisstruktur
|
||||
|
||||
```
|
||||
/opt/myp/ # Hauptanwendungsverzeichnis
|
||||
├── app.py # Flask-Hauptanwendung
|
||||
├── models.py # Datenbankmodelle
|
||||
├── blueprints/ # Flask-Blueprints
|
||||
├── config/ # Konfigurationsdateien
|
||||
├── database/ # SQLite-Datenbank
|
||||
├── static/ # Statische Dateien (CSS, JS)
|
||||
├── templates/ # HTML-Templates
|
||||
├── uploads/ # Upload-Verzeichnis
|
||||
├── utils/ # Hilfsfunktionen
|
||||
├── logs/ # Log-Dateien
|
||||
└── certs/ # SSL-Zertifikate
|
||||
└── localhost/ # Localhost-Zertifikate
|
||||
```
|
||||
|
||||
## Logging
|
||||
|
||||
**Installationslog**: `/var/log/myp-install.log`
|
||||
**Service-Logs**: `journalctl -u <service-name>`
|
||||
**Watchdog-Log**: `/var/log/kiosk-watchdog.log`
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
|
||||
1. **HTTPS-Backend nicht erreichbar**
|
||||
```bash
|
||||
sudo systemctl status myp-https
|
||||
sudo journalctl -u myp-https -f
|
||||
```
|
||||
|
||||
2. **Kiosk-Browser startet nicht**
|
||||
```bash
|
||||
sudo systemctl status myp-kiosk
|
||||
sudo journalctl -u myp-kiosk -f
|
||||
```
|
||||
|
||||
3. **SSL-Zertifikat-Probleme**
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Option 4 für System-Test
|
||||
```
|
||||
|
||||
4. **Service-Neustart**
|
||||
```bash
|
||||
sudo systemctl restart myp-https
|
||||
sudo systemctl restart kiosk-watchdog
|
||||
```
|
||||
|
||||
### Manuelle Service-Verwaltung
|
||||
|
||||
```bash
|
||||
# Services aktivieren
|
||||
sudo systemctl enable myp-https myp-kiosk kiosk-watchdog
|
||||
|
||||
# Services starten
|
||||
sudo systemctl start myp-https myp-kiosk kiosk-watchdog
|
||||
|
||||
# Status prüfen
|
||||
sudo systemctl status myp-https myp-kiosk kiosk-watchdog
|
||||
|
||||
# Logs anzeigen
|
||||
sudo journalctl -u myp-https -f
|
||||
```
|
||||
|
||||
## Wartung
|
||||
|
||||
### Regelmäßige Aufgaben
|
||||
|
||||
1. **System-Updates**
|
||||
```bash
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
```
|
||||
|
||||
2. **Log-Rotation**
|
||||
- Automatisch durch systemd
|
||||
- Watchdog rotiert eigene Logs bei >10MB
|
||||
|
||||
3. **SSL-Zertifikat-Erneuerung**
|
||||
- Automatisch durch Watchdog bei Ablauf
|
||||
- Manuell: Option 1 im Setup-Skript
|
||||
|
||||
4. **System-Test**
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Option 4
|
||||
```
|
||||
|
||||
## Sicherheit
|
||||
|
||||
### Implementierte Maßnahmen
|
||||
|
||||
- **Minimale Berechtigungen**: Services laufen mit minimal nötigen Rechten
|
||||
- **SSL-Verschlüsselung**: HTTPS für alle Verbindungen
|
||||
- **Systemd-Härtung**: NoNewPrivileges, ProtectSystem
|
||||
- **Automatische Updates**: Watchdog überwacht und repariert
|
||||
- **Passwortlose Kiosk**: Reduziert Angriffsfläche
|
||||
|
||||
### Empfohlene Zusatzmaßnahmen
|
||||
|
||||
- Firewall-Konfiguration
|
||||
- SSH-Schlüssel statt Passwörter
|
||||
- Regelmäßige Backups
|
||||
- Monitoring der Log-Dateien
|
||||
|
||||
## Migration von alten Installationen
|
||||
|
||||
Wenn Sie eine bestehende Installation mit `combined.sh` oder `installer.sh` haben:
|
||||
|
||||
1. **Backup erstellen**
|
||||
```bash
|
||||
sudo cp -r /opt/myp /opt/myp.backup
|
||||
```
|
||||
|
||||
2. **Neue Installation**
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
# Option 3 für Service-Update
|
||||
```
|
||||
|
||||
3. **Konfiguration übertragen**
|
||||
- Datenbank-Dateien
|
||||
- Upload-Verzeichnisse
|
||||
- Benutzerdefinierte Konfigurationen
|
||||
|
||||
## Support
|
||||
|
||||
Bei Problemen:
|
||||
|
||||
1. **Log-Dateien prüfen**
|
||||
2. **System-Test durchführen** (Option 4)
|
||||
3. **Services neu starten**
|
||||
4. **Installation wiederholen** mit entsprechender Option
|
||||
|
||||
Das konsolidierte Setup-System bietet maximale Flexibilität bei minimaler Komplexität und ermöglicht sowohl Entwicklungs- als auch Produktionsumgebungen.
|
@ -43,3 +43,5 @@
|
||||
2025-06-01 13:19:50 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-01 13:21:18 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-01 13:22:49 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-01 13:36:31 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
2025-06-01 13:39:56 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||
|
@ -1031,3 +1031,81 @@ WHERE users.id = ?
|
||||
2025-06-01 13:23:56 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:24:26 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:24:56 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:36:31 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||
2025-06-01 13:36:33 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||
2025-06-01 13:36:57 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:36:57 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:36:59 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:36:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:37:29 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:37:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:29 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:42 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:43 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:43 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:44 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:45 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:46 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:46 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:47 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:47 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:48 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:48 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:48 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:49 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:50 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:50 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:50 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:50 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:51 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:51 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:51 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:38:51 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:39:21 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:39:51 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:39:56 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||
2025-06-01 13:39:57 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||
2025-06-01 13:39:58 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:39:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:40:00 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:40:00 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:40:01 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:40:01 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:40:31 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:01 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:14 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:14 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:15 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:15 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:41:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:42:15 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:42:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:43:15 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 13:43:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
|
@ -43,3 +43,5 @@
|
||||
2025-06-01 13:19:50 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-01 13:21:18 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-01 13:22:49 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-01 13:36:31 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
2025-06-01 13:39:56 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||
|
@ -25,3 +25,4 @@
|
||||
2025-06-01 04:54:51 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-01 13:23:09 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-01 13:23:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-01 13:36:49 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
|
@ -165,3 +165,11 @@
|
||||
2025-06-01 13:22:50 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-01 13:22:50 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||
2025-06-01 13:22:50 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||
2025-06-01 13:36:33 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-01 13:36:33 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-01 13:36:33 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||
2025-06-01 13:36:33 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||
2025-06-01 13:39:57 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||
|
@ -43,3 +43,5 @@
|
||||
2025-06-01 13:19:50 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:21:18 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:22:49 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:36:31 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:39:56 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||
|
@ -41,3 +41,5 @@
|
||||
2025-06-01 13:19:51 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-01 13:21:19 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-01 13:22:50 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-01 13:36:33 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
2025-06-01 13:39:57 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||
|
@ -59,3 +59,4 @@
|
||||
2025-06-01 04:54:44 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 13:23:06 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 13:23:19 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 13:36:46 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
|
@ -82,3 +82,7 @@
|
||||
2025-06-01 13:21:19 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:22:50 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:22:50 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:36:33 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:36:33 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:39:57 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
2025-06-01 13:39:58 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||
|
@ -82,3 +82,7 @@
|
||||
2025-06-01 13:21:19 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:22:50 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:22:50 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:36:33 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:36:33 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||
|
@ -39,3 +39,5 @@
|
||||
2025-06-01 13:19:51 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-01 13:21:19 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-01 13:22:50 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-01 13:36:33 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
2025-06-01 13:39:58 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||
|
@ -1052,3 +1052,141 @@
|
||||
2025-06-01 13:24:56 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:24:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:24:56 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||
2025-06-01 13:36:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||
2025-06-01 13:36:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||
2025-06-01 13:36:33 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||
2025-06-01 13:36:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||
2025-06-01 13:36:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||
2025-06-01 13:36:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||
2025-06-01 13:36:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:39 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:39 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||
2025-06-01 13:36:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||
2025-06-01 13:36:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||
2025-06-01 13:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||
2025-06-01 13:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:36:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:36:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:37:03 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||
2025-06-01 13:37:09 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||
2025-06-01 13:37:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:37:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:37:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:37:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:37:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:37:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:37:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:37:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:43 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:43 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:44 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:44 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:46 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:46 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:47 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:47 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:47 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:47 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:38:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:21 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:21 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:51 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||
2025-06-01 13:39:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||
2025-06-01 13:39:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||
2025-06-01 13:39:58 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||
2025-06-01 13:39:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||
2025-06-01 13:39:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||
2025-06-01 13:39:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||
2025-06-01 13:39:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:39:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:39:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||
2025-06-01 13:40:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||
2025-06-01 13:40:16 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||
2025-06-01 13:40:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||
2025-06-01 13:40:28 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||
2025-06-01 13:40:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:31 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:40:31 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:40:34 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||
2025-06-01 13:41:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:14 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:14 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:15 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:15 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 13:41:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 13:41:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
|
@ -3471,3 +3471,89 @@
|
||||
2025-06-01 13:24:56 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:24:56 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:24:56 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.43ms
|
||||
2025-06-01 13:36:39 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:36:39 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:36:39 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.79ms
|
||||
2025-06-01 13:36:42 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 13:36:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:36:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:36:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.65ms
|
||||
2025-06-01 13:36:46 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 13:36:57 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:36:57 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:36:57 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.91ms
|
||||
2025-06-01 13:36:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:36:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:36:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.31ms
|
||||
2025-06-01 13:37:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:37:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:37:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.49ms
|
||||
2025-06-01 13:37:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:37:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:37:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.81ms
|
||||
2025-06-01 13:38:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.28ms
|
||||
2025-06-01 13:38:43 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:43 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:43 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 11.28ms
|
||||
2025-06-01 13:38:44 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:44 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:44 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 17.09ms
|
||||
2025-06-01 13:38:45 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:45 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:45 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.23ms
|
||||
2025-06-01 13:38:46 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:46 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:46 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.90ms
|
||||
2025-06-01 13:38:47 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:47 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:47 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.77ms
|
||||
2025-06-01 13:38:48 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:48 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:48 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.91ms
|
||||
2025-06-01 13:38:49 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:49 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:49 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.03ms
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.89ms
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:50 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.95ms
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.85ms
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:38:51 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.88ms
|
||||
2025-06-01 13:39:21 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:39:21 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:39:21 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.63ms
|
||||
2025-06-01 13:39:51 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:39:51 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:39:51 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.89ms
|
||||
2025-06-01 13:39:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:39:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:39:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.84ms
|
||||
2025-06-01 13:40:00 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:40:00 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:40:00 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.01ms
|
||||
2025-06-01 13:40:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:40:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:40:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.38ms
|
||||
2025-06-01 13:40:31 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:40:31 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:40:31 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.67ms
|
||||
2025-06-01 13:41:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:41:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:41:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.22ms
|
||||
2025-06-01 13:41:14 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:41:14 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:41:14 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.58ms
|
||||
2025-06-01 13:41:15 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:41:15 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:41:15 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.50ms
|
||||
2025-06-01 13:41:45 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 13:41:45 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 13:41:45 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.69ms
|
||||
|
@ -2931,3 +2931,9 @@
|
||||
2025-06-01 13:22:49 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-01 13:22:51 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||
2025-06-01 13:22:51 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||
2025-06-01 13:36:31 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-01 13:36:33 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||
2025-06-01 13:36:33 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||
2025-06-01 13:39:56 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||
|
@ -39,3 +39,5 @@
|
||||
2025-06-01 13:19:51 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-01 13:21:19 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-01 13:22:50 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-01 13:36:33 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
2025-06-01 13:39:58 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||
|
@ -104,3 +104,5 @@
|
||||
2025-06-01 13:19:51 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-01 13:21:19 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-01 13:22:50 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-01 13:36:33 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
2025-06-01 13:39:58 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||
|
@ -363,3 +363,21 @@
|
||||
2025-06-01 13:22:50 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||
2025-06-01 13:22:50 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||
2025-06-01 13:22:50 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T13:36:33.357470
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||
2025-06-01 13:36:33 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - ==================================================
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T13:39:58.019987
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - ==================================================
|
||||
|
@ -170,3 +170,11 @@
|
||||
2025-06-01 13:22:49 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||
2025-06-01 13:22:49 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||
2025-06-01 13:22:49 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||
2025-06-01 13:36:31 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||
2025-06-01 13:36:31 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||
2025-06-01 13:36:31 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||
2025-06-01 13:36:31 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||
|
@ -130,7 +130,7 @@
|
||||
<div class="flex items-center justify-between mb-4">
|
||||
<div class="p-3 bg-gradient-to-br from-green-500 to-green-600 rounded-xl shadow-lg">
|
||||
<svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"/>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
@ -617,41 +617,134 @@
|
||||
|
||||
<script>
|
||||
// ===== WARTUNGS-FUNKTIONALITÄT =====
|
||||
// Wartungs-Modal Verwaltung
|
||||
class MaintenanceModal {
|
||||
constructor() {
|
||||
this.modal = document.getElementById('maintenance-modal');
|
||||
this.triggerBtn = document.getElementById('maintenance-btn');
|
||||
this.closeBtn = document.getElementById('close-maintenance-modal');
|
||||
this.isOpen = false;
|
||||
|
||||
// Wartung Modal Event Listeners
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const maintenanceBtn = document.getElementById('maintenance-btn');
|
||||
const maintenanceModal = document.getElementById('maintenance-modal');
|
||||
const closeModalBtn = document.getElementById('close-maintenance-modal');
|
||||
|
||||
// Modal öffnen
|
||||
if (maintenanceBtn) {
|
||||
maintenanceBtn.addEventListener('click', function() {
|
||||
maintenanceModal.classList.remove('hidden');
|
||||
});
|
||||
this.initializeEventListeners();
|
||||
}
|
||||
|
||||
// Modal schließen
|
||||
if (closeModalBtn) {
|
||||
closeModalBtn.addEventListener('click', function() {
|
||||
maintenanceModal.classList.add('hidden');
|
||||
});
|
||||
}
|
||||
|
||||
// Modal schließen beim Klick außerhalb
|
||||
maintenanceModal.addEventListener('click', function(e) {
|
||||
if (e.target === maintenanceModal) {
|
||||
maintenanceModal.classList.add('hidden');
|
||||
initializeEventListeners() {
|
||||
// Modal öffnen
|
||||
if (this.triggerBtn) {
|
||||
this.triggerBtn.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
this.openModal();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Wartungs-Funktionen
|
||||
document.getElementById('modal-clear-cache').addEventListener('click', clearCache);
|
||||
document.getElementById('modal-optimize-db').addEventListener('click', optimizeDatabase);
|
||||
document.getElementById('modal-create-backup').addEventListener('click', createBackup);
|
||||
document.getElementById('modal-advanced-settings').addEventListener('click', function() {
|
||||
window.location.href = '{{ url_for("optimization_settings") }}';
|
||||
});
|
||||
// Modal schließen
|
||||
if (this.closeBtn) {
|
||||
this.closeBtn.addEventListener('click', () => this.closeModal());
|
||||
}
|
||||
|
||||
// Modal schließen bei Klick außerhalb
|
||||
if (this.modal) {
|
||||
this.modal.addEventListener('click', (e) => {
|
||||
if (e.target === this.modal) {
|
||||
this.closeModal();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ESC-Taste zum Schließen
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape' && this.isOpen) {
|
||||
this.closeModal();
|
||||
}
|
||||
});
|
||||
|
||||
// Wartungs-Aktionen
|
||||
this.initializeMaintenanceActions();
|
||||
}
|
||||
|
||||
initializeMaintenanceActions() {
|
||||
const actions = [
|
||||
{ id: 'modal-clear-cache', handler: () => this.executeAction('clearCache') },
|
||||
{ id: 'modal-optimize-db', handler: () => this.executeAction('optimizeDatabase') },
|
||||
{ id: 'modal-create-backup', handler: () => this.executeAction('createBackup') },
|
||||
{ id: 'modal-advanced-settings', handler: () => this.navigateToSettings() }
|
||||
];
|
||||
|
||||
actions.forEach(action => {
|
||||
const element = document.getElementById(action.id);
|
||||
if (element) {
|
||||
element.addEventListener('click', action.handler);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
openModal() {
|
||||
if (this.modal) {
|
||||
this.modal.classList.remove('hidden');
|
||||
this.isOpen = true;
|
||||
document.body.style.overflow = 'hidden';
|
||||
|
||||
// Focus-Management für Barrierefreiheit
|
||||
const firstFocusable = this.modal.querySelector('button');
|
||||
if (firstFocusable) {
|
||||
firstFocusable.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
closeModal() {
|
||||
if (this.modal) {
|
||||
this.modal.classList.add('hidden');
|
||||
this.isOpen = false;
|
||||
document.body.style.overflow = '';
|
||||
|
||||
// Focus zurück zum Trigger-Button
|
||||
if (this.triggerBtn) {
|
||||
this.triggerBtn.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async executeAction(actionType) {
|
||||
try {
|
||||
this.setLoadingState(true);
|
||||
|
||||
switch (actionType) {
|
||||
case 'clearCache':
|
||||
await clearCache();
|
||||
break;
|
||||
case 'optimizeDatabase':
|
||||
await optimizeDatabase();
|
||||
break;
|
||||
case 'createBackup':
|
||||
await createBackup();
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unbekannte Aktion: ${actionType}`);
|
||||
}
|
||||
|
||||
this.closeModal();
|
||||
} catch (error) {
|
||||
console.error('Fehler bei Wartungsaktion:', error);
|
||||
showNotification('Fehler bei der Ausführung der Wartungsaktion', 'error');
|
||||
} finally {
|
||||
this.setLoadingState(false);
|
||||
}
|
||||
}
|
||||
|
||||
navigateToSettings() {
|
||||
try {
|
||||
window.location.href = '{{ url_for("optimization_settings") }}';
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Navigieren zu den Einstellungen:', error);
|
||||
showNotification('Fehler beim Öffnen der Einstellungen', 'error');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Initialisierung nach DOM-Laden
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
new MaintenanceModal();
|
||||
});
|
||||
|
||||
// Notification anzeigen
|
||||
|
Loading…
x
Reference in New Issue
Block a user