Files
jiang13-bbs/start.sh
freefire f58b2af993 build: add dev startup scripts and project docs
添加了Windows的start.bat和Linux/macOS的start.sh一键启动脚本,补充了完整的项目README文档,同时修复了前端类型文件的导入路径问题
2026-09-14 16:53:54 +08:00

92 lines
2.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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