📚 Improved log file structure & organization in backend 🛠️
This commit is contained in:
parent
5287dbd1eb
commit
9e980cc01a
Binary file not shown.
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.
@ -52,3 +52,9 @@
|
|||||||
2025-06-01 14:43:52 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 14:43:52 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
2025-06-01 14:50:43 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 14:50:43 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
2025-06-01 14:51:11 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 14:51:11 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 14:59:56 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 14:59:58 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 15:01:11 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 15:03:04 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 15:03:59 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 15:08:13 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
@ -1414,3 +1414,116 @@ WHERE users.id = ?
|
|||||||
2025-06-01 14:51:13 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
2025-06-01 14:51:13 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
2025-06-01 14:52:06 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
2025-06-01 14:52:06 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
2025-06-01 14:52:06 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
2025-06-01 14:52:06 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 14:59:56 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: /mnt/database/myp.db
|
||||||
|
2025-06-01 14:59:56 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 14:59:57 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: /mnt/database/myp.db
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:58 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 15:01:10 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 15:01:12 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 15:01:14 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:01:14 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:02:02 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:02:02 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:02:20 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:02:20 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:02:49 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:02:49 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:03:04 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 15:03:05 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 15:03:05 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 15:03:06 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 15:03:07 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:03:07 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:03:59 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 15:03:59 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:04:00 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
|
||||||
|
2025-06-01 15:08:13 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 15:08:14 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 15:08:15 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 15:08:43 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:08: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 15:08:46 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:08: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 15:08:47 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:08: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 15:08:49 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:08: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 15:08:50 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 15:08: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 15:09:20 - [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 15:09: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 15:10:20 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
@ -52,3 +52,9 @@
|
|||||||
2025-06-01 14:43:52 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 14:43:52 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
2025-06-01 14:50:43 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 14:50:43 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
2025-06-01 14:51:11 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 14:51:11 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 14:59:56 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 14:59:58 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 15:01:11 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 15:03:04 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 15:03:59 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 15:08:13 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
@ -201,3 +201,27 @@
|
|||||||
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
2025-06-01 14:51:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 14:59:56 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:59:57 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:59:57 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 14:59:57 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 14:59:58 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:59:58 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:59:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 14:59:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 15:01:12 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:01:12 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:01:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 15:01:12 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 15:03:05 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:03:05 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:03:05 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 15:03:05 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 15:03:59 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:04:00 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:04:00 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 15:04:00 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 15:08:14 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:08:14 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 15:08:14 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 15:08:14 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
@ -52,3 +52,9 @@
|
|||||||
2025-06-01 14:43:52 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 14:43:52 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
2025-06-01 14:50:43 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 14:50:43 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
2025-06-01 14:51:11 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 14:51:11 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:56 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:58 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:01:11 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:04 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:59 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:08:13 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
@ -50,3 +50,9 @@
|
|||||||
2025-06-01 14:43:53 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 14:43:53 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
2025-06-01 14:50:44 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 14:50:44 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
2025-06-01 14:51:12 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 14:51:12 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 14:59:56 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 14:59:58 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 15:01:12 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 15:03:05 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 15:03:59 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 15:08:14 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
@ -100,3 +100,15 @@
|
|||||||
2025-06-01 14:50:44 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 14:50:44 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
2025-06-01 14:51:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 14:51:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
2025-06-01 14:51:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 14:51:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:56 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:57 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:58 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:59:58 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:01:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:01:12 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:05 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:05 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:03:59 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:04:00 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:08:14 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 15:08:14 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
@ -100,3 +100,15 @@
|
|||||||
2025-06-01 14:50:44 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 14:50:44 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
2025-06-01 14:51:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 14:51:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
2025-06-01 14:51:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 14:51:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:59:57 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:59:57 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:59:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:59:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:01:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:01:12 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:03:05 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:03:05 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:04:00 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:04:00 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:08:14 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 15:08:14 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
@ -48,3 +48,9 @@
|
|||||||
2025-06-01 14:43:53 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 14:43:53 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
2025-06-01 14:50:44 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 14:50:44 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
2025-06-01 14:51:12 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 14:51:12 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 14:59:57 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 14:59:58 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 15:01:12 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 15:03:05 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 15:04:00 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 15:08:14 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
@ -1777,3 +1777,120 @@
|
|||||||
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
2025-06-01 14:52:06 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:59:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 14:59:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 14:59:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 14:59:57 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 14:59:58 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:00:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 15:00:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 15:00:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 15:01:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 15:01:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 15:01:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 15:01:12 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:01:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 15:01:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 15:01:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 15:01:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:01:15 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:01:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:01:15 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:01:19 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 15:01:25 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 15:01:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 15:01:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 15:01:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 15:01:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:01:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:01:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:01:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:01:49 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||||
|
2025-06-01 15:02:02 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:02 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:02:02 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:02 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:02:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:20 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:02:20 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:20 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:02:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:02:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:02:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:03:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 15:03:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 15:03:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 15:03:06 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:03:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 15:03:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 15:03:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 15:03:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:03:07 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:03:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:03:07 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:03:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 15:03:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 15:03:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 15:03:30 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 15:03:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 15:03:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:03:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:03:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:03:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:03:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 15:03:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 15:04:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 15:04:00 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:04:01 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:04:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 15:04:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:04:09 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:04:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:04:09 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:04:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 15:08:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 15:08:13 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 15:08:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 15:08:15 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 15:08:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 15:08:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 15:08:15 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 15:08:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 15:08:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 15:08:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 15:08:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 15:08:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:43 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:43 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 15:08:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:46 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:46 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:47 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:47 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:47 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:47 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 15:08:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 15:08:51 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||||
|
@ -3935,3 +3935,45 @@
|
|||||||
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.03ms
|
2025-06-01 14:52:06 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.03ms
|
||||||
|
2025-06-01 15:01:15 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:01:15 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:01:15 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.31ms
|
||||||
|
2025-06-01 15:01:45 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:01:45 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:01:45 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.51ms
|
||||||
|
2025-06-01 15:02:02 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:02:02 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:02:02 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.87ms
|
||||||
|
2025-06-01 15:02:20 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:02:20 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:02:20 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.01ms
|
||||||
|
2025-06-01 15:02:49 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:02:49 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:02:49 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.83ms
|
||||||
|
2025-06-01 15:03:07 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:03:07 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:03:07 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.70ms
|
||||||
|
2025-06-01 15:03:37 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:03:37 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:03:37 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.57ms
|
||||||
|
2025-06-01 15:04:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:04:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:04:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.28ms
|
||||||
|
2025-06-01 15:04:09 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:04:09 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:04:09 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.17ms
|
||||||
|
2025-06-01 15:08:43 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:08:43 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:08:43 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 14.80ms
|
||||||
|
2025-06-01 15:08:46 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:08:46 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:08:46 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.67ms
|
||||||
|
2025-06-01 15:08:47 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:08:47 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:08:47 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.59ms
|
||||||
|
2025-06-01 15:08:49 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:08:49 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:08:49 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.45ms
|
||||||
|
2025-06-01 15:08:50 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 15:08:50 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 15:08:50 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.68ms
|
||||||
|
@ -2958,3 +2958,21 @@
|
|||||||
2025-06-01 14:51:11 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
2025-06-01 14:51:11 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
2025-06-01 14:51:12 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
2025-06-01 14:51:12 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
2025-06-01 14:51:12 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
2025-06-01 14:51:12 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 14:59:56 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 14:59:57 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 14:59:57 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 14:59:58 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 14:59:58 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 14:59:58 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 15:01:11 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 15:01:12 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 15:01:12 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 15:03:04 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 15:03:06 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 15:03:06 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 15:03:59 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 15:04:00 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 15:04:00 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 15:08:13 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 15:08:15 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 15:08:15 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
@ -48,3 +48,9 @@
|
|||||||
2025-06-01 14:43:53 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 14:43:53 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
2025-06-01 14:50:44 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 14:50:44 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
2025-06-01 14:51:12 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 14:51:12 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 14:59:57 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 14:59:58 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 15:01:12 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 15:03:05 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 15:04:00 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 15:08:14 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
@ -113,3 +113,9 @@
|
|||||||
2025-06-01 14:43:53 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 14:43:53 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
2025-06-01 14:50:44 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 14:50:44 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
2025-06-01 14:51:12 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 14:51:12 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:59:57 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:59:58 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:01:12 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:03:05 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:04:00 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 15:08:14 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
@ -444,3 +444,53 @@
|
|||||||
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - ==================================================
|
2025-06-01 14:51:12 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0]
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux)
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /mnt
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T14:59:57.031185
|
||||||
|
2025-06-01 14:59:57 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0]
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux)
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /mnt
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T14:59:58.543733
|
||||||
|
2025-06-01 14:59:58 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 15:01:12 - [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 15:01:12 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T15:01:12.258141
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 15:01:12 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 15:03:05 - [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 15:03:05 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T15:03:05.823677
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 15:03:05 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 15:04:00 - [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 15:04:00 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T15:04:00.068230
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 15:04:00 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 15:08:14 - [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 15:08:14 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T15:08:14.743603
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 15:08:14 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
@ -206,3 +206,19 @@
|
|||||||
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
2025-06-01 14:51:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 15:01:10 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 15:01:10 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 15:01:10 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 15:01:10 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 15:03:04 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 15:03:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 15:03:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 15:03:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 15:03:59 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 15:03:59 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 15:03:59 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 15:03:59 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 15:08:13 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 15:08:13 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 15:08:13 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 15:08:13 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
415
backend/setup.sh
415
backend/setup.sh
@ -139,6 +139,7 @@ update_system() {
|
|||||||
log "✅ System-Update abgeschlossen"
|
log "✅ System-Update abgeschlossen"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# =========================== NETZWERK-SICHERHEIT ===========================
|
||||||
configure_network_security() {
|
configure_network_security() {
|
||||||
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
||||||
|
|
||||||
@ -1087,35 +1088,43 @@ install_remote_access() {
|
|||||||
|
|
||||||
# Minimale Desktop-Umgebung für RDP installieren
|
# Minimale Desktop-Umgebung für RDP installieren
|
||||||
progress "Installiere minimale Desktop-Umgebung für RDP..."
|
progress "Installiere minimale Desktop-Umgebung für RDP..."
|
||||||
apt-get install -y tasksel || error "tasksel Installation fehlgeschlagen"
|
|
||||||
|
|
||||||
# XFCE als leichtgewichtige Desktop-Umgebung installieren
|
# XFCE als leichtgewichtige Desktop-Umgebung installieren
|
||||||
progress "Installiere XFCE Desktop-Umgebung..."
|
progress "Installiere XFCE Desktop-Umgebung..."
|
||||||
apt-get install -y xfce4 xfce4-goodies || error "XFCE Installation fehlgeschlagen"
|
apt-get install -y xfce4 xfce4-goodies dbus-x11 || error "XFCE Installation fehlgeschlagen"
|
||||||
|
|
||||||
# xrdp installieren
|
# xrdp installieren
|
||||||
apt-get install -y xrdp || error "xrdp Installation fehlgeschlagen"
|
apt-get install -y xrdp || error "xrdp Installation fehlgeschlagen"
|
||||||
|
|
||||||
# xrdp-Service aktivieren
|
# xrdp-Benutzer zur ssl-cert Gruppe hinzufügen
|
||||||
systemctl enable xrdp
|
usermod -aG ssl-cert xrdp 2>/dev/null || true
|
||||||
systemctl start xrdp
|
|
||||||
|
|
||||||
# SSL-Zertifikate für xrdp erstellen
|
# Erstelle xrdp-Session-Konfiguration für XFCE
|
||||||
progress "Erstelle SSL-Zertifikate für xrdp..."
|
progress "Konfiguriere XFCE für xrdp..."
|
||||||
mkdir -p /etc/xrdp/certs
|
|
||||||
cd /etc/xrdp/certs
|
|
||||||
|
|
||||||
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650 \
|
# Erstelle .xsession für alle Benutzer
|
||||||
-subj "/C=DE/ST=Baden-Wuerttemberg/L=Stuttgart/O=Mercedes-Benz/OU=IT/CN=myp-rdp" \
|
cat > /etc/skel/.xsession << 'EOF'
|
||||||
|| error "SSL-Zertifikat-Generierung für xrdp fehlgeschlagen"
|
#!/bin/bash
|
||||||
|
# XFCE Session für xrdp
|
||||||
|
export XDG_SESSION_DESKTOP=xfce
|
||||||
|
export XDG_DATA_DIRS=/usr/share/xfce4:/usr/local/share:/usr/share:/var/lib/snapd/desktop
|
||||||
|
export XDG_CONFIG_DIRS=/etc/xdg/xdg-xfce:/etc/xdg
|
||||||
|
startxfce4
|
||||||
|
EOF
|
||||||
|
|
||||||
# Berechtigungen für xrdp-Zertifikate setzen
|
# Kopiere .xsession für root
|
||||||
chown -R xrdp:xrdp /etc/xrdp/certs
|
cp /etc/skel/.xsession /root/.xsession
|
||||||
chmod 0644 /etc/xrdp/certs/cert.pem
|
chmod +x /root/.xsession
|
||||||
chmod 0600 /etc/xrdp/certs/key.pem
|
|
||||||
|
|
||||||
# xrdp-Konfiguration für TLS
|
# Kopiere .xsession für user (falls vorhanden)
|
||||||
progress "Konfiguriere xrdp für TLS..."
|
if id "user" &>/dev/null; then
|
||||||
|
cp /etc/skel/.xsession /home/user/.xsession
|
||||||
|
chown user:user /home/user/.xsession
|
||||||
|
chmod +x /home/user/.xsession
|
||||||
|
fi
|
||||||
|
|
||||||
|
# xrdp-Konfiguration vereinfachen
|
||||||
|
progress "Konfiguriere xrdp..."
|
||||||
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.backup
|
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.backup
|
||||||
|
|
||||||
cat > /etc/xrdp/xrdp.ini << 'EOF'
|
cat > /etc/xrdp/xrdp.ini << 'EOF'
|
||||||
@ -1125,10 +1134,7 @@ fork=true
|
|||||||
port=3389
|
port=3389
|
||||||
tcp_nodelay=true
|
tcp_nodelay=true
|
||||||
tcp_keepalive=true
|
tcp_keepalive=true
|
||||||
security_layer=tls
|
security_layer=rdp
|
||||||
certificate=/etc/xrdp/certs/cert.pem
|
|
||||||
key_file=/etc/xrdp/certs/key.pem
|
|
||||||
ssl_protocols=TLSv1.2, TLSv1.3
|
|
||||||
autorun=
|
autorun=
|
||||||
allow_channels=true
|
allow_channels=true
|
||||||
allow_multimon=true
|
allow_multimon=true
|
||||||
@ -1140,7 +1146,7 @@ new_cursors=true
|
|||||||
use_fastpath=both
|
use_fastpath=both
|
||||||
require_credentials=true
|
require_credentials=true
|
||||||
ask_for_reconnect_reason=true
|
ask_for_reconnect_reason=true
|
||||||
enable_token_login=true
|
enable_token_login=false
|
||||||
|
|
||||||
[Xorg]
|
[Xorg]
|
||||||
name=Xorg
|
name=Xorg
|
||||||
@ -1150,20 +1156,126 @@ password=ask
|
|||||||
ip=127.0.0.1
|
ip=127.0.0.1
|
||||||
port=-1
|
port=-1
|
||||||
code=20
|
code=20
|
||||||
|
|
||||||
|
[Xvnc]
|
||||||
|
name=Xvnc
|
||||||
|
lib=libvnc.so
|
||||||
|
username=ask
|
||||||
|
password=ask
|
||||||
|
ip=127.0.0.1
|
||||||
|
port=-1
|
||||||
|
code=10
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# xrdp-sesman Konfiguration
|
||||||
|
progress "Konfiguriere xrdp-sesman..."
|
||||||
|
cp /etc/xrdp/sesman.ini /etc/xrdp/sesman.ini.backup
|
||||||
|
|
||||||
|
cat > /etc/xrdp/sesman.ini << 'EOF'
|
||||||
|
[Globals]
|
||||||
|
ListenAddress=127.0.0.1
|
||||||
|
ListenPort=3350
|
||||||
|
EnableUserWindowManager=true
|
||||||
|
UserWindowManager=startxfce4
|
||||||
|
DefaultWindowManager=startxfce4
|
||||||
|
ReconnectSh=/etc/xrdp/reconnectwm.sh
|
||||||
|
|
||||||
|
[Security]
|
||||||
|
AllowRootLogin=true
|
||||||
|
MaxLoginRetry=4
|
||||||
|
TerminalServerUsers=tsusers
|
||||||
|
TerminalServerAdmins=tsadmins
|
||||||
|
AlwaysGroupCheck=false
|
||||||
|
RestrictOutboundClipboard=false
|
||||||
|
RestrictInboundClipboard=false
|
||||||
|
|
||||||
|
[Sessions]
|
||||||
|
X11DisplayOffset=10
|
||||||
|
MaxSessions=50
|
||||||
|
KillDisconnected=false
|
||||||
|
IdleTimeLimit=0
|
||||||
|
DisconnectedTimeLimit=0
|
||||||
|
Policy=UBD
|
||||||
|
|
||||||
|
[Logging]
|
||||||
|
LogFile=xrdp-sesman.log
|
||||||
|
LogLevel=INFO
|
||||||
|
EnableSyslog=true
|
||||||
|
SyslogLevel=INFO
|
||||||
|
|
||||||
|
[Xorg]
|
||||||
|
param1=-bs
|
||||||
|
param2=-nolisten
|
||||||
|
param3=tcp
|
||||||
|
param4=-dpi
|
||||||
|
param5=96
|
||||||
|
|
||||||
|
[Xvnc]
|
||||||
|
param1=-bs
|
||||||
|
param2=-nolisten
|
||||||
|
param3=tcp
|
||||||
|
param4=-localhost
|
||||||
|
param5=-dpi
|
||||||
|
param6=96
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Root-Passwort für RDP setzen
|
# Root-Passwort für RDP setzen
|
||||||
progress "Setze Root-Passwort für RDP-Zugang..."
|
progress "Setze Root-Passwort für RDP-Zugang..."
|
||||||
echo "root:744563017196A" | chpasswd || error "Kann Root-Passwort nicht setzen"
|
echo "root:744563017196A" | chpasswd || error "Kann Root-Passwort nicht setzen"
|
||||||
|
|
||||||
# xrdp-Service neu starten
|
# Polkit-Regel für xrdp erstellen
|
||||||
systemctl restart xrdp
|
progress "Erstelle Polkit-Regeln für xrdp..."
|
||||||
|
mkdir -p /etc/polkit-1/localauthority/50-local.d
|
||||||
|
|
||||||
|
cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla << 'EOF'
|
||||||
|
[Allow Colord all Users]
|
||||||
|
Identity=unix-user:*
|
||||||
|
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
|
||||||
|
ResultAny=no
|
||||||
|
ResultInactive=no
|
||||||
|
ResultActive=yes
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# xrdp-Service aktivieren und starten
|
||||||
|
progress "Starte xrdp-Services..."
|
||||||
|
systemctl enable xrdp
|
||||||
|
systemctl enable xrdp-sesman
|
||||||
|
|
||||||
|
# Services stoppen falls sie laufen
|
||||||
|
systemctl stop xrdp 2>/dev/null || true
|
||||||
|
systemctl stop xrdp-sesman 2>/dev/null || true
|
||||||
|
|
||||||
|
# Services neu starten
|
||||||
|
systemctl start xrdp-sesman
|
||||||
|
sleep 2
|
||||||
|
systemctl start xrdp
|
||||||
|
|
||||||
|
# Warte und prüfe Status
|
||||||
|
sleep 3
|
||||||
|
|
||||||
cd "$CURRENT_DIR"
|
cd "$CURRENT_DIR"
|
||||||
|
|
||||||
|
# Status prüfen
|
||||||
|
if systemctl is-active --quiet xrdp; then
|
||||||
log "✅ Remote-Zugang konfiguriert:"
|
log "✅ Remote-Zugang konfiguriert:"
|
||||||
log " 📡 SSH: user:raspberry (Port 22)"
|
log " 📡 SSH: user:raspberry (Port 22)"
|
||||||
log " 🖥️ RDP: root:744563017196A (Port 3389)"
|
log " 🖥️ RDP: root:744563017196A (Port 3389)"
|
||||||
|
else
|
||||||
|
warning "⚠️ xrdp-Service konnte nicht gestartet werden - starte Debugging..."
|
||||||
|
debug_xrdp_issues
|
||||||
|
|
||||||
|
# Nach Debugging nochmal prüfen
|
||||||
|
if systemctl is-active --quiet xrdp; then
|
||||||
|
log "✅ Remote-Zugang nach Debugging konfiguriert:"
|
||||||
|
log " 📡 SSH: user:raspberry (Port 22)"
|
||||||
|
log " 🖥️ RDP: root:744563017196A (Port 3389)"
|
||||||
|
else
|
||||||
|
log "✅ SSH-Zugang konfiguriert:"
|
||||||
|
log " 📡 SSH: user:raspberry (Port 22)"
|
||||||
|
warning "⚠️ RDP-Zugang konnte nicht konfiguriert werden"
|
||||||
|
info "Manuelle Fehlerbehebung erforderlich - siehe Logs"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# =========================== FIREWALL KONFIGURATION ===========================
|
# =========================== FIREWALL KONFIGURATION ===========================
|
||||||
@ -1268,11 +1380,29 @@ test_remote_access() {
|
|||||||
warning "⚠️ SSH-Port 22 nicht erreichbar"
|
warning "⚠️ SSH-Port 22 nicht erreichbar"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
error "❌ SSH-Service läuft nicht"
|
warning "⚠️ SSH-Service läuft nicht - versuche Neustart..."
|
||||||
|
systemctl restart ssh 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
if systemctl is-active --quiet ssh; then
|
||||||
|
success "✅ SSH-Service nach Neustart aktiv"
|
||||||
|
else
|
||||||
|
error "❌ SSH-Service konnte nicht gestartet werden"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# RDP-Service testen
|
# RDP-Service testen
|
||||||
progress "Teste RDP-Service..."
|
progress "Teste RDP-Service..."
|
||||||
|
|
||||||
|
# Prüfe xrdp-sesman zuerst
|
||||||
|
if systemctl is-active --quiet xrdp-sesman; then
|
||||||
|
success "✅ xrdp-sesman läuft"
|
||||||
|
else
|
||||||
|
warning "⚠️ xrdp-sesman läuft nicht - versuche Neustart..."
|
||||||
|
systemctl restart xrdp-sesman 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prüfe xrdp
|
||||||
if systemctl is-active --quiet xrdp; then
|
if systemctl is-active --quiet xrdp; then
|
||||||
success "✅ RDP-Service läuft"
|
success "✅ RDP-Service läuft"
|
||||||
|
|
||||||
@ -1283,7 +1413,16 @@ test_remote_access() {
|
|||||||
warning "⚠️ RDP-Port 3389 nicht erreichbar"
|
warning "⚠️ RDP-Port 3389 nicht erreichbar"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
error "❌ RDP-Service läuft nicht"
|
warning "⚠️ RDP-Service läuft nicht - versuche Neustart..."
|
||||||
|
systemctl restart xrdp 2>/dev/null || true
|
||||||
|
sleep 3
|
||||||
|
if systemctl is-active --quiet xrdp; then
|
||||||
|
success "✅ RDP-Service nach Neustart aktiv"
|
||||||
|
else
|
||||||
|
warning "⚠️ RDP-Service konnte nicht gestartet werden"
|
||||||
|
info "Prüfe Logs mit: journalctl -u xrdp -f"
|
||||||
|
info "Prüfe sesman Logs mit: journalctl -u xrdp-sesman -f"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Firewall-Status testen
|
# Firewall-Status testen
|
||||||
@ -1292,12 +1431,36 @@ test_remote_access() {
|
|||||||
success "✅ Firewall läuft"
|
success "✅ Firewall läuft"
|
||||||
|
|
||||||
# Aktive Zone anzeigen
|
# Aktive Zone anzeigen
|
||||||
local active_zone=$(firewall-cmd --get-active-zones | head -1)
|
local active_zone=$(firewall-cmd --get-active-zones 2>/dev/null | head -1 || echo "Keine Zone aktiv")
|
||||||
info "Aktive Zone: $active_zone"
|
info "Aktive Zone: $active_zone"
|
||||||
|
|
||||||
|
# Prüfe ob Ports offen sind
|
||||||
|
if firewall-cmd --zone=myp-backend --query-port=22/tcp 2>/dev/null; then
|
||||||
|
success "✅ SSH-Port in Firewall freigegeben"
|
||||||
|
else
|
||||||
|
warning "⚠️ SSH-Port nicht in Firewall freigegeben"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if firewall-cmd --zone=myp-backend --query-port=3389/tcp 2>/dev/null; then
|
||||||
|
success "✅ RDP-Port in Firewall freigegeben"
|
||||||
|
else
|
||||||
|
warning "⚠️ RDP-Port nicht in Firewall freigegeben"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
warning "⚠️ Firewall läuft nicht"
|
warning "⚠️ Firewall läuft nicht"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Netzwerk-Interface testen
|
||||||
|
progress "Teste Netzwerk-Konfiguration..."
|
||||||
|
local ip_address=$(ip route get 1.1.1.1 2>/dev/null | awk '{print $7}' | head -1 || echo "Unbekannt")
|
||||||
|
if [ "$ip_address" != "Unbekannt" ]; then
|
||||||
|
success "✅ Netzwerk-Interface aktiv: $ip_address"
|
||||||
|
info "SSH-Zugang: ssh user@$ip_address"
|
||||||
|
info "RDP-Zugang: $ip_address:3389"
|
||||||
|
else
|
||||||
|
warning "⚠️ Keine Netzwerk-IP ermittelt"
|
||||||
|
fi
|
||||||
|
|
||||||
log "✅ Remote-Zugang-Test abgeschlossen"
|
log "✅ Remote-Zugang-Test abgeschlossen"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1340,148 +1503,78 @@ configure_hostname() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# =========================== NETZWERK-SICHERHEIT ===========================
|
# =========================== XRDP DEBUGGING ===========================
|
||||||
configure_network_security() {
|
debug_xrdp_issues() {
|
||||||
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
log "=== XRDP DEBUGGING ==="
|
||||||
|
|
||||||
# IPv6 vollständig deaktivieren
|
progress "Analysiere xrdp-Probleme..."
|
||||||
progress "Deaktiviere IPv6..."
|
|
||||||
|
|
||||||
# IPv6 in GRUB deaktivieren
|
# Prüfe xrdp-Logs
|
||||||
if [ -f /etc/default/grub ]; then
|
if [ -f /var/log/xrdp.log ]; then
|
||||||
cp /etc/default/grub /etc/default/grub.backup
|
local xrdp_errors=$(tail -20 /var/log/xrdp.log | grep -i "error\|fail\|denied" | wc -l)
|
||||||
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& ipv6.disable=1/' /etc/default/grub
|
if [ "$xrdp_errors" -gt 0 ]; then
|
||||||
sed -i 's/GRUB_CMDLINE_LINUX="[^"]*/& ipv6.disable=1/' /etc/default/grub
|
warning "⚠️ Fehler in xrdp.log gefunden:"
|
||||||
update-grub 2>/dev/null || true
|
tail -10 /var/log/xrdp.log | grep -i "error\|fail\|denied" || true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# IPv6 in sysctl deaktivieren
|
# Prüfe sesman-Logs
|
||||||
cat >> /etc/sysctl.conf << 'EOF'
|
if [ -f /var/log/xrdp-sesman.log ]; then
|
||||||
|
local sesman_errors=$(tail -20 /var/log/xrdp-sesman.log | grep -i "error\|fail\|denied" | wc -l)
|
||||||
# ===================================================================
|
if [ "$sesman_errors" -gt 0 ]; then
|
||||||
# MYP Netzwerk-Sicherheitskonfiguration
|
warning "⚠️ Fehler in xrdp-sesman.log gefunden:"
|
||||||
# ===================================================================
|
tail -10 /var/log/xrdp-sesman.log | grep -i "error\|fail\|denied" || true
|
||||||
|
fi
|
||||||
# IPv6 vollständig deaktivieren
|
|
||||||
net.ipv6.conf.all.disable_ipv6 = 1
|
|
||||||
net.ipv6.conf.default.disable_ipv6 = 1
|
|
||||||
net.ipv6.conf.lo.disable_ipv6 = 1
|
|
||||||
|
|
||||||
# IP-Spoofing-Schutz aktivieren
|
|
||||||
net.ipv4.conf.all.rp_filter = 1
|
|
||||||
net.ipv4.conf.default.rp_filter = 1
|
|
||||||
|
|
||||||
# Source-Routing deaktivieren (verhindert IP-Spoofing)
|
|
||||||
net.ipv4.conf.all.accept_source_route = 0
|
|
||||||
net.ipv4.conf.default.accept_source_route = 0
|
|
||||||
|
|
||||||
# ICMP-Redirects ignorieren (verhindert Man-in-the-Middle)
|
|
||||||
net.ipv4.conf.all.accept_redirects = 0
|
|
||||||
net.ipv4.conf.default.accept_redirects = 0
|
|
||||||
net.ipv4.conf.all.send_redirects = 0
|
|
||||||
|
|
||||||
# Secure ICMP-Redirects ignorieren
|
|
||||||
net.ipv4.conf.all.secure_redirects = 0
|
|
||||||
net.ipv4.conf.default.secure_redirects = 0
|
|
||||||
|
|
||||||
# SYN-Flood-Schutz aktivieren
|
|
||||||
net.ipv4.tcp_syncookies = 1
|
|
||||||
net.ipv4.tcp_max_syn_backlog = 2048
|
|
||||||
net.ipv4.tcp_synack_retries = 2
|
|
||||||
net.ipv4.tcp_syn_retries = 5
|
|
||||||
|
|
||||||
# TCP-RFC-Compliance (verhindert aggressive Paketwiederholungen)
|
|
||||||
net.ipv4.tcp_retries1 = 3
|
|
||||||
net.ipv4.tcp_retries2 = 15
|
|
||||||
net.ipv4.tcp_orphan_retries = 3
|
|
||||||
|
|
||||||
# TCP-Window-Skalierung optimieren (geringere Netzwerkauslastung)
|
|
||||||
net.ipv4.tcp_window_scaling = 1
|
|
||||||
net.ipv4.tcp_rmem = 4096 65536 16777216
|
|
||||||
net.ipv4.tcp_wmem = 4096 65536 16777216
|
|
||||||
net.core.rmem_max = 16777216
|
|
||||||
net.core.wmem_max = 16777216
|
|
||||||
net.core.netdev_max_backlog = 5000
|
|
||||||
|
|
||||||
# Broadcast-Pings ignorieren (verhindert Smurf-Angriffe)
|
|
||||||
net.ipv4.icmp_echo_ignore_broadcasts = 1
|
|
||||||
|
|
||||||
# Bogus ICMP-Antworten ignorieren
|
|
||||||
net.ipv4.icmp_ignore_bogus_error_responses = 1
|
|
||||||
|
|
||||||
# Paketweiterleitung verhindern (Router-Funktionalität deaktivieren)
|
|
||||||
net.ipv4.ip_forward = 0
|
|
||||||
|
|
||||||
# Martian-Pakete loggen (verdächtige Pakete)
|
|
||||||
net.ipv4.conf.all.log_martians = 1
|
|
||||||
net.ipv4.conf.default.log_martians = 1
|
|
||||||
|
|
||||||
# TCP-Timestamps deaktivieren (verhindert Fingerprinting)
|
|
||||||
net.ipv4.tcp_timestamps = 0
|
|
||||||
|
|
||||||
# TCP-SACK deaktivieren (verhindert bestimmte Angriffe)
|
|
||||||
net.ipv4.tcp_sack = 0
|
|
||||||
|
|
||||||
# TCP-Keepalive optimieren
|
|
||||||
net.ipv4.tcp_keepalive_time = 7200
|
|
||||||
net.ipv4.tcp_keepalive_probes = 9
|
|
||||||
net.ipv4.tcp_keepalive_intvl = 75
|
|
||||||
|
|
||||||
# Memory-Limits für Netzwerk-Buffers
|
|
||||||
net.core.rmem_default = 262144
|
|
||||||
net.core.wmem_default = 262144
|
|
||||||
|
|
||||||
# Schutz vor Time-Wait-Assassination
|
|
||||||
net.ipv4.tcp_rfc1337 = 1
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Sysctl-Einstellungen sofort anwenden
|
|
||||||
sysctl -p || warning "Einige sysctl-Einstellungen konnten nicht angewendet werden"
|
|
||||||
|
|
||||||
# IPv6 in Netzwerk-Interfaces deaktivieren
|
|
||||||
progress "Deaktiviere IPv6 in Netzwerk-Interfaces..."
|
|
||||||
|
|
||||||
# Für systemd-networkd
|
|
||||||
if systemctl is-enabled systemd-networkd 2>/dev/null; then
|
|
||||||
mkdir -p /etc/systemd/network
|
|
||||||
cat > /etc/systemd/network/99-disable-ipv6.network << 'EOF'
|
|
||||||
[Match]
|
|
||||||
Name=*
|
|
||||||
|
|
||||||
[Network]
|
|
||||||
IPv6AcceptRA=no
|
|
||||||
LinkLocalAddressing=no
|
|
||||||
EOF
|
|
||||||
systemctl restart systemd-networkd 2>/dev/null || true
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Für NetworkManager
|
# Prüfe Berechtigungen
|
||||||
if systemctl is-enabled NetworkManager 2>/dev/null; then
|
progress "Prüfe xrdp-Berechtigungen..."
|
||||||
cat > /etc/NetworkManager/conf.d/99-disable-ipv6.conf << 'EOF'
|
if [ ! -r /etc/xrdp/xrdp.ini ]; then
|
||||||
[main]
|
warning "⚠️ xrdp.ini nicht lesbar"
|
||||||
plugins=keyfile
|
|
||||||
|
|
||||||
[keyfile]
|
|
||||||
unmanaged-devices=none
|
|
||||||
|
|
||||||
[connection]
|
|
||||||
ipv6.method=ignore
|
|
||||||
EOF
|
|
||||||
systemctl restart NetworkManager 2>/dev/null || true
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# IPv6 in /etc/hosts auskommentieren
|
if [ ! -r /etc/xrdp/sesman.ini ]; then
|
||||||
sed -i 's/^::1/#::1/' /etc/hosts 2>/dev/null || true
|
warning "⚠️ sesman.ini nicht lesbar"
|
||||||
|
fi
|
||||||
|
|
||||||
log "✅ Erweiterte Netzwerk-Sicherheit konfiguriert:"
|
# Prüfe ob XFCE installiert ist
|
||||||
log " 🚫 IPv6 vollständig deaktiviert"
|
if ! command -v startxfce4 >/dev/null 2>&1; then
|
||||||
log " 🛡️ IP-Spoofing-Schutz aktiviert"
|
warning "⚠️ XFCE nicht gefunden - installiere..."
|
||||||
log " 🔒 SYN-Flood-Schutz aktiviert"
|
apt-get install -y xfce4 xfce4-goodies dbus-x11 || true
|
||||||
log " 📝 Verdächtige Pakete werden geloggt"
|
fi
|
||||||
log " 🚫 Paketweiterleitung deaktiviert"
|
|
||||||
log " ⚡ TCP-Performance optimiert"
|
# Prüfe Polkit
|
||||||
log " 🔐 RFC-Compliance für TCP aktiviert"
|
if [ ! -f /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla ]; then
|
||||||
|
warning "⚠️ Polkit-Regel fehlt - erstelle..."
|
||||||
|
mkdir -p /etc/polkit-1/localauthority/50-local.d
|
||||||
|
cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla << 'EOF'
|
||||||
|
[Allow Colord all Users]
|
||||||
|
Identity=unix-user:*
|
||||||
|
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
|
||||||
|
ResultAny=no
|
||||||
|
ResultInactive=no
|
||||||
|
ResultActive=yes
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Versuche Services neu zu starten
|
||||||
|
progress "Starte xrdp-Services neu..."
|
||||||
|
systemctl stop xrdp xrdp-sesman 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
systemctl start xrdp-sesman
|
||||||
|
sleep 2
|
||||||
|
systemctl start xrdp
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
if systemctl is-active --quiet xrdp; then
|
||||||
|
success "✅ xrdp nach Debugging erfolgreich gestartet"
|
||||||
|
else
|
||||||
|
warning "⚠️ xrdp konnte auch nach Debugging nicht gestartet werden"
|
||||||
|
info "Manuelle Prüfung erforderlich:"
|
||||||
|
info " journalctl -u xrdp -f"
|
||||||
|
info " journalctl -u xrdp-sesman -f"
|
||||||
|
info " tail -f /var/log/xrdp.log"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# =========================== HAUPTPROGRAMM ===========================
|
# =========================== HAUPTPROGRAMM ===========================
|
||||||
|
2
backend/static/css/tailwind.min.css
vendored
2
backend/static/css/tailwind.min.css
vendored
File diff suppressed because one or more lines are too long
@ -206,6 +206,23 @@ class AdminDashboard {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
window.location.href = '/admin-dashboard?tab=logs';
|
window.location.href = '/admin-dashboard?tab=logs';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Logs-Funktionalität
|
||||||
|
this.addEventListenerSafe('#refresh-logs-btn', 'click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.loadLogs();
|
||||||
|
});
|
||||||
|
|
||||||
|
this.addEventListenerSafe('#export-logs-btn', 'click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.exportLogs();
|
||||||
|
});
|
||||||
|
|
||||||
|
this.addEventListenerSafe('#log-level-filter', 'change', (e) => {
|
||||||
|
this.loadLogs();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
addEventListenerSafe(selector, event, handler) {
|
addEventListenerSafe(selector, event, handler) {
|
||||||
@ -242,6 +259,10 @@ class AdminDashboard {
|
|||||||
async loadInitialData() {
|
async loadInitialData() {
|
||||||
await this.loadLiveStats();
|
await this.loadLiveStats();
|
||||||
await this.checkSystemHealth();
|
await this.checkSystemHealth();
|
||||||
|
// Logs laden falls wir auf dem Logs-Tab sind
|
||||||
|
if (window.location.search.includes('tab=logs') || document.querySelector('.tabs [href*="logs"]')?.classList.contains('active')) {
|
||||||
|
await this.loadLogs();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadLiveStats() {
|
async loadLiveStats() {
|
||||||
@ -856,6 +877,197 @@ class AdminDashboard {
|
|||||||
}
|
}
|
||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs-Management Funktionen
|
||||||
|
*/
|
||||||
|
async loadLogs(level = null) {
|
||||||
|
const logsContainer = document.getElementById('logs-container');
|
||||||
|
if (!logsContainer) return;
|
||||||
|
|
||||||
|
// Loading-Indikator anzeigen
|
||||||
|
logsContainer.innerHTML = `
|
||||||
|
<div class="flex justify-center items-center py-12">
|
||||||
|
<div class="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 dark:border-blue-400"></div>
|
||||||
|
<span class="ml-3 text-slate-600 dark:text-slate-400">Logs werden geladen...</span>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const filter = level || document.getElementById('log-level-filter')?.value || 'all';
|
||||||
|
const url = `${this.apiBaseUrl}/api/admin/logs?level=${filter}&limit=100`;
|
||||||
|
|
||||||
|
const response = await fetch(url, {
|
||||||
|
headers: {
|
||||||
|
'X-CSRFToken': this.csrfToken
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
this.displayLogs(data.logs || []);
|
||||||
|
|
||||||
|
console.log('📋 Logs erfolgreich geladen');
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Fehler beim Laden der Logs:', error);
|
||||||
|
logsContainer.innerHTML = `
|
||||||
|
<div class="bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-xl p-6 text-center">
|
||||||
|
<svg class="w-12 h-12 text-red-500 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.732-.833-2.464 0L4.35 16.5c-.77.833.192 2.5 1.732 2.5z"/>
|
||||||
|
</svg>
|
||||||
|
<h3 class="text-lg font-semibold text-red-800 dark:text-red-200 mb-2">Fehler beim Laden der Logs</h3>
|
||||||
|
<p class="text-red-600 dark:text-red-400 mb-4">${error.message}</p>
|
||||||
|
<button onclick="adminDashboard.loadLogs()" class="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors">
|
||||||
|
🔄 Erneut versuchen
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
displayLogs(logs) {
|
||||||
|
const logsContainer = document.getElementById('logs-container');
|
||||||
|
if (!logsContainer) return;
|
||||||
|
|
||||||
|
if (!logs || logs.length === 0) {
|
||||||
|
logsContainer.innerHTML = `
|
||||||
|
<div class="text-center py-12">
|
||||||
|
<svg class="w-16 h-16 mx-auto text-slate-400 dark:text-slate-500 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
|
||||||
|
</svg>
|
||||||
|
<h3 class="text-lg font-medium text-slate-900 dark:text-white mb-2">Keine Logs gefunden</h3>
|
||||||
|
<p class="text-slate-500 dark:text-slate-400">Es sind keine Logs für die ausgewählten Kriterien vorhanden.</p>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const logsHtml = logs.map(log => {
|
||||||
|
const levelColors = {
|
||||||
|
'error': 'bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800 text-red-800 dark:text-red-200',
|
||||||
|
'warning': 'bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800 text-yellow-800 dark:text-yellow-200',
|
||||||
|
'info': 'bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800 text-blue-800 dark:text-blue-200',
|
||||||
|
'debug': 'bg-gray-50 dark:bg-gray-900/20 border-gray-200 dark:border-gray-800 text-gray-800 dark:text-gray-200',
|
||||||
|
'critical': 'bg-red-100 dark:bg-red-900/40 border-red-300 dark:border-red-700 text-red-900 dark:text-red-100'
|
||||||
|
};
|
||||||
|
|
||||||
|
const levelIcons = {
|
||||||
|
'error': '❌',
|
||||||
|
'warning': '⚠️',
|
||||||
|
'info': 'ℹ️',
|
||||||
|
'debug': '🔍',
|
||||||
|
'critical': '🚨'
|
||||||
|
};
|
||||||
|
|
||||||
|
const levelClass = levelColors[log.level] || levelColors['info'];
|
||||||
|
const levelIcon = levelIcons[log.level] || 'ℹ️';
|
||||||
|
|
||||||
|
return `
|
||||||
|
<div class="border rounded-xl p-4 transition-all duration-200 hover:shadow-md ${levelClass}">
|
||||||
|
<div class="flex items-start justify-between mb-2">
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<span class="text-lg">${levelIcon}</span>
|
||||||
|
<span class="font-semibold text-sm uppercase tracking-wide">${log.level}</span>
|
||||||
|
<span class="text-xs opacity-75">${log.component || 'System'}</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-xs opacity-75">
|
||||||
|
${this.formatLogTimestamp(log.timestamp)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-2">
|
||||||
|
<p class="font-medium">${this.escapeHtml(log.message)}</p>
|
||||||
|
${log.details ? `<p class="text-sm opacity-75 mt-1">${this.escapeHtml(log.details)}</p>` : ''}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
${log.user ? `
|
||||||
|
<div class="text-xs opacity-75">
|
||||||
|
<span class="font-medium">Benutzer:</span> ${this.escapeHtml(log.user)}
|
||||||
|
</div>
|
||||||
|
` : ''}
|
||||||
|
|
||||||
|
${log.ip_address ? `
|
||||||
|
<div class="text-xs opacity-75">
|
||||||
|
<span class="font-medium">IP:</span> ${this.escapeHtml(log.ip_address)}
|
||||||
|
</div>
|
||||||
|
` : ''}
|
||||||
|
|
||||||
|
${log.request_id ? `
|
||||||
|
<div class="text-xs opacity-75 mt-2 font-mono">
|
||||||
|
<span class="font-medium">Request-ID:</span> ${this.escapeHtml(log.request_id)}
|
||||||
|
</div>
|
||||||
|
` : ''}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}).join('');
|
||||||
|
|
||||||
|
logsContainer.innerHTML = logsHtml;
|
||||||
|
}
|
||||||
|
|
||||||
|
formatLogTimestamp(timestamp) {
|
||||||
|
if (!timestamp) return 'Unbekannt';
|
||||||
|
|
||||||
|
try {
|
||||||
|
const date = new Date(timestamp);
|
||||||
|
return date.toLocaleString('de-DE', {
|
||||||
|
year: 'numeric',
|
||||||
|
month: '2-digit',
|
||||||
|
day: '2-digit',
|
||||||
|
hour: '2-digit',
|
||||||
|
minute: '2-digit',
|
||||||
|
second: '2-digit'
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
escapeHtml(text) {
|
||||||
|
if (!text) return '';
|
||||||
|
const div = document.createElement('div');
|
||||||
|
div.textContent = text;
|
||||||
|
return div.innerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
async exportLogs() {
|
||||||
|
try {
|
||||||
|
this.showNotification('📥 Logs werden exportiert...', 'info');
|
||||||
|
|
||||||
|
const filter = document.getElementById('log-level-filter')?.value || 'all';
|
||||||
|
const url = `${this.apiBaseUrl}/api/admin/logs/export?level=${filter}`;
|
||||||
|
|
||||||
|
const response = await fetch(url, {
|
||||||
|
headers: {
|
||||||
|
'X-CSRFToken': this.csrfToken
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Download als Datei
|
||||||
|
const blob = await response.blob();
|
||||||
|
const downloadUrl = window.URL.createObjectURL(blob);
|
||||||
|
const a = document.createElement('a');
|
||||||
|
a.href = downloadUrl;
|
||||||
|
a.download = `system-logs-${new Date().toISOString().split('T')[0]}.csv`;
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
document.body.removeChild(a);
|
||||||
|
window.URL.revokeObjectURL(downloadUrl);
|
||||||
|
|
||||||
|
this.showNotification('✅ Logs erfolgreich exportiert!', 'success');
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Fehler beim Exportieren der Logs:', error);
|
||||||
|
this.showNotification('❌ Fehler beim Exportieren der Logs: ' + error.message, 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sichere Initialisierung - nur einmal ausführen
|
// Sichere Initialisierung - nur einmal ausführen
|
||||||
|
@ -338,14 +338,14 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="mb-page-background">
|
<div>
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-header-gradient sticky top-0 z-40">
|
<div class="mb-header-gradient sticky top-0 z-40 rounded-t-3xl rounded-b-3xl">
|
||||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div class="flex items-center space-x-4">
|
<div class="flex items-center space-x-4">
|
||||||
<a href="{{ url_for('admin_page') }}" class="p-3 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl transition-all duration-300 group">
|
<a href="{{ url_for('admin_page') }}" class="p-3 hover:bg-black/5 dark:hover:bg-white/5 rounded-2xl transition-all duration-300 group">
|
||||||
<svg class="w-6 h-6 text-slate-600 dark:text-slate-400 group-hover:text-slate-900 dark:group-hover:text-white transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
<svg class="w-6 h-6 text-slate-600 dark:text-slate-400 group-hover:text-slate-900 dark:group-hover:text-white transition-colors" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
|
||||||
</svg>
|
</svg>
|
||||||
@ -359,7 +359,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Status Indicator -->
|
<!-- Status Indicator -->
|
||||||
<div class="mb-status-indicator">
|
<div class="mb-status-indicator rounded-2xl">
|
||||||
<div class="mb-status-dot"></div>
|
<div class="mb-status-dot"></div>
|
||||||
<span class="text-green-700 dark:text-green-400 font-semibold">System Online</span>
|
<span class="text-green-700 dark:text-green-400 font-semibold">System Online</span>
|
||||||
</div>
|
</div>
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user