-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-dev.sh
More file actions
executable file
·126 lines (105 loc) · 3.2 KB
/
start-dev.sh
File metadata and controls
executable file
·126 lines (105 loc) · 3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
# Start seq-fetch-web development servers
# Usage: ./start-dev.sh
# Note: Uses Python venv for dependency management (isolated from system packages)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
VENV_DIR="$SCRIPT_DIR/venv"
PYTHON_BIN="$VENV_DIR/bin/python3"
PIP_BIN="$VENV_DIR/bin/pip"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Create virtual environment if it doesn't exist
if [ ! -d "$VENV_DIR" ]; then
log_info "Creating virtual environment..."
python3 -m venv "$VENV_DIR"
else
log_info "Virtual environment already exists at $VENV_DIR"
fi
# Activate virtual environment
source "$VENV_DIR/bin/activate"
# Upgrade pip
log_info "Upgrading pip..."
$PYTHON_BIN -m pip install --upgrade pip --quiet
# Install seq-fetch first (dependency for seq-fetch-cli)
if [ -d "$SCRIPT_DIR/../seq-fetch" ]; then
log_info "Installing seq-fetch from ../seq-fetch..."
$PIP_BIN install -e "$SCRIPT_DIR/../seq-fetch" --quiet
else
log_warn "seq-fetch directory not found, skipping..."
fi
# Install seq-fetch-cli
if [ -d "$SCRIPT_DIR/../seq-fetch-cli" ]; then
log_info "Installing seq-fetch-cli from ../seq-fetch-cli..."
$PIP_BIN install -e "$SCRIPT_DIR/../seq-fetch-cli" --quiet
else
log_warn "seq-fetch-cli directory not found, skipping..."
fi
# Install backend dependencies
if [ -d "$SCRIPT_DIR/backend" ]; then
log_info "Installing backend dependencies from ./backend..."
$PIP_BIN install -e "$SCRIPT_DIR/backend[dev]" --quiet
else
log_error "backend directory not found!"
exit 1
fi
echo ""
echo "=========================================="
echo " seq-fetch-web Development Environment"
echo "=========================================="
echo ""
echo "Python: $($PYTHON_BIN --version)"
echo "Node.js: $(node --version)"
echo "npm: $(npm --version)"
echo ""
# Start backend server
log_info "Starting backend (http://127.0.0.1:8000)..."
cd "$SCRIPT_DIR/backend"
uvicorn app.main:app --host 127.0.0.1 --port 8000 --reload &
BACKEND_PID=$!
cd "$SCRIPT_DIR"
log_info "Waiting for backend to start..."
sleep 3
# Start frontend server
log_info "Starting frontend (http://localhost:3000)..."
cd "$SCRIPT_DIR/frontend"
# Use BROWSER=none to prevent auto-opening browser
# PORT and proxy are configured in frontend/.env and config-overrides.js
BROWSER=none PORT=3000 npm start &
FRONTEND_PID=$!
cd "$SCRIPT_DIR"
echo ""
echo "=========================================="
echo " Servers Running"
echo "=========================================="
echo "Backend PID: $BACKEND_PID"
echo "Frontend PID: $FRONTEND_PID"
echo ""
echo " - Backend API: http://127.0.0.1:8000"
echo " - API Docs: http://127.0.0.1:8000/docs"
echo " - Frontend: http://localhost:3000"
echo ""
echo "Press Ctrl+C to stop all servers"
echo ""
# Cleanup on exit
cleanup() {
log_info "Stopping servers..."
kill $BACKEND_PID $FRONTEND_PID 2>/dev/null || true
wait $BACKEND_PID $FRONTEND_PID 2>/dev/null || true
log_info "Servers stopped."
}
trap cleanup INT TERM
wait