"feat: Implement new deployment configuration and database setup for Raspberry Pi"

This commit is contained in:
2025-05-26 12:31:24 +02:00
parent ea6ff08c15
commit 8d84b9157e
5 changed files with 453 additions and 4 deletions

View File

@@ -37,7 +37,7 @@ PRINTERS = {
}
# Logging-Konfiguration
LOG_DIR = "/home/user/Projektarbeit-MYP/backend/app/logs"
LOG_DIR = os.path.join(BASE_DIR, "logs")
LOG_SUBDIRS = ["app", "scheduler", "auth", "jobs", "printers", "errors"]
LOG_LEVEL = "INFO"
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
@@ -52,9 +52,9 @@ SESSION_LIFETIME = timedelta(days=7)
# SSL-Konfiguration
SSL_ENABLED = get_env_variable("MYP_SSL_ENABLED", "True").lower() in ("true", "1", "yes")
SSL_CERT_PATH = "/home/user/Projektarbeit-MYP/backend/certs/myp.crt"
SSL_KEY_PATH = "/home/user/Projektarbeit-MYP/backend/certs/myp.key"
SSL_HOSTNAME = get_env_variable("MYP_SSL_HOSTNAME", "raspberrypi")
SSL_CERT_PATH = os.path.join(BASE_DIR, "certs", "myp.crt")
SSL_KEY_PATH = os.path.join(BASE_DIR, "certs", "myp.key")
SSL_HOSTNAME = get_env_variable("MYP_SSL_HOSTNAME", "localhost")
# Scheduler-Konfiguration
SCHEDULER_INTERVAL = 60 # Sekunden

Binary file not shown.

View File

@@ -0,0 +1,117 @@
#!/usr/bin/env python3
"""
Drucker-Datenbank Setup für MYP Platform
Trägt die hardkodierten Drucker in die Datenbank ein.
"""
import os
import sys
sys.path.append('.')
from config.settings import PRINTERS
from database.db_manager import DatabaseManager
from models import Printer
from datetime import datetime
def setup_drucker():
"""Trägt die hardkodierten Drucker in die Datenbank ein."""
print("=== MYP Platform - Drucker-Setup ===")
print(f"Hardkodierte Drucker: {len(PRINTERS)}")
try:
db = DatabaseManager()
session = db.get_session()
# Alle existierenden Drucker löschen
existing_printers = session.query(Printer).all()
if existing_printers:
print(f"Lösche {len(existing_printers)} existierende Drucker...")
for printer in existing_printers:
session.delete(printer)
session.commit()
print("✅ Alle alten Drucker gelöscht")
else:
print("Keine existierenden Drucker gefunden")
# Neue Drucker hinzufügen
added_count = 0
for printer_name, config in PRINTERS.items():
# Neuen Drucker erstellen
new_printer = Printer(
name=printer_name,
model="P115", # Standard-Modell
location="Labor", # Standard-Standort
ip_address=config["ip"],
mac_address=f"98:25:4A:E1:{printer_name[-1]}0:0{printer_name[-1]}", # Dummy MAC
plug_ip=config["ip"],
plug_username="admin",
plug_password="admin",
status="available", # Verfügbar, da in Konfiguration
active=True,
created_at=datetime.now()
)
session.add(new_printer)
print(f"{printer_name}: Hinzugefügt (IP: {config['ip']})")
added_count += 1
# Änderungen speichern
session.commit()
session.close()
print(f"\n{added_count} neue Drucker erfolgreich hinzugefügt")
return True
except Exception as e:
print(f"❌ Fehler beim Setup der Drucker: {e}")
import traceback
traceback.print_exc()
if 'session' in locals():
session.rollback()
session.close()
return False
def list_drucker():
"""Zeigt alle Drucker in der Datenbank an."""
print("\n=== Drucker in der Datenbank ===")
try:
db = DatabaseManager()
session = db.get_session()
printers = session.query(Printer).all()
if not printers:
print("Keine Drucker in der Datenbank gefunden.")
return True
print(f"{'ID':<5} {'Name':<15} {'Status':<12} {'IP-Adresse':<15} {'Aktiv':<8}")
print("-" * 60)
for printer in printers:
active_str = "" if printer.active else ""
print(f"{printer.id:<5} {printer.name:<15} {printer.status:<12} {printer.ip_address:<15} {active_str:<8}")
session.close()
print(f"\nGesamt: {len(printers)} Drucker")
return True
except Exception as e:
print(f"❌ Fehler beim Abrufen der Drucker: {e}")
if 'session' in locals():
session.close()
return False
if __name__ == "__main__":
print("MYP Platform - Drucker-Datenbank Setup")
print("=" * 40)
success = setup_drucker()
if success:
list_drucker()
print("\n✅ Drucker-Setup erfolgreich abgeschlossen!")
else:
print("\n❌ Drucker-Setup fehlgeschlagen!")
sys.exit(1)