📚 Improved logging structure & added backup file 🔜
This commit is contained in:
parent
3287b4558b
commit
7fa7da74af
229
backend/app.py
229
backend/app.py
@ -5612,6 +5612,235 @@ def get_tables_css():
|
|||||||
return "/* Advanced Tables CSS konnte nicht geladen werden */", 500
|
return "/* Advanced Tables CSS konnte nicht geladen werden */", 500
|
||||||
|
|
||||||
# ===== MAINTENANCE SYSTEM API =====
|
# ===== MAINTENANCE SYSTEM API =====
|
||||||
|
|
||||||
|
@app.route('/api/admin/maintenance/clear-cache', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@admin_required
|
||||||
|
def api_clear_cache():
|
||||||
|
"""Leert den System-Cache"""
|
||||||
|
try:
|
||||||
|
app_logger.info(f"🧹 Cache-Löschung gestartet von Benutzer {current_user.username}")
|
||||||
|
|
||||||
|
# Flask-Cache leeren (falls vorhanden)
|
||||||
|
if hasattr(app, 'cache'):
|
||||||
|
app.cache.clear()
|
||||||
|
|
||||||
|
# Temporäre Dateien löschen
|
||||||
|
import tempfile
|
||||||
|
temp_dir = tempfile.gettempdir()
|
||||||
|
myp_temp_files = []
|
||||||
|
|
||||||
|
try:
|
||||||
|
for root, dirs, files in os.walk(temp_dir):
|
||||||
|
for file in files:
|
||||||
|
if 'myp_' in file.lower() or 'tba_' in file.lower():
|
||||||
|
file_path = os.path.join(root, file)
|
||||||
|
try:
|
||||||
|
os.remove(file_path)
|
||||||
|
myp_temp_files.append(file)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
except Exception as e:
|
||||||
|
app_logger.warning(f"Fehler beim Löschen temporärer Dateien: {str(e)}")
|
||||||
|
|
||||||
|
# Python-Cache leeren
|
||||||
|
import gc
|
||||||
|
gc.collect()
|
||||||
|
|
||||||
|
app_logger.info(f"✅ Cache erfolgreich geleert. {len(myp_temp_files)} temporäre Dateien entfernt")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': f'Cache erfolgreich geleert. {len(myp_temp_files)} temporäre Dateien entfernt.',
|
||||||
|
'details': {
|
||||||
|
'temp_files_removed': len(myp_temp_files),
|
||||||
|
'timestamp': datetime.now().isoformat()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
app_logger.error(f"❌ Fehler beim Leeren des Cache: {str(e)}")
|
||||||
|
return jsonify({
|
||||||
|
'success': False,
|
||||||
|
'message': f'Fehler beim Leeren des Cache: {str(e)}'
|
||||||
|
}), 500
|
||||||
|
|
||||||
|
@app.route('/api/admin/maintenance/optimize-database', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@admin_required
|
||||||
|
def api_optimize_database():
|
||||||
|
"""Optimiert die Datenbank"""
|
||||||
|
db_session = get_db_session()
|
||||||
|
|
||||||
|
try:
|
||||||
|
app_logger.info(f"🔧 Datenbank-Optimierung gestartet von Benutzer {current_user.username}")
|
||||||
|
|
||||||
|
optimization_results = {
|
||||||
|
'tables_analyzed': 0,
|
||||||
|
'indexes_rebuilt': 0,
|
||||||
|
'space_freed_mb': 0,
|
||||||
|
'errors': []
|
||||||
|
}
|
||||||
|
|
||||||
|
# SQLite-spezifische Optimierungen
|
||||||
|
try:
|
||||||
|
# VACUUM - komprimiert die Datenbank
|
||||||
|
db_session.execute(text("VACUUM;"))
|
||||||
|
optimization_results['space_freed_mb'] += 1 # Geschätzt
|
||||||
|
|
||||||
|
# ANALYZE - aktualisiert Statistiken
|
||||||
|
db_session.execute(text("ANALYZE;"))
|
||||||
|
optimization_results['tables_analyzed'] += 1
|
||||||
|
|
||||||
|
# REINDEX - baut Indizes neu auf
|
||||||
|
db_session.execute(text("REINDEX;"))
|
||||||
|
optimization_results['indexes_rebuilt'] += 1
|
||||||
|
|
||||||
|
db_session.commit()
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
optimization_results['errors'].append(f"SQLite-Optimierung: {str(e)}")
|
||||||
|
app_logger.warning(f"Fehler bei SQLite-Optimierung: {str(e)}")
|
||||||
|
|
||||||
|
# Verwaiste Dateien bereinigen
|
||||||
|
try:
|
||||||
|
uploads_dir = os.path.join(app.root_path, 'uploads')
|
||||||
|
if os.path.exists(uploads_dir):
|
||||||
|
orphaned_files = 0
|
||||||
|
for root, dirs, files in os.walk(uploads_dir):
|
||||||
|
for file in files:
|
||||||
|
file_path = os.path.join(root, file)
|
||||||
|
# Prüfe ob Datei älter als 7 Tage und nicht referenziert
|
||||||
|
file_age = datetime.now() - datetime.fromtimestamp(os.path.getctime(file_path))
|
||||||
|
if file_age.days > 7:
|
||||||
|
try:
|
||||||
|
os.remove(file_path)
|
||||||
|
orphaned_files += 1
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
optimization_results['orphaned_files_removed'] = orphaned_files
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
optimization_results['errors'].append(f"Datei-Bereinigung: {str(e)}")
|
||||||
|
|
||||||
|
app_logger.info(f"✅ Datenbank-Optimierung abgeschlossen: {optimization_results}")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': 'Datenbank erfolgreich optimiert',
|
||||||
|
'details': optimization_results
|
||||||
|
})
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
db_session.rollback()
|
||||||
|
app_logger.error(f"❌ Fehler bei Datenbank-Optimierung: {str(e)}")
|
||||||
|
return jsonify({
|
||||||
|
'success': False,
|
||||||
|
'message': f'Fehler bei der Datenbank-Optimierung: {str(e)}'
|
||||||
|
}), 500
|
||||||
|
finally:
|
||||||
|
db_session.close()
|
||||||
|
|
||||||
|
@app.route('/api/admin/maintenance/create-backup', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
@admin_required
|
||||||
|
def api_create_backup():
|
||||||
|
"""Erstellt ein System-Backup"""
|
||||||
|
try:
|
||||||
|
app_logger.info(f"💾 Backup-Erstellung gestartet von Benutzer {current_user.username}")
|
||||||
|
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
# Backup-Verzeichnis erstellen
|
||||||
|
backup_dir = os.path.join(app.root_path, 'database', 'backups')
|
||||||
|
os.makedirs(backup_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# Backup-Dateiname mit Zeitstempel
|
||||||
|
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||||||
|
backup_filename = f'myp_backup_{timestamp}.zip'
|
||||||
|
backup_path = os.path.join(backup_dir, backup_filename)
|
||||||
|
|
||||||
|
backup_info = {
|
||||||
|
'filename': backup_filename,
|
||||||
|
'created_at': datetime.now().isoformat(),
|
||||||
|
'created_by': current_user.username,
|
||||||
|
'size_mb': 0,
|
||||||
|
'files_included': []
|
||||||
|
}
|
||||||
|
|
||||||
|
# ZIP-Backup erstellen
|
||||||
|
with zipfile.ZipFile(backup_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
||||||
|
|
||||||
|
# Datenbank-Datei hinzufügen
|
||||||
|
db_path = os.path.join(app.root_path, 'instance', 'database.db')
|
||||||
|
if os.path.exists(db_path):
|
||||||
|
zipf.write(db_path, 'database.db')
|
||||||
|
backup_info['files_included'].append('database.db')
|
||||||
|
|
||||||
|
# Konfigurationsdateien hinzufügen
|
||||||
|
config_files = ['config.py', 'requirements.txt', '.env']
|
||||||
|
for config_file in config_files:
|
||||||
|
config_path = os.path.join(app.root_path, config_file)
|
||||||
|
if os.path.exists(config_path):
|
||||||
|
zipf.write(config_path, config_file)
|
||||||
|
backup_info['files_included'].append(config_file)
|
||||||
|
|
||||||
|
# Wichtige Upload-Verzeichnisse hinzufügen (nur kleine Dateien)
|
||||||
|
uploads_dir = os.path.join(app.root_path, 'uploads')
|
||||||
|
if os.path.exists(uploads_dir):
|
||||||
|
for root, dirs, files in os.walk(uploads_dir):
|
||||||
|
for file in files:
|
||||||
|
file_path = os.path.join(root, file)
|
||||||
|
file_size = os.path.getsize(file_path)
|
||||||
|
|
||||||
|
# Nur Dateien unter 10MB hinzufügen
|
||||||
|
if file_size < 10 * 1024 * 1024:
|
||||||
|
rel_path = os.path.relpath(file_path, app.root_path)
|
||||||
|
zipf.write(file_path, rel_path)
|
||||||
|
backup_info['files_included'].append(rel_path)
|
||||||
|
|
||||||
|
# Backup-Größe berechnen
|
||||||
|
backup_size = os.path.getsize(backup_path)
|
||||||
|
backup_info['size_mb'] = round(backup_size / (1024 * 1024), 2)
|
||||||
|
|
||||||
|
# Alte Backups bereinigen (nur die letzten 10 behalten)
|
||||||
|
try:
|
||||||
|
backup_files = []
|
||||||
|
for file in os.listdir(backup_dir):
|
||||||
|
if file.startswith('myp_backup_') and file.endswith('.zip'):
|
||||||
|
file_path = os.path.join(backup_dir, file)
|
||||||
|
backup_files.append((file_path, os.path.getctime(file_path)))
|
||||||
|
|
||||||
|
# Nach Erstellungszeit sortieren
|
||||||
|
backup_files.sort(key=lambda x: x[1], reverse=True)
|
||||||
|
|
||||||
|
# Alte Backups löschen (mehr als 10)
|
||||||
|
for old_backup, _ in backup_files[10:]:
|
||||||
|
try:
|
||||||
|
os.remove(old_backup)
|
||||||
|
app_logger.info(f"Altes Backup gelöscht: {os.path.basename(old_backup)}")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
app_logger.warning(f"Fehler beim Bereinigen alter Backups: {str(e)}")
|
||||||
|
|
||||||
|
app_logger.info(f"✅ Backup erfolgreich erstellt: {backup_filename} ({backup_info['size_mb']} MB)")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': f'Backup erfolgreich erstellt: {backup_filename}',
|
||||||
|
'details': backup_info
|
||||||
|
})
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
app_logger.error(f"❌ Fehler bei Backup-Erstellung: {str(e)}")
|
||||||
|
return jsonify({
|
||||||
|
'success': False,
|
||||||
|
'message': f'Fehler bei der Backup-Erstellung: {str(e)}'
|
||||||
|
}), 500
|
||||||
|
|
||||||
@app.route('/api/maintenance/tasks', methods=['GET', 'POST'])
|
@app.route('/api/maintenance/tasks', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def maintenance_tasks():
|
def maintenance_tasks():
|
||||||
|
BIN
backend/database/backups/myp_backup_20250601_143619.zip
Normal file
BIN
backend/database/backups/myp_backup_20250601_143619.zip
Normal file
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.
@ -45,3 +45,6 @@
|
|||||||
2025-06-01 13:22:49 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 13:22:49 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
2025-06-01 13:36:31 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 13:36:31 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
2025-06-01 13:39:56 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
2025-06-01 13:39:56 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 14:29:35 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 14:32:50 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
2025-06-01 14:36:04 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
|
||||||
|
@ -1148,3 +1148,136 @@ WHERE users.id = ?
|
|||||||
2025-06-01 14:16:35 - [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 14:16:35 - [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 14:17:35 - [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 14:17:35 - [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 14:17:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
2025-06-01 14:17:45 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:29:35 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 14:29:36 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 14:29:36 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 14:29:37 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 14:29:59 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:00 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:04 - [app] app - [INFO] INFO - Admin-Check für Funktion delete_user: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:05 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:05 - [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 14:30:07 - [app] app - [INFO] INFO - Admin-Check für Funktion delete_user: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:08 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:08 - [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 14:30:10 - [app] app - [INFO] INFO - Admin-Check für Funktion delete_user: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:11 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:11 - [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 14:30:14 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:14 - [app] app - [INFO] INFO - Admin-Gastanfragen Seite aufgerufen von User 1
|
||||||
|
2025-06-01 14:30:14 - [app] app - [INFO] INFO - Admin-Check für Funktion get_admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:14 - [app] app - [INFO] INFO - API-Aufruf /api/admin/guest-requests von User 1
|
||||||
|
2025-06-01 14:30:14 - [app] app - [INFO] INFO - Admin-Gastaufträge geladen: 0 von 0 (Status: all)
|
||||||
|
2025-06-01 14:30:17 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:18 - [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 14:30:19 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:19 - [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 14:30:21 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:21 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:23 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:23 - [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 14:30:30 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:30 - [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 14:30:34 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:34 - [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 14:30:35 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:35 - [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 14:30:35 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:35 - [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 14:30:36 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:36 - [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 14:30:36 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:36 - [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 14:30:37 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:37 - [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 14:30:37 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:37 - [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 14:30:37 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:38 - [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 14:30:38 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:38 - [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 14:30:39 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:39 - [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 14:30:42 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:30:42 - [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 14:31:12 - [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 14:31:42 - [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 14:32:12 - [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 14:32:42 - [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 14:32:50 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 14:32:51 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 14:32:53 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:54 - [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 14:32:55 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:55 - [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 14:32:56 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:56 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:57 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:57 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:57 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:58 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:58 - [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 14:32:59 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:32:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:33:29 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:33:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:34:29 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:34:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:35:29 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:35:59 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:35:59 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:04 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
|
||||||
|
2025-06-01 14:36:05 - [app] app - [INFO] INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen)
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - ℹ️ Keine Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - Job-Scheduler gestartet
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
|
||||||
|
2025-06-01 14:36:06 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
|
||||||
|
2025-06-01 14:36:08 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:08 - [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 14:36:19 - [app] app - [INFO] INFO - Admin-Check für Funktion api_create_backup: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:19 - [app] app - [INFO] INFO - 💾 Backup-Erstellung gestartet von Benutzer admin
|
||||||
|
2025-06-01 14:36:19 - [app] app - [INFO] INFO - ✅ Backup erfolgreich erstellt: myp_backup_20250601_143619.zip (0.0 MB)
|
||||||
|
2025-06-01 14:36:23 - [app] app - [INFO] INFO - Admin-Check für Funktion api_optimize_database: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:23 - [app] app - [INFO] INFO - 🔧 Datenbank-Optimierung gestartet von Benutzer admin
|
||||||
|
2025-06-01 14:36:23 - [app] app - [INFO] INFO - ✅ Datenbank-Optimierung abgeschlossen: {'tables_analyzed': 1, 'indexes_rebuilt': 1, 'space_freed_mb': 1, 'errors': [], 'orphaned_files_removed': 0}
|
||||||
|
2025-06-01 14:36:26 - [app] app - [INFO] INFO - Admin-Check für Funktion api_clear_cache: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:26 - [app] app - [INFO] INFO - 🧹 Cache-Löschung gestartet von Benutzer admin
|
||||||
|
2025-06-01 14:36:26 - [app] app - [INFO] INFO - ✅ Cache erfolgreich geleert. 0 temporäre Dateien entfernt
|
||||||
|
2025-06-01 14:36:38 - [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 14:36:54 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:36:55 - [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 14:37:00 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
2025-06-01 14:37:00 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||||
|
@ -45,3 +45,6 @@
|
|||||||
2025-06-01 13:22:49 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 13:22:49 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
2025-06-01 13:36:31 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 13:36:31 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
2025-06-01 13:39:56 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
2025-06-01 13:39:56 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 14:29:35 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 14:32:50 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
2025-06-01 14:36:04 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
|
||||||
|
@ -26,3 +26,4 @@
|
|||||||
2025-06-01 13:23:09 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
2025-06-01 13:23:09 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||||
2025-06-01 13:23:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
2025-06-01 13:23:21 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||||
2025-06-01 13:36:49 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
2025-06-01 13:36:49 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||||
|
2025-06-01 14:29:52 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||||
|
@ -173,3 +173,15 @@
|
|||||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
2025-06-01 13:39:58 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 14:29:36 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:29:36 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:29:36 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 14:29:36 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 14:32:51 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:32:51 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:32:51 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 14:32:51 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
2025-06-01 14:36:05 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:36:06 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
|
||||||
|
2025-06-01 14:36:06 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
|
||||||
|
2025-06-01 14:36:06 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
|
||||||
|
@ -45,3 +45,6 @@
|
|||||||
2025-06-01 13:22:49 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 13:22:49 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
2025-06-01 13:36:31 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 13:36:31 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
2025-06-01 13:39:56 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
2025-06-01 13:39:56 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:29:35 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:32:50 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:36:04 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
|
||||||
|
@ -43,3 +43,6 @@
|
|||||||
2025-06-01 13:22:50 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 13:22:50 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
2025-06-01 13:36:33 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 13:36:33 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
2025-06-01 13:39:57 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
2025-06-01 13:39:57 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 14:29:36 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 14:32:51 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
2025-06-01 14:36:06 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
|
||||||
|
@ -60,3 +60,4 @@
|
|||||||
2025-06-01 13:23:06 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
2025-06-01 13:23:06 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||||
2025-06-01 13:23:19 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
2025-06-01 13:23:19 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||||
2025-06-01 13:36:46 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
2025-06-01 13:36:46 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||||
|
2025-06-01 14:29:47 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||||
|
@ -86,3 +86,9 @@
|
|||||||
2025-06-01 13:36:33 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 13:36:33 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
2025-06-01 13:39:57 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 13:39:57 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
2025-06-01 13:39:58 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
2025-06-01 13:39:58 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:29:36 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:29:36 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:32:51 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:32:51 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:36:06 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
2025-06-01 14:36:06 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
|
||||||
|
@ -86,3 +86,9 @@
|
|||||||
2025-06-01 13:36:33 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 13:36:33 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
2025-06-01 13:39:58 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:29:36 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:29:36 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:32:51 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:32:51 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:36:06 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
2025-06-01 14:36:06 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
|
||||||
|
@ -41,3 +41,6 @@
|
|||||||
2025-06-01 13:22:50 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 13:22:50 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
2025-06-01 13:36:33 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 13:36:33 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
2025-06-01 13:39:58 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
2025-06-01 13:39:58 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 14:29:36 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 14:32:51 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
2025-06-01 14:36:06 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
|
||||||
|
@ -1358,3 +1358,206 @@
|
|||||||
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
2025-06-01 14:17:48 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:29:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 14:29:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 14:29:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 14:29:37 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:29:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 14:29:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 14:29:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 14:29:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 14:29:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:29:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:29:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:29:49 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:29:49 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 14:29:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:29:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:29:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:29:50 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:29:55 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 14:30:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 14:30:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:05 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:05 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 14:30:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:08 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:08 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:11 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:11 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:13 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.1s
|
||||||
|
2025-06-01 14:30:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:14 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:14 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:18 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:18 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:19 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:19 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:19 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:19 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:21 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:21 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:21 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:23 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:23 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:23 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:23 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:30 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:30 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:30 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:30 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:34 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:34 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:34 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:34 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:35 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:36 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:37 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:38 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:39 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:39 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:30:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:30:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:31:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:31:12 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:31:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:31:12 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:31:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:31:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:31:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:31:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:12 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:12 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:42 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 14:32:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 14:32:51 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 14:32:51 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:32:52 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 14:32:52 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 14:32:52 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 14:32:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:54 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:54 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:55 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:55 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:55 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:55 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:56 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:56 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:57 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:57 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 14:32:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:58 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:58 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:58 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:32:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:32:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:33:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 14:33:10 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 14:33:16 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 14:33:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 14:33:28 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||||
|
2025-06-01 14:33:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:33:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:33:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:33:29 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:33:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:33:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:33:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:33:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:18 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:18 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:45 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:45 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:35:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:35:59 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:36:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
|
||||||
|
2025-06-01 14:36:04 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
|
||||||
|
2025-06-01 14:36:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
|
||||||
|
2025-06-01 14:36:06 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
|
||||||
|
2025-06-01 14:36:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
|
||||||
|
2025-06-01 14:36:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
|
||||||
|
2025-06-01 14:36:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
|
||||||
|
2025-06-01 14:36:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:36:08 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:36:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:36:08 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:36:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
|
||||||
|
2025-06-01 14:36:18 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
|
||||||
|
2025-06-01 14:36:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
|
||||||
|
2025-06-01 14:36:30 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
|
||||||
|
2025-06-01 14:36:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
|
||||||
|
2025-06-01 14:36:42 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
|
||||||
|
2025-06-01 14:36:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:36:54 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:36:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:36:54 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:37:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:37:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
2025-06-01 14:37:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||||
|
2025-06-01 14:37:00 - [printer_monitor] printer_monitor - [INFO] INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||||
|
@ -3683,3 +3683,128 @@
|
|||||||
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.35ms
|
2025-06-01 14:17:48 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.35ms
|
||||||
|
2025-06-01 14:29:47 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||||
|
2025-06-01 14:29:49 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||||
|
2025-06-01 14:29:49 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:29:49 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:29:49 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.02ms
|
||||||
|
2025-06-01 14:29:50 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:29:50 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:29:50 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.37ms
|
||||||
|
2025-06-01 14:30:00 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:00 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:00 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.81ms
|
||||||
|
2025-06-01 14:30:05 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:05 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:05 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.36ms
|
||||||
|
2025-06-01 14:30:08 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:08 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:08 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.34ms
|
||||||
|
2025-06-01 14:30:11 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:11 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:11 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.88ms
|
||||||
|
2025-06-01 14:30:14 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:14 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:14 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 11.00ms
|
||||||
|
2025-06-01 14:30:18 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:18 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:18 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 14.54ms
|
||||||
|
2025-06-01 14:30:19 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:19 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:19 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.15ms
|
||||||
|
2025-06-01 14:30:21 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:21 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:21 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.78ms
|
||||||
|
2025-06-01 14:30:23 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:23 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:23 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.87ms
|
||||||
|
2025-06-01 14:30:30 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:30 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:30 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.21ms
|
||||||
|
2025-06-01 14:30:34 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:34 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:34 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.79ms
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.61ms
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:35 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.44ms
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.65ms
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:36 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.02ms
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.39ms
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:37 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.43ms
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.19ms
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:38 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.25ms
|
||||||
|
2025-06-01 14:30:39 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:39 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:39 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.63ms
|
||||||
|
2025-06-01 14:30:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:30:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:30:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.06ms
|
||||||
|
2025-06-01 14:31:12 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:31:12 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:31:12 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.54ms
|
||||||
|
2025-06-01 14:31:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:31:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:31:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.57ms
|
||||||
|
2025-06-01 14:32:12 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:12 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:12 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.74ms
|
||||||
|
2025-06-01 14:32:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.22ms
|
||||||
|
2025-06-01 14:32:54 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:54 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:54 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 86.03ms
|
||||||
|
2025-06-01 14:32:55 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:55 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:55 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.19ms
|
||||||
|
2025-06-01 14:32:56 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:56 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:56 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.64ms
|
||||||
|
2025-06-01 14:32:57 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:57 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:57 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.97ms
|
||||||
|
2025-06-01 14:32:58 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:58 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:58 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.31ms
|
||||||
|
2025-06-01 14:32:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:32:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:32:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.29ms
|
||||||
|
2025-06-01 14:33:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:33:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:33:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.67ms
|
||||||
|
2025-06-01 14:33:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:33:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:33:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.46ms
|
||||||
|
2025-06-01 14:35:18 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:35:18 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:35:18 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.43ms
|
||||||
|
2025-06-01 14:35:45 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:35:45 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:35:45 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.27ms
|
||||||
|
2025-06-01 14:35:59 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:35:59 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:35:59 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.03ms
|
||||||
|
2025-06-01 14:36:08 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:36:08 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:36:08 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.68ms
|
||||||
|
2025-06-01 14:36:54 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:36:54 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:36:54 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.66ms
|
||||||
|
2025-06-01 14:37:00 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||||
|
2025-06-01 14:37:00 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||||
|
2025-06-01 14:37:00 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.52ms
|
||||||
|
@ -2937,3 +2937,12 @@
|
|||||||
2025-06-01 13:39:56 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
2025-06-01 13:39:56 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
2025-06-01 13:39:58 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 14:29:35 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 14:29:37 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 14:29:37 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 14:32:50 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 14:32:51 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 14:32:51 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
2025-06-01 14:36:04 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||||
|
2025-06-01 14:36:06 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet
|
||||||
|
2025-06-01 14:36:06 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet
|
||||||
|
@ -41,3 +41,6 @@
|
|||||||
2025-06-01 13:22:50 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 13:22:50 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
2025-06-01 13:36:33 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 13:36:33 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
2025-06-01 13:39:58 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
2025-06-01 13:39:58 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 14:29:36 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 14:32:51 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
2025-06-01 14:36:06 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
|
||||||
|
@ -106,3 +106,6 @@
|
|||||||
2025-06-01 13:22:50 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 13:22:50 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
2025-06-01 13:36:33 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 13:36:33 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
2025-06-01 13:39:58 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
2025-06-01 13:39:58 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:29:36 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:32:51 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
2025-06-01 14:36:06 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
|
||||||
|
@ -381,3 +381,30 @@
|
|||||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - ==================================================
|
2025-06-01 13:39:58 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 14:29:36 - [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 14:29:36 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T14:29:36.846650
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 14:29:36 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 14:32:51 - [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 14:32:51 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T14:32:51.257480
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 14:32:51 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-01 14:36:06 - [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 14:36:06 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-01T14:36:06.188447
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-01 14:36:06 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
@ -4,3 +4,7 @@
|
|||||||
2025-06-01 13:23:42 - [user] user - [INFO] INFO - Neuer Benutzer 'core' erstellt von Admin 1
|
2025-06-01 13:23:42 - [user] user - [INFO] INFO - Neuer Benutzer 'core' erstellt von Admin 1
|
||||||
2025-06-01 13:24:07 - [user] user - [INFO] INFO - Neuer Benutzer 'corewe' erstellt von Admin 1
|
2025-06-01 13:24:07 - [user] user - [INFO] INFO - Neuer Benutzer 'corewe' erstellt von Admin 1
|
||||||
2025-06-01 13:24:37 - [user] user - [INFO] INFO - Neuer Benutzer 'corewedsd' erstellt von Admin 1
|
2025-06-01 13:24:37 - [user] user - [INFO] INFO - Neuer Benutzer 'corewedsd' erstellt von Admin 1
|
||||||
|
2025-06-01 14:30:04 - [user] user - [INFO] INFO - Benutzer 'core' (ID: 2) gelöscht von Admin 1
|
||||||
|
2025-06-01 14:30:07 - [user] user - [INFO] INFO - Benutzer 'corewedsd' (ID: 4) gelöscht von Admin 1
|
||||||
|
2025-06-01 14:30:10 - [user] user - [INFO] INFO - Benutzer 'corewe' (ID: 3) gelöscht von Admin 1
|
||||||
|
2025-06-01 14:37:04 - [user] user - [INFO] INFO - Benutzer admin hat seine Einstellungsseite aufgerufen
|
||||||
|
@ -178,3 +178,15 @@
|
|||||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
2025-06-01 13:39:56 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 14:29:35 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 14:29:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 14:29:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 14:29:35 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 14:32:50 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 14:32:50 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 14:32:50 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 14:32:50 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
2025-06-01 14:36:04 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-01 14:36:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
|
||||||
|
2025-06-01 14:36:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
|
||||||
|
2025-06-01 14:36:04 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
||||||
|
251
backend/setup.sh
251
backend/setup.sh
@ -139,6 +139,149 @@ update_system() {
|
|||||||
log "✅ System-Update abgeschlossen"
|
log "✅ System-Update abgeschlossen"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configure_network_security() {
|
||||||
|
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
||||||
|
|
||||||
|
# IPv6 vollständig deaktivieren
|
||||||
|
progress "Deaktiviere IPv6..."
|
||||||
|
|
||||||
|
# IPv6 in GRUB deaktivieren
|
||||||
|
if [ -f /etc/default/grub ]; then
|
||||||
|
cp /etc/default/grub /etc/default/grub.backup
|
||||||
|
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& ipv6.disable=1/' /etc/default/grub
|
||||||
|
sed -i 's/GRUB_CMDLINE_LINUX="[^"]*/& ipv6.disable=1/' /etc/default/grub
|
||||||
|
update-grub 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# IPv6 in sysctl deaktivieren
|
||||||
|
cat >> /etc/sysctl.conf << 'EOF'
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
# MYP Netzwerk-Sicherheitskonfiguration
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Für NetworkManager
|
||||||
|
if systemctl is-enabled NetworkManager 2>/dev/null; then
|
||||||
|
cat > /etc/NetworkManager/conf.d/99-disable-ipv6.conf << 'EOF'
|
||||||
|
[main]
|
||||||
|
plugins=keyfile
|
||||||
|
|
||||||
|
[keyfile]
|
||||||
|
unmanaged-devices=none
|
||||||
|
|
||||||
|
[connection]
|
||||||
|
ipv6.method=ignore
|
||||||
|
EOF
|
||||||
|
systemctl restart NetworkManager 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# IPv6 in /etc/hosts auskommentieren
|
||||||
|
sed -i 's/^::1/#::1/' /etc/hosts 2>/dev/null || true
|
||||||
|
|
||||||
|
log "✅ Erweiterte Netzwerk-Sicherheit konfiguriert:"
|
||||||
|
log " 🚫 IPv6 vollständig deaktiviert"
|
||||||
|
log " 🛡️ IP-Spoofing-Schutz aktiviert"
|
||||||
|
log " 🔒 SYN-Flood-Schutz aktiviert"
|
||||||
|
log " 📝 Verdächtige Pakete werden geloggt"
|
||||||
|
log " 🚫 Paketweiterleitung deaktiviert"
|
||||||
|
log " ⚡ TCP-Performance optimiert"
|
||||||
|
log " 🔐 RFC-Compliance für TCP aktiviert"
|
||||||
|
}
|
||||||
|
|
||||||
# =========================== DESKTOP-ENVIRONMENT ENTFERNUNG ===========================
|
# =========================== DESKTOP-ENVIRONMENT ENTFERNUNG ===========================
|
||||||
remove_desktop_environments() {
|
remove_desktop_environments() {
|
||||||
log "=== ENTFERNE DESKTOP ENVIRONMENTS FÜR KIOSK-MODUS ==="
|
log "=== ENTFERNE DESKTOP ENVIRONMENTS FÜR KIOSK-MODUS ==="
|
||||||
@ -823,7 +966,9 @@ install_dependencies_only() {
|
|||||||
check_debian_system
|
check_debian_system
|
||||||
check_internet_connection
|
check_internet_connection
|
||||||
|
|
||||||
|
configure_hostname
|
||||||
update_system
|
update_system
|
||||||
|
configure_network_security
|
||||||
install_python_dependencies
|
install_python_dependencies
|
||||||
install_nodejs_npm
|
install_nodejs_npm
|
||||||
install_ssl_certificates
|
install_ssl_certificates
|
||||||
@ -847,6 +992,7 @@ install_dependencies_only() {
|
|||||||
|
|
||||||
success "✅ Abhängigkeiten-Installation abgeschlossen!"
|
success "✅ Abhängigkeiten-Installation abgeschlossen!"
|
||||||
info "Das System ist bereit für manuelle Tests und Entwicklung"
|
info "Das System ist bereit für manuelle Tests und Entwicklung"
|
||||||
|
info "Hostname wurde auf 'raspberrypi' gesetzt"
|
||||||
info "HTTPS-Backend kann manuell gestartet werden mit:"
|
info "HTTPS-Backend kann manuell gestartet werden mit:"
|
||||||
info " cd /opt/myp && python3 app.py"
|
info " cd /opt/myp && python3 app.py"
|
||||||
}
|
}
|
||||||
@ -858,10 +1004,14 @@ install_full_production_system() {
|
|||||||
check_debian_system
|
check_debian_system
|
||||||
check_internet_connection
|
check_internet_connection
|
||||||
|
|
||||||
|
# Hostname zuerst setzen
|
||||||
|
configure_hostname
|
||||||
|
|
||||||
# Führe zuerst Abhängigkeiten-Installation durch (falls noch nicht geschehen)
|
# Führe zuerst Abhängigkeiten-Installation durch (falls noch nicht geschehen)
|
||||||
if [ ! -d "$APP_DIR" ] || [ ! -f "$APP_DIR/app.py" ]; then
|
if [ ! -d "$APP_DIR" ] || [ ! -f "$APP_DIR/app.py" ]; then
|
||||||
warning "Anwendung noch nicht deployed - führe Abhängigkeiten-Installation durch..."
|
warning "Anwendung noch nicht deployed - führe Abhängigkeiten-Installation durch..."
|
||||||
update_system
|
update_system
|
||||||
|
configure_network_security
|
||||||
install_python_dependencies
|
install_python_dependencies
|
||||||
install_nodejs_npm
|
install_nodejs_npm
|
||||||
install_ssl_certificates
|
install_ssl_certificates
|
||||||
@ -869,6 +1019,9 @@ install_full_production_system() {
|
|||||||
deploy_application
|
deploy_application
|
||||||
install_npm_dependencies
|
install_npm_dependencies
|
||||||
generate_ssl_certificate
|
generate_ssl_certificate
|
||||||
|
else
|
||||||
|
# Netzwerk-Sicherheit auch bei bestehender Installation konfigurieren
|
||||||
|
configure_network_security
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Desktop-Environments entfernen und minimale X11 installieren
|
# Desktop-Environments entfernen und minimale X11 installieren
|
||||||
@ -897,10 +1050,11 @@ install_full_production_system() {
|
|||||||
|
|
||||||
success "✅ Vollständige Kiosk-Installation abgeschlossen!"
|
success "✅ Vollständige Kiosk-Installation abgeschlossen!"
|
||||||
info "Das System ist vollständig konfiguriert:"
|
info "Das System ist vollständig konfiguriert:"
|
||||||
|
info " 🖥️ Hostname: raspberrypi"
|
||||||
info " 🖥️ Automatischer Kiosk-Modus beim Boot"
|
info " 🖥️ Automatischer Kiosk-Modus beim Boot"
|
||||||
info " 📡 SSH: ssh user@<ip> (Passwort: raspberry)"
|
info " 📡 SSH: ssh user@<ip> (Passwort: raspberry)"
|
||||||
info " 🖥️ RDP: <ip>:3389 (Benutzer: root, Passwort: 744563017196A)"
|
info " 🖥️ RDP: <ip>:3389 (Benutzer: root, Passwort: 744563017196A)"
|
||||||
info " 🔒 Firewall: 192.168.0.0/16 + localhost + m040tbaraspi001"
|
info " 🔒 Firewall: 192.168.0.0/16 + localhost + raspberrypi + m040tbaraspi001"
|
||||||
warning "⚠️ Neustart erforderlich für automatischen Kiosk-Start: sudo reboot"
|
warning "⚠️ Neustart erforderlich für automatischen Kiosk-Start: sudo reboot"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1032,30 +1186,36 @@ configure_firewall() {
|
|||||||
# Zone definieren
|
# Zone definieren
|
||||||
firewall-cmd --permanent --new-zone=myp-backend 2>/dev/null || true
|
firewall-cmd --permanent --new-zone=myp-backend 2>/dev/null || true
|
||||||
|
|
||||||
# Erweiterte Netzwerk-Quellen definieren
|
# Erweiterte Netzwerk-Quellen definieren (nur IPv4)
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=192.168.0.0/16
|
firewall-cmd --permanent --zone=myp-backend --add-source=192.168.0.0/16
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=127.0.0.1/32
|
firewall-cmd --permanent --zone=myp-backend --add-source=127.0.0.1/32
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=::1/128
|
|
||||||
|
|
||||||
# Lokaler Hostname hinzufügen (falls auflösbar)
|
# Lokaler Hostname "raspberrypi" hinzufügen
|
||||||
local local_hostname=$(hostname)
|
local local_hostname="raspberrypi"
|
||||||
if [ -n "$local_hostname" ]; then
|
progress "Füge lokalen Hostname hinzu: $local_hostname"
|
||||||
progress "Füge lokalen Hostname hinzu: $local_hostname"
|
local local_ip=$(getent hosts "$local_hostname" | awk '{print $1}' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | head -1 2>/dev/null || true)
|
||||||
# Versuche IP-Adresse des lokalen Hostnames zu ermitteln
|
if [ -n "$local_ip" ]; then
|
||||||
local local_ip=$(getent hosts "$local_hostname" | awk '{print $1}' | head -1 2>/dev/null || true)
|
firewall-cmd --permanent --zone=myp-backend --add-source="$local_ip/32" 2>/dev/null || true
|
||||||
if [ -n "$local_ip" ]; then
|
log "✅ Lokaler Hostname $local_hostname hinzugefügt: $local_ip"
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source="$local_ip/32" 2>/dev/null || true
|
else
|
||||||
fi
|
info "Lokaler Hostname $local_hostname nicht auflösbar - wird beim nächsten Boot verfügbar sein"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remote-Hostname m040tbaraspi001 hinzufügen (falls auflösbar)
|
# Frontend-Server m040tbaraspi001 hinzufügen (falls auflösbar)
|
||||||
progress "Füge Remote-Hostname hinzu: m040tbaraspi001"
|
progress "Füge Frontend-Server hinzu: m040tbaraspi001"
|
||||||
local remote_ip=$(getent hosts "m040tbaraspi001" | awk '{print $1}' | head -1 2>/dev/null || true)
|
local frontend_ip=$(getent hosts "m040tbaraspi001" | awk '{print $1}' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | head -1 2>/dev/null || true)
|
||||||
if [ -n "$remote_ip" ]; then
|
if [ -n "$frontend_ip" ]; then
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source="$remote_ip/32" 2>/dev/null || true
|
firewall-cmd --permanent --zone=myp-backend --add-source="$frontend_ip/32" 2>/dev/null || true
|
||||||
log "✅ Remote-Hostname m040tbaraspi001 hinzugefügt: $remote_ip"
|
log "✅ Frontend-Server m040tbaraspi001 hinzugefügt: $frontend_ip"
|
||||||
else
|
else
|
||||||
info "Remote-Hostname m040tbaraspi001 nicht auflösbar - überspringe"
|
# Versuche auch mit FQDN
|
||||||
|
local frontend_fqdn_ip=$(getent hosts "m040tbaraspi001.de040.corpintra.net" | awk '{print $1}' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | head -1 2>/dev/null || true)
|
||||||
|
if [ -n "$frontend_fqdn_ip" ]; then
|
||||||
|
firewall-cmd --permanent --zone=myp-backend --add-source="$frontend_fqdn_ip/32" 2>/dev/null || true
|
||||||
|
log "✅ Frontend-Server m040tbaraspi001.de040.corpintra.net hinzugefügt: $frontend_fqdn_ip"
|
||||||
|
else
|
||||||
|
info "Frontend-Server m040tbaraspi001 nicht auflösbar - überspringe"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# HTTPS für API & Kiosk zulassen
|
# HTTPS für API & Kiosk zulassen
|
||||||
@ -1067,6 +1227,11 @@ configure_firewall() {
|
|||||||
# RDP für Remote-Desktop
|
# RDP für Remote-Desktop
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-port=3389/tcp
|
firewall-cmd --permanent --zone=myp-backend --add-port=3389/tcp
|
||||||
|
|
||||||
|
# IPv6 in firewalld deaktivieren
|
||||||
|
progress "Deaktiviere IPv6 in firewalld..."
|
||||||
|
firewall-cmd --permanent --set-target=DROP --zone=public --family=ipv6 2>/dev/null || true
|
||||||
|
firewall-cmd --permanent --set-target=DROP --zone=myp-backend --family=ipv6 2>/dev/null || true
|
||||||
|
|
||||||
# Default-Zone setzen
|
# Default-Zone setzen
|
||||||
firewall-cmd --set-default-zone=myp-backend
|
firewall-cmd --set-default-zone=myp-backend
|
||||||
|
|
||||||
@ -1079,11 +1244,12 @@ configure_firewall() {
|
|||||||
|
|
||||||
log "✅ Firewall konfiguriert:"
|
log "✅ Firewall konfiguriert:"
|
||||||
log " 🔒 Zone: myp-backend"
|
log " 🔒 Zone: myp-backend"
|
||||||
log " 🌐 Netzwerk: 192.168.0.0/16"
|
log " 🌐 Netzwerk: 192.168.0.0/16 (nur IPv4)"
|
||||||
log " 🏠 Localhost: 127.0.0.1, ::1"
|
log " 🏠 Localhost: 127.0.0.1"
|
||||||
log " 🖥️ Lokaler Host: $local_hostname"
|
log " 🖥️ Lokaler Host: raspberrypi"
|
||||||
log " 📡 Remote Host: m040tbaraspi001"
|
log " 📡 Frontend-Server: m040tbaraspi001"
|
||||||
log " 🔌 Ports: 443/tcp (HTTPS), 22/tcp (SSH), 3389/tcp (RDP)"
|
log " 🔌 Ports: 443/tcp (HTTPS), 22/tcp (SSH), 3389/tcp (RDP)"
|
||||||
|
log " 🚫 IPv6 vollständig blockiert"
|
||||||
}
|
}
|
||||||
|
|
||||||
# =========================== REMOTE-ZUGANG TESTEN ===========================
|
# =========================== REMOTE-ZUGANG TESTEN ===========================
|
||||||
@ -1135,6 +1301,45 @@ test_remote_access() {
|
|||||||
log "✅ Remote-Zugang-Test abgeschlossen"
|
log "✅ Remote-Zugang-Test abgeschlossen"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# =========================== HOSTNAME KONFIGURATION ===========================
|
||||||
|
configure_hostname() {
|
||||||
|
log "=== KONFIGURIERE HOSTNAME ==="
|
||||||
|
|
||||||
|
local target_hostname="raspberrypi"
|
||||||
|
local current_hostname=$(hostname)
|
||||||
|
|
||||||
|
if [ "$current_hostname" != "$target_hostname" ]; then
|
||||||
|
progress "Setze Hostname von '$current_hostname' auf '$target_hostname'..."
|
||||||
|
|
||||||
|
# Hostname sofort setzen
|
||||||
|
hostnamectl set-hostname "$target_hostname" || error "Fehler beim Setzen des Hostnames"
|
||||||
|
|
||||||
|
# /etc/hostname aktualisieren
|
||||||
|
echo "$target_hostname" > /etc/hostname
|
||||||
|
|
||||||
|
# /etc/hosts aktualisieren
|
||||||
|
cp /etc/hosts /etc/hosts.backup
|
||||||
|
sed -i "s/127.0.1.1.*/127.0.1.1\t$target_hostname/" /etc/hosts
|
||||||
|
|
||||||
|
# Falls kein 127.0.1.1 Eintrag existiert, hinzufügen
|
||||||
|
if ! grep -q "127.0.1.1" /etc/hosts; then
|
||||||
|
echo "127.0.1.1 $target_hostname" >> /etc/hosts
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "✅ Hostname erfolgreich auf '$target_hostname' gesetzt"
|
||||||
|
else
|
||||||
|
log "✅ Hostname bereits korrekt: '$target_hostname'"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Hostname-Auflösung testen
|
||||||
|
if getent hosts "$target_hostname" >/dev/null 2>&1; then
|
||||||
|
local resolved_ip=$(getent hosts "$target_hostname" | awk '{print $1}' | head -1)
|
||||||
|
log "✅ Hostname-Auflösung funktioniert: $target_hostname -> $resolved_ip"
|
||||||
|
else
|
||||||
|
warning "⚠️ Hostname-Auflösung für '$target_hostname' fehlgeschlagen"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# =========================== NETZWERK-SICHERHEIT ===========================
|
# =========================== NETZWERK-SICHERHEIT ===========================
|
||||||
configure_network_security() {
|
configure_network_security() {
|
||||||
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
log "=== KONFIGURIERE ERWEITERTE NETZWERK-SICHERHEIT ==="
|
||||||
|
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
@ -84,12 +84,13 @@ class AdminDashboard {
|
|||||||
this.showAnalytics();
|
this.showAnalytics();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Maintenance Button
|
// Maintenance Button - DEAKTIVIERT wegen Konflikt mit MaintenanceModal
|
||||||
this.addEventListenerSafe('#maintenance-btn', 'click', (e) => {
|
// Das Wartungs-Modal wird jetzt direkt in admin.html verwaltet
|
||||||
e.preventDefault();
|
// this.addEventListenerSafe('#maintenance-btn', 'click', (e) => {
|
||||||
e.stopPropagation();
|
// e.preventDefault();
|
||||||
this.showMaintenance();
|
// e.stopPropagation();
|
||||||
});
|
// this.showMaintenance();
|
||||||
|
// });
|
||||||
|
|
||||||
// Cache leeren
|
// Cache leeren
|
||||||
this.addEventListenerSafe('#clear-cache-btn', 'click', (e) => {
|
this.addEventListenerSafe('#clear-cache-btn', 'click', (e) => {
|
||||||
|
@ -19,25 +19,34 @@ ExecStart=/bin/bash -c '\
|
|||||||
# Zone definieren (falls nicht vorhanden) \
|
# Zone definieren (falls nicht vorhanden) \
|
||||||
firewall-cmd --permanent --new-zone=myp-backend 2>/dev/null || true; \
|
firewall-cmd --permanent --new-zone=myp-backend 2>/dev/null || true; \
|
||||||
\
|
\
|
||||||
# Erweiterte Netzwerk-Quellen definieren \
|
# Erweiterte Netzwerk-Quellen definieren (nur IPv4) \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=192.168.0.0/16; \
|
firewall-cmd --permanent --zone=myp-backend --add-source=192.168.0.0/16; \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=127.0.0.1/32; \
|
firewall-cmd --permanent --zone=myp-backend --add-source=127.0.0.1/32; \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source=::1/128; \
|
|
||||||
\
|
\
|
||||||
# Lokaler Hostname hinzufügen (falls auflösbar) \
|
# Lokaler Hostname "raspberrypi" hinzufügen \
|
||||||
LOCAL_HOSTNAME=$(hostname); \
|
LOCAL_HOSTNAME="raspberrypi"; \
|
||||||
if [ -n "$LOCAL_HOSTNAME" ]; then \
|
LOCAL_IP=$(getent hosts "$LOCAL_HOSTNAME" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \
|
||||||
LOCAL_IP=$(getent hosts "$LOCAL_HOSTNAME" | awk "{print \$1}" | head -1 2>/dev/null || true); \
|
if [ -n "$LOCAL_IP" ]; then \
|
||||||
if [ -n "$LOCAL_IP" ]; then \
|
firewall-cmd --permanent --zone=myp-backend --add-source="$LOCAL_IP/32" 2>/dev/null || true; \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source="$LOCAL_IP/32" 2>/dev/null || true; \
|
logger "MYP Firewall: Lokaler Hostname $LOCAL_HOSTNAME hinzugefügt: $LOCAL_IP"; \
|
||||||
fi; \
|
else \
|
||||||
|
logger "MYP Firewall: Lokaler Hostname $LOCAL_HOSTNAME nicht auflösbar"; \
|
||||||
fi; \
|
fi; \
|
||||||
\
|
\
|
||||||
# Remote-Hostname m040tbaraspi001 hinzufügen (falls auflösbar) \
|
# Frontend-Server m040tbaraspi001 hinzufügen (falls auflösbar) \
|
||||||
REMOTE_IP=$(getent hosts "m040tbaraspi001" | awk "{print \$1}" | head -1 2>/dev/null || true); \
|
FRONTEND_IP=$(getent hosts "m040tbaraspi001" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \
|
||||||
if [ -n "$REMOTE_IP" ]; then \
|
if [ -n "$FRONTEND_IP" ]; then \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-source="$REMOTE_IP/32" 2>/dev/null || true; \
|
firewall-cmd --permanent --zone=myp-backend --add-source="$FRONTEND_IP/32" 2>/dev/null || true; \
|
||||||
logger "MYP Firewall: Remote-Hostname m040tbaraspi001 hinzugefügt: $REMOTE_IP"; \
|
logger "MYP Firewall: Frontend-Server m040tbaraspi001 hinzugefügt: $FRONTEND_IP"; \
|
||||||
|
else \
|
||||||
|
# Versuche auch mit FQDN \
|
||||||
|
FRONTEND_FQDN_IP=$(getent hosts "m040tbaraspi001.de040.corpintra.net" | awk "{print \$1}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" | head -1 2>/dev/null || true); \
|
||||||
|
if [ -n "$FRONTEND_FQDN_IP" ]; then \
|
||||||
|
firewall-cmd --permanent --zone=myp-backend --add-source="$FRONTEND_FQDN_IP/32" 2>/dev/null || true; \
|
||||||
|
logger "MYP Firewall: Frontend-Server m040tbaraspi001.de040.corpintra.net hinzugefügt: $FRONTEND_FQDN_IP"; \
|
||||||
|
else \
|
||||||
|
logger "MYP Firewall: Frontend-Server m040tbaraspi001 nicht auflösbar"; \
|
||||||
|
fi; \
|
||||||
fi; \
|
fi; \
|
||||||
\
|
\
|
||||||
# HTTPS für API & Kiosk \
|
# HTTPS für API & Kiosk \
|
||||||
@ -49,6 +58,10 @@ ExecStart=/bin/bash -c '\
|
|||||||
# RDP für Remote-Desktop \
|
# RDP für Remote-Desktop \
|
||||||
firewall-cmd --permanent --zone=myp-backend --add-port=3389/tcp; \
|
firewall-cmd --permanent --zone=myp-backend --add-port=3389/tcp; \
|
||||||
\
|
\
|
||||||
|
# IPv6 in firewalld deaktivieren \
|
||||||
|
firewall-cmd --permanent --set-target=DROP --zone=public --family=ipv6 2>/dev/null || true; \
|
||||||
|
firewall-cmd --permanent --set-target=DROP --zone=myp-backend --family=ipv6 2>/dev/null || true; \
|
||||||
|
\
|
||||||
# Default-Zone setzen \
|
# Default-Zone setzen \
|
||||||
firewall-cmd --set-default-zone=myp-backend; \
|
firewall-cmd --set-default-zone=myp-backend; \
|
||||||
\
|
\
|
||||||
@ -56,7 +69,7 @@ ExecStart=/bin/bash -c '\
|
|||||||
firewall-cmd --reload; \
|
firewall-cmd --reload; \
|
||||||
\
|
\
|
||||||
# Status loggen \
|
# Status loggen \
|
||||||
logger "MYP Firewall: Konfiguration erfolgreich angewendet"; \
|
logger "MYP Firewall: Konfiguration erfolgreich angewendet (IPv6 deaktiviert, Frontend-Server m040tbaraspi001)"; \
|
||||||
firewall-cmd --list-all-zones | logger -t "MYP-Firewall"; \
|
firewall-cmd --list-all-zones | logger -t "MYP-Firewall"; \
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -625,27 +625,50 @@ class MaintenanceModal {
|
|||||||
this.closeBtn = document.getElementById('close-maintenance-modal');
|
this.closeBtn = document.getElementById('close-maintenance-modal');
|
||||||
this.isOpen = false;
|
this.isOpen = false;
|
||||||
this.isLoading = false;
|
this.isLoading = false;
|
||||||
|
this.isInitialized = false;
|
||||||
|
|
||||||
|
// Verhindere doppelte Initialisierung
|
||||||
|
if (window.maintenanceModalInstance) {
|
||||||
|
return window.maintenanceModalInstance;
|
||||||
|
}
|
||||||
|
|
||||||
this.initializeEventListeners();
|
this.initializeEventListeners();
|
||||||
|
this.isInitialized = true;
|
||||||
|
window.maintenanceModalInstance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
initializeEventListeners() {
|
initializeEventListeners() {
|
||||||
// Modal öffnen
|
// Modal öffnen - mit Event-Delegation und Konflikt-Vermeidung
|
||||||
if (this.triggerBtn) {
|
if (this.triggerBtn) {
|
||||||
this.triggerBtn.addEventListener('click', (e) => {
|
// Entferne alle existierenden Event-Listener
|
||||||
|
this.triggerBtn.removeEventListener('click', this.handleTriggerClick);
|
||||||
|
|
||||||
|
// Füge neuen Event-Listener hinzu
|
||||||
|
this.handleTriggerClick = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
e.stopImmediatePropagation();
|
||||||
|
|
||||||
|
console.log('🛠️ Wartungs-Modal wird geöffnet...');
|
||||||
this.openModal();
|
this.openModal();
|
||||||
});
|
};
|
||||||
|
|
||||||
|
this.triggerBtn.addEventListener('click', this.handleTriggerClick, { capture: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modal schließen
|
// Modal schließen
|
||||||
if (this.closeBtn) {
|
if (this.closeBtn) {
|
||||||
this.closeBtn.addEventListener('click', () => this.closeModal());
|
this.closeBtn.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.closeModal();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modal schließen bei Klick außerhalb
|
// Modal schließen bei Klick außerhalb - aber nur auf das Overlay
|
||||||
if (this.modal) {
|
if (this.modal) {
|
||||||
this.modal.addEventListener('click', (e) => {
|
this.modal.addEventListener('click', (e) => {
|
||||||
|
// Nur schließen wenn direkt auf das Modal-Overlay geklickt wird
|
||||||
if (e.target === this.modal) {
|
if (e.target === this.modal) {
|
||||||
this.closeModal();
|
this.closeModal();
|
||||||
}
|
}
|
||||||
@ -655,6 +678,7 @@ class MaintenanceModal {
|
|||||||
// ESC-Taste zum Schließen
|
// ESC-Taste zum Schließen
|
||||||
document.addEventListener('keydown', (e) => {
|
document.addEventListener('keydown', (e) => {
|
||||||
if (e.key === 'Escape' && this.isOpen) {
|
if (e.key === 'Escape' && this.isOpen) {
|
||||||
|
e.preventDefault();
|
||||||
this.closeModal();
|
this.closeModal();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -665,36 +689,59 @@ class MaintenanceModal {
|
|||||||
|
|
||||||
initializeMaintenanceActions() {
|
initializeMaintenanceActions() {
|
||||||
const actions = [
|
const actions = [
|
||||||
{ id: 'modal-clear-cache', handler: () => this.executeAction('clearCache') },
|
{ id: 'modal-clear-cache', handler: (e) => {
|
||||||
{ id: 'modal-optimize-db', handler: () => this.executeAction('optimizeDatabase') },
|
e.preventDefault();
|
||||||
{ id: 'modal-create-backup', handler: () => this.executeAction('createBackup') },
|
e.stopPropagation();
|
||||||
{ id: 'modal-advanced-settings', handler: () => this.navigateToSettings() }
|
this.executeAction('clearCache');
|
||||||
|
}},
|
||||||
|
{ id: 'modal-optimize-db', handler: (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.executeAction('optimizeDatabase');
|
||||||
|
}},
|
||||||
|
{ id: 'modal-create-backup', handler: (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.executeAction('createBackup');
|
||||||
|
}},
|
||||||
|
{ id: 'modal-advanced-settings', handler: (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
this.navigateToSettings();
|
||||||
|
}}
|
||||||
];
|
];
|
||||||
|
|
||||||
actions.forEach(action => {
|
actions.forEach(action => {
|
||||||
const element = document.getElementById(action.id);
|
const element = document.getElementById(action.id);
|
||||||
if (element) {
|
if (element) {
|
||||||
|
// Entferne existierende Event-Listener
|
||||||
|
element.removeEventListener('click', action.handler);
|
||||||
|
// Füge neuen Event-Listener hinzu
|
||||||
element.addEventListener('click', action.handler);
|
element.addEventListener('click', action.handler);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
openModal() {
|
openModal() {
|
||||||
if (this.modal) {
|
if (this.modal && !this.isOpen) {
|
||||||
|
console.log('✅ Modal wird geöffnet');
|
||||||
this.modal.classList.remove('hidden');
|
this.modal.classList.remove('hidden');
|
||||||
this.isOpen = true;
|
this.isOpen = true;
|
||||||
document.body.style.overflow = 'hidden';
|
document.body.style.overflow = 'hidden';
|
||||||
|
|
||||||
// Focus-Management für Barrierefreiheit
|
// Focus-Management für Barrierefreiheit
|
||||||
const firstFocusable = this.modal.querySelector('button');
|
setTimeout(() => {
|
||||||
if (firstFocusable) {
|
const firstFocusable = this.modal.querySelector('button:not(#close-maintenance-modal)');
|
||||||
firstFocusable.focus();
|
if (firstFocusable) {
|
||||||
}
|
firstFocusable.focus();
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
closeModal() {
|
closeModal() {
|
||||||
if (this.modal) {
|
if (this.modal && this.isOpen) {
|
||||||
|
console.log('❌ Modal wird geschlossen');
|
||||||
this.modal.classList.add('hidden');
|
this.modal.classList.add('hidden');
|
||||||
this.isOpen = false;
|
this.isOpen = false;
|
||||||
document.body.style.overflow = '';
|
document.body.style.overflow = '';
|
||||||
@ -793,7 +840,7 @@ class MaintenanceModal {
|
|||||||
|
|
||||||
if (response.ok && result.success) {
|
if (response.ok && result.success) {
|
||||||
showNotification(successMessage, 'success');
|
showNotification(successMessage, 'success');
|
||||||
this.closeModal();
|
// Modal NICHT automatisch schließen - Benutzer soll entscheiden
|
||||||
} else {
|
} else {
|
||||||
showNotification(result.message || 'Fehler bei der Ausführung der Wartungsaktion', 'error');
|
showNotification(result.message || 'Fehler bei der Ausführung der Wartungsaktion', 'error');
|
||||||
}
|
}
|
||||||
@ -820,11 +867,31 @@ class MaintenanceModal {
|
|||||||
// Globale Wartungs-Modal Instanz
|
// Globale Wartungs-Modal Instanz
|
||||||
let maintenanceModal = null;
|
let maintenanceModal = null;
|
||||||
|
|
||||||
// Initialisierung nach DOM-Laden
|
// Initialisierung nach DOM-Laden - aber nur einmal
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
// Nur einmal initialisieren
|
// Verhindere doppelte Initialisierung
|
||||||
if (!maintenanceModal) {
|
if (!window.maintenanceModalInstance && !maintenanceModal) {
|
||||||
|
console.log('🔧 Wartungs-Modal wird initialisiert...');
|
||||||
maintenanceModal = new MaintenanceModal();
|
maintenanceModal = new MaintenanceModal();
|
||||||
|
|
||||||
|
// Deaktiviere andere Event-Handler für den Wartungs-Button
|
||||||
|
const maintenanceBtn = document.getElementById('maintenance-btn');
|
||||||
|
if (maintenanceBtn) {
|
||||||
|
// Entferne alle anderen Event-Listener
|
||||||
|
const newBtn = maintenanceBtn.cloneNode(true);
|
||||||
|
maintenanceBtn.parentNode.replaceChild(newBtn, maintenanceBtn);
|
||||||
|
|
||||||
|
// Füge nur unseren Event-Listener hinzu
|
||||||
|
newBtn.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
e.stopImmediatePropagation();
|
||||||
|
|
||||||
|
if (maintenanceModal) {
|
||||||
|
maintenanceModal.openModal();
|
||||||
|
}
|
||||||
|
}, { capture: true });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user