feat: start.sh mit IP-Ausgabe, TELEGRAM_BOT_USERNAME in config, Telegram-Task sauber canceln
This commit is contained in:
63
start.sh
Executable file
63
start.sh
Executable 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
|
||||||
Reference in New Issue
Block a user