-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstart.sh
More file actions
executable file
·55 lines (46 loc) · 1.62 KB
/
Copy pathstart.sh
File metadata and controls
executable file
·55 lines (46 loc) · 1.62 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
#!/bin/bash
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# 创建日志目录
mkdir -p "$SCRIPT_DIR/logs"
# 停止已运行的服务 (避免端口占用)
for PIDFILE in "$SCRIPT_DIR/logs/backend.pid" "$SCRIPT_DIR/logs/frontend.pid"; do
if [ -f "$PIDFILE" ]; then
OLD_PID=$(cat "$PIDFILE")
if kill -0 "$OLD_PID" 2>/dev/null; then
kill "$OLD_PID" 2>/dev/null
fi
rm -f "$PIDFILE"
fi
done
# 兜底:释放端口
fuser -k 8000/tcp 2>/dev/null || true
fuser -k 3000/tcp 2>/dev/null || true
# 预安装 MiniMax MCP tool (避免运行时 resolving dependencies)
echo "Installing minimax-coding-plan-mcp..."
uv tool install minimax-coding-plan-mcp 2>/dev/null || true
# 启动后端 (FastAPI/uvicorn)
cd "$SCRIPT_DIR"
nohup ./backend/.venv/bin/python -m uvicorn backend.main:app --host 0.0.0.0 --port 8000 > "$SCRIPT_DIR/logs/backend.log" 2>&1 &
BACKEND_PID=$!
echo "Backend started with PID: $BACKEND_PID"
# 构建前端 (Next.js production build)
cd "$SCRIPT_DIR/frontend"
npm run build > "$SCRIPT_DIR/logs/frontend_build.log" 2>&1
echo "Frontend build completed"
# 启动前端 (Next.js production)
cd "$SCRIPT_DIR/frontend"
nohup npm start > "$SCRIPT_DIR/logs/frontend.log" 2>&1 &
FRONTEND_PID=$!
echo "Frontend started with PID: $FRONTEND_PID"
# 保存 PIDs
echo "$BACKEND_PID" > "$SCRIPT_DIR/logs/backend.pid"
echo "$FRONTEND_PID" > "$SCRIPT_DIR/logs/frontend.pid"
echo ""
echo "Services started:"
echo " Backend: http://localhost:8000"
echo " Frontend: http://localhost:3000"
echo ""
echo "Logs:"
echo " Backend: $SCRIPT_DIR/logs/backend.log"
echo " Frontend: $SCRIPT_DIR/logs/frontend.log"