Files

39 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# CS2 Simulator — Production Start Script
# Starts: PostgreSQL-backed web app + WebSocket server
set -e
# Ensure PostgreSQL is running
pg_isready -q || service postgresql start
# Ensure Redis is running
redis-cli ping > /dev/null 2>&1 || redis-server --daemonize yes
# Set production env
export USE_ASYNC=1
export ASYNC_DATABASE_URL="${ASYNC_DATABASE_URL:-postgresql+asyncpg://dodep:dodep123@localhost/dodep}"
export REDIS_URL="${REDIS_URL:-redis://localhost:6379/0}"
echo "=== Starting CS2 Simulator ==="
echo "DB: $ASYNC_DATABASE_URL"
echo "WS Server: port 13670"
echo "Web App: port 13669"
# Kill old processes
pkill -f "uvicorn frontend:app" 2>/dev/null || true
pkill -f "uvicorn ws_server:app" 2>/dev/null || true
sleep 1
# Start WebSocket server
nohup venv/bin/python -m uvicorn ws_server:app --host 0.0.0.0 --port 13670 --workers 1 > ws_server.log 2>&1 &
echo "[WS] Started on port 13670"
# Start main web app with multiple workers
nohup venv/bin/python -m uvicorn frontend:app --host 0.0.0.0 --port 13669 --workers 4 --loop uvloop > frontend.log 2>&1 &
echo "[WEB] Started on port 13669 (4 workers)"
echo "=== Ready ==="
echo "Web: http://localhost:13669"
echo "WS: ws://localhost:13670/ws/{user_id}"