"""MCM TUI Web-Server via textual-serve. Startet einen Web-Server, der die TUI pro Browser-Verbindung als Subprocess ausführt. Voraussetzung: MCM API-Server muss bereits laufen (python main_api_only.py). Verwendung: python serve_tui.py [--host 0.0.0.0] [--port 8001] """ import asyncio import sys from textual_serve.server import Server from config import settings def main() -> None: import argparse parser = argparse.ArgumentParser(description="MCM TUI Web-Server") parser.add_argument("--host", default="0.0.0.0", help="Host (default: 0.0.0.0)") parser.add_argument( "--port", type=int, default=settings.web_port, help=f"Port (default: {settings.web_port})" ) args = parser.parse_args() # Pfad zum Python-Interpreter im venv, damit alle Pakete verfügbar sind python = sys.executable command = f"{python} tui_standalone.py" print(f"MCM TUI Web-Server startet auf http://{args.host}:{args.port}") print(f"Subprocess-Befehl: {command}") print("Ctrl+C zum Beenden.") server = Server(command=command, host=args.host, port=args.port, title="MCM – MultiCustomerMessenger") asyncio.run(server.serve()) if __name__ == "__main__": main()