feat: start.sh mit IP-Ausgabe, TELEGRAM_BOT_USERNAME in config, Telegram-Task sauber canceln

This commit is contained in:
2026-04-02 13:06:12 +02:00
parent 28d3b36b78
commit e9f3d28554

63
start.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
# MCM MultiCustomerMessenger Startskript
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# Virtuelle Umgebung
PYTHON=".venv/bin/python"
if [ ! -x "$PYTHON" ]; then
echo "Fehler: .venv nicht gefunden. Bitte erst 'python -m venv .venv && .venv/bin/pip install -r requirements.txt' ausführen."
exit 1
fi
# Lokale IP ermitteln
LOCAL_IP=$(python3 -c "
import socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
print(s.getsockname()[0])
s.close()
except Exception:
print('localhost')
")
# Ports aus .env lesen (Fallback auf Standardwerte)
API_PORT=$(grep -E '^PORT=' .env 2>/dev/null | cut -d= -f2 | tr -d '[:space:]')
WEB_PORT=$(grep -E '^WEB_PORT=' .env 2>/dev/null | cut -d= -f2 | tr -d '[:space:]')
API_PORT=${API_PORT:-8000}
WEB_PORT=${WEB_PORT:-8001}
echo ""
echo "╔══════════════════════════════════════════════════╗"
echo "║ MCM MultiCustomerMessenger ║"
echo "╠══════════════════════════════════════════════════╣"
echo "║ REST-API : http://${LOCAL_IP}:${API_PORT} "
echo "║ Web-TUI : http://${LOCAL_IP}:${WEB_PORT} "
echo "╚══════════════════════════════════════════════════╝"
echo ""
# Web-TUI im Hintergrund starten
echo "[1/2] Starte Web-TUI (Port $WEB_PORT)..."
"$PYTHON" serve_tui.py --host 0.0.0.0 --port "$WEB_PORT" &
TUI_PID=$!
# Kurz warten damit die TUI hochfährt
sleep 1
# API starten (Vordergrund)
echo "[2/2] Starte API (Port $API_PORT)..."
"$PYTHON" main_api_only.py &
API_PID=$!
echo ""
echo "Beide Dienste gestartet. Ctrl+C zum Beenden."
echo ""
# Auf Ctrl+C warten und beide Prozesse beenden
trap "echo ''; echo 'MCM wird beendet...'; kill $TUI_PID $API_PID 2>/dev/null; wait $TUI_PID $API_PID 2>/dev/null; echo 'Beendet.'" INT TERM
wait $API_PID