52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Define paths
|
|
PROJECT_ROOT=$(pwd)
|
|
PID_FILE="$PROJECT_ROOT/.server_manager.pids"
|
|
|
|
# Function to start backend
|
|
start_backend() {
|
|
echo "Starting Backend..."
|
|
cd "$PROJECT_ROOT/backend"
|
|
|
|
# Check if a venv exists
|
|
if [ -d "venv" ]; then
|
|
source venv/bin/activate
|
|
elif [ -d ".venv" ]; then
|
|
source .venv/bin/activate
|
|
fi
|
|
|
|
# Run uvicorn in background
|
|
# Redirecting output to logs or /dev/null is often cleaner, but for now we keep it visible or rely on user
|
|
uvicorn app.main:app --reload --port 8000 > ../logs/backend.log 2>&1 &
|
|
BACKEND_PID=$!
|
|
echo $BACKEND_PID >> "$PID_FILE"
|
|
echo "Backend started (PID: $BACKEND_PID). Logs: logs/backend.log"
|
|
}
|
|
|
|
# Function to start frontend
|
|
start_frontend() {
|
|
echo "Starting Frontend..."
|
|
cd "$PROJECT_ROOT/frontend"
|
|
npm run dev -- --port 5173 > ../logs/frontend.log 2>&1 &
|
|
FRONTEND_PID=$!
|
|
echo $FRONTEND_PID >> "$PID_FILE"
|
|
echo "Frontend started (PID: $FRONTEND_PID). Logs: logs/frontend.log"
|
|
}
|
|
|
|
# Ensure log directory exists
|
|
mkdir -p "$PROJECT_ROOT/logs"
|
|
|
|
# Clear old pid file if it exists
|
|
if [ -f "$PID_FILE" ]; then
|
|
echo "Warning: .server_manager.pids exists. Clearing..."
|
|
rm "$PID_FILE"
|
|
fi
|
|
|
|
start_backend
|
|
start_frontend
|
|
|
|
echo "Application started."
|
|
echo "Backend: http://localhost:8000"
|
|
echo "Frontend: http://localhost:5173"
|