#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" if [[ -f .env ]]; then set -a # shellcheck source=/dev/null source .env set +a fi if [[ -f .venv/bin/activate ]]; then # shellcheck source=/dev/null source .venv/bin/activate fi PORT="${MCP_PORT:-${PORT:-8550}}" HOST="${MCP_HOST:-0.0.0.0}" LOG_DIR="logs" mkdir -p "$LOG_DIR" PID_FILE="$LOG_DIR/server.pid" LOG_FILE="$LOG_DIR/server.log" if [[ -f "$PID_FILE" ]]; then PID="$(cat "$PID_FILE" 2>/dev/null || true)" if [[ -n "${PID:-}" ]] && kill -0 "$PID" 2>/dev/null; then echo "Atlas already running (PID $PID)." exit 1 else echo "Removing stale pidfile." rm -f "$PID_FILE" fi fi nohup python3 -m uvicorn app.main:app --host "$HOST" --port "$PORT" >"$LOG_FILE" 2>&1 & PID=$! echo "$PID" >"$PID_FILE" echo "Atlas started (PID $PID). Logs: $LOG_FILE"