import subprocess
import os
import sys

def start_server():
    project_dir = os.path.dirname(os.path.abspath(__file__))
    command = [
        "gunicorn",
        "--worker-class", "eventlet",
        "-w", "1",
        "--bind", "0.0.0.0:5000",
        "wsgi:app"
    ]
    print("=============================================")
    print("=== AstraOS Produktionsserver wird gestartet ===")
    print(f"=== Arbeitsverzeichnis: {project_dir}")
    print(f"=== Befehl: {' '.join(command)}")
    print("=============================================")
    print("Drücken Sie STRG+C, um den Server zu beenden.")
    try:
        subprocess.run(command, cwd=project_dir, check=True)
    except FileNotFoundError:
        print("\n[FEHLER] 'gunicorn' wurde nicht gefunden.")
        print("Stellen Sie sicher, dass Gunicorn installiert ist ('pip install gunicorn').")
        sys.exit(1)
    except subprocess.CalledProcessError as e:
        print(f"\n[FEHLER] Der Server wurde unerwartet beendet: {e}")
        sys.exit(1)
    except KeyboardInterrupt:
        print("\nServer wurde vom Benutzer gestoppt.")
        sys.exit(0)

if __name__ == "__main__":
    start_server()

