添加了Windows的start.bat和Linux/macOS的start.sh一键启动脚本,补充了完整的项目README文档,同时修复了前端类型文件的导入路径问题
92 lines
2.9 KiB
Bash
92 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# ═══════════════════════════════════════════
|
||
# 姜十三论坛 开发环境启动脚本 (Linux/macOS)
|
||
# ═══════════════════════════════════════════
|
||
|
||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
cd "$ROOT_DIR"
|
||
|
||
echo "══════════════════════════════════════════"
|
||
echo " 姜十三论坛 开发环境启动脚本"
|
||
echo "══════════════════════════════════════════"
|
||
echo ""
|
||
|
||
# ---- 1. 启动 PostgreSQL ----
|
||
echo "[1/3] 启动数据库 (Docker Compose)..."
|
||
if ! command -v docker &>/dev/null; then
|
||
echo "✗ 未检测到 docker,请先安装 Docker"
|
||
exit 1
|
||
fi
|
||
docker compose up -d postgres
|
||
echo "√ 数据库已启动"
|
||
echo ""
|
||
|
||
# ---- 2. 检查后端配置 ----
|
||
echo "[2/3] 检查后端配置..."
|
||
if [ ! -f "backend/app.ini" ]; then
|
||
cp "backend/app.ini.example" "backend/app.ini"
|
||
echo " 已从模板创建 backend/app.ini,请按需修改配置"
|
||
fi
|
||
mkdir -p backend/data
|
||
|
||
# 启动后端(后台)
|
||
echo " 启动后端 (端口 3001)..."
|
||
cd "$ROOT_DIR/backend"
|
||
go run ./cmd/jiang13 &
|
||
BACKEND_PID=$!
|
||
cd "$ROOT_DIR"
|
||
echo "√ 后端已启动 (PID: $BACKEND_PID)"
|
||
echo ""
|
||
|
||
# ---- 3. 检查前端配置 ----
|
||
echo "[3/3] 检查前端配置..."
|
||
if [ ! -f "frontend/.env.local" ]; then
|
||
cp "frontend/.env.example" "frontend/.env.local"
|
||
echo " 已从模板创建 frontend/.env.local"
|
||
fi
|
||
|
||
# 检查 node_modules
|
||
if [ ! -d "frontend/node_modules" ]; then
|
||
echo " 首次运行,安装前端依赖..."
|
||
cd "$ROOT_DIR/frontend"
|
||
npm install
|
||
cd "$ROOT_DIR"
|
||
fi
|
||
|
||
# 启动前端(后台)
|
||
echo " 启动前端 (端口 3000)..."
|
||
cd "$ROOT_DIR/frontend"
|
||
npm run dev &
|
||
FRONTEND_PID=$!
|
||
cd "$ROOT_DIR"
|
||
echo "√ 前端已启动 (PID: $FRONTEND_PID)"
|
||
echo ""
|
||
|
||
echo "══════════════════════════════════════════"
|
||
echo " 全部启动完成!"
|
||
echo ""
|
||
echo " 前端: http://localhost:3000"
|
||
echo " 后端: http://localhost:3001"
|
||
echo " 数据库: localhost:5432"
|
||
echo ""
|
||
echo " 后端 PID: $BACKEND_PID"
|
||
echo " 前端 PID: $FRONTEND_PID"
|
||
echo " 停止服务: kill $BACKEND_PID $FRONTEND_PID && docker compose down"
|
||
echo "══════════════════════════════════════════"
|
||
|
||
# 捕获 Ctrl+C,清理子进程
|
||
cleanup() {
|
||
echo ""
|
||
echo "正在停止服务..."
|
||
kill $BACKEND_PID 2>/dev/null || true
|
||
kill $FRONTEND_PID 2>/dev/null || true
|
||
docker compose down 2>/dev/null || true
|
||
echo "已停止"
|
||
}
|
||
trap cleanup EXIT INT TERM
|
||
|
||
# 保持脚本运行
|
||
wait
|