Files
rent/scripts/setup-server.sh
T
xiaoquan 501adf7819 feat: 替换 GitLab 为 Gitea + Act Runner
- 删除 .gitlab-ci.yml
- 新增 .gitea/workflows/deploy.yml (Gitea Actions 工作流)
- 新增 deploy/docker/docker-compose.gitea.yml (Gitea + Act Runner)
- 更新 scripts/setup-server.sh 初始化脚本
- 更新 deploy/README.md 部署文档
- 更新 Makefile 新增 gitea-* 命令
- 更新 .env.example 新增 GITEA_RUNNER_TOKEN

Gitea 内存占用约 100MB,适合 4GB 小内存服务器

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 20:01:52 +08:00

120 lines
3.8 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.
#!/bin/bash
set -e
echo "============================================"
echo " 品居会 - 服务器首次初始化"
echo "============================================"
echo ""
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
# ===== 1. 系统更新 =====
echo ">>> 更新系统包..."
sudo apt update && sudo apt upgrade -y
# ===== 2. 安装 Docker =====
if ! command -v docker &> /dev/null; then
echo ">>> 安装 Docker..."
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
echo "Docker 已安装。可能需要重新登录以生效。"
else
echo ">>> Docker 已安装,跳过。"
fi
# ===== 3. 验证 Docker Compose =====
if ! docker compose version &> /dev/null; then
echo ">>> 安装 Docker Compose 插件..."
sudo apt install -y docker-compose-plugin
else
echo ">>> Docker Compose 已安装,跳过。"
fi
# ===== 4. 安装 Git =====
if ! command -v git &> /dev/null; then
echo ">>> 安装 Git..."
sudo apt install -y git
else
echo ">>> Git 已安装,跳过。"
fi
# ===== 5. 安装 pnpm =====
if ! command -v pnpm &> /dev/null; then
echo ">>> 安装 pnpm..."
npm install -g pnpm 2>/dev/null || { echo "需要先安装 Node.js"; exit 1; }
else
echo ">>> pnpm 已安装,跳过。"
fi
# ===== 6. 配置环境变量 =====
ENV_FILE="$PROJECT_DIR/deploy/docker/.env"
if [ ! -f "$ENV_FILE" ]; then
echo ">>> 创建 .env 文件..."
cp "$PROJECT_DIR/deploy/docker/.env.example" "$ENV_FILE"
echo ""
echo " *** 重要 ***"
echo " 请编辑 $ENV_FILE 填入真实密码和密钥。"
echo " 必填变量:"
echo " - PROD_DB_PASSWORD 生产环境数据库密码"
echo " - PROD_JWT_SECRET 生产环境 JWT 密钥"
echo " - TEST_DB_PASSWORD 测试环境数据库密码"
echo " - TEST_JWT_SECRET 测试环境 JWT 密钥"
echo ""
read -p " 按 Enter 打开编辑器,或 Ctrl+C 退出手动编辑..."
${EDITOR:-vi} "$ENV_FILE"
else
echo ">>> .env 文件已存在,跳过。"
fi
# ===== 7. 创建 Docker 网络 =====
echo ">>> 创建 Docker 网络..."
docker network create rent-prod 2>/dev/null || echo " rent-prod 网络已存在。"
docker network create rent-test 2>/dev/null || echo " rent-test 网络已存在。"
# ===== 8. 启动 Gitea =====
echo ">>> 启动 Gitea + Act Runner..."
cd "$PROJECT_DIR"
docker compose -f deploy/docker/docker-compose.gitea.yml up -d
echo ""
echo " 等待 Gitea 启动(约 30 秒)..."
sleep 30
# ===== 9. 启动 Gateway =====
echo ">>> 启动 Gateway Nginx..."
docker compose -f deploy/docker/docker-compose.gateway.yml up -d
echo ""
echo "============================================"
echo " 初始化完成!"
echo "============================================"
echo ""
echo "后续步骤:"
echo ""
echo " 1. 配置 Gitea"
echo " 访问 http://服务器IP:3002 完成初始设置"
echo " 创建管理员账号,创建仓库"
echo ""
echo " 2. 注册 Act Runner"
echo " Gitea → Settings → Actions → Runners → Create Runner"
echo " 复制 Registration Token"
echo " 编辑 $PROJECT_DIR/deploy/docker/.env"
echo " 将 GITEA_RUNNER_TOKEN 替换为真实 token"
echo " 然后重启:docker compose -f deploy/docker/docker-compose.gitea.yml restart act-runner"
echo ""
echo " 3. 推送代码到 Gitea"
echo " git remote add gitea http://服务器IP:3002/用户名/rent-platform.git"
echo " git push gitea master"
echo " git push gitea test"
echo ""
echo " 4. 部署服务:"
echo " make prod-deploy # 生产环境"
echo " make test-deploy # 测试环境"
echo ""
echo " 5. 配置 DNS 记录指向本服务器 IP:"
echo " 生产:api/www/merchant/platform-admin.pinzhuhui.com"
echo " 测试:api-test/test/merchant-test/platform-admin-test.pinzhuhui.com"
echo ""