Files
MCM/serve_tui.py
itdrui.de 23fb37cb1a fix: textual-serve als Web-Frontend statt python -m textual serve
textual serve (python -m textual) startete immer die eingebaute Demo.
Lösung: textual-serve Paket (v1.1.3) mit eigenem serve_tui.py Einstiegspunkt.
Pro Browser-Verbindung wird tui_standalone.py als eigener Subprocess gestartet.

Starten: python serve_tui.py --host 0.0.0.0 --port 8001
2026-03-13 14:12:25 +01:00

42 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""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()