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>
This commit is contained in:
@@ -0,0 +1,98 @@
|
|||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- prod
|
||||||
|
- test
|
||||||
|
|
||||||
|
env:
|
||||||
|
NODE_ENV: production
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
install:
|
||||||
|
runs-on: [self-hosted, rent-deploy]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
npm install -g pnpm
|
||||||
|
pnpm config set store-dir .pnpm-store
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
- name: Cache pnpm store
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: .pnpm-store
|
||||||
|
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
|
||||||
|
build:
|
||||||
|
runs-on: [self-hosted, rent-deploy]
|
||||||
|
needs: install
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Restore pnpm cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: .pnpm-store
|
||||||
|
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||||
|
|
||||||
|
- name: Build shared packages
|
||||||
|
run: |
|
||||||
|
npm install -g pnpm
|
||||||
|
pnpm config set store-dir .pnpm-store
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
pnpm --filter @rent/shared-types build
|
||||||
|
pnpm --filter @rent/shared-utils build
|
||||||
|
|
||||||
|
- name: Build server
|
||||||
|
run: pnpm --filter @rent/server build
|
||||||
|
|
||||||
|
- name: Build merchant-admin
|
||||||
|
run: pnpm --filter @rent/merchant-admin build
|
||||||
|
|
||||||
|
- name: Build platform-admin
|
||||||
|
run: pnpm --filter @rent/platform-admin build
|
||||||
|
|
||||||
|
- name: Build website
|
||||||
|
run: pnpm --filter @rent/official-website build
|
||||||
|
|
||||||
|
deploy-production:
|
||||||
|
runs-on: [self-hosted, rent-deploy]
|
||||||
|
needs: build
|
||||||
|
if: github.ref == 'refs/heads/prod'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Deploy to production
|
||||||
|
run: |
|
||||||
|
echo "部署到生产环境..."
|
||||||
|
cd deploy/docker
|
||||||
|
docker-compose -f docker-compose.prod.yml down --remove-orphans
|
||||||
|
docker-compose -f docker-compose.prod.yml build --parallel
|
||||||
|
docker-compose -f docker-compose.prod.yml up -d
|
||||||
|
docker image prune -f
|
||||||
|
echo "等待服务启动..."
|
||||||
|
sleep 10
|
||||||
|
docker-compose -f docker-compose.prod.yml ps
|
||||||
|
|
||||||
|
deploy-test:
|
||||||
|
runs-on: [self-hosted, rent-deploy]
|
||||||
|
needs: build
|
||||||
|
if: github.ref == 'refs/heads/test'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Deploy to test
|
||||||
|
run: |
|
||||||
|
echo "部署到测试环境..."
|
||||||
|
cd deploy/docker
|
||||||
|
docker-compose -f docker-compose.test.yml down --remove-orphans
|
||||||
|
docker-compose -f docker-compose.test.yml build --parallel
|
||||||
|
docker-compose -f docker-compose.test.yml up -d
|
||||||
|
docker image prune -f
|
||||||
|
echo "等待服务启动..."
|
||||||
|
sleep 10
|
||||||
|
docker-compose -f docker-compose.test.yml ps
|
||||||
-151
@@ -1,151 +0,0 @@
|
|||||||
stages:
|
|
||||||
- install
|
|
||||||
- build
|
|
||||||
- deploy
|
|
||||||
|
|
||||||
variables:
|
|
||||||
NODE_ENV: production
|
|
||||||
|
|
||||||
# prod 和 test 分支触发
|
|
||||||
workflow:
|
|
||||||
rules:
|
|
||||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
||||||
when: never
|
|
||||||
- if: $CI_COMMIT_BRANCH == "prod"
|
|
||||||
- if: $CI_COMMIT_BRANCH == "test"
|
|
||||||
|
|
||||||
# pnpm store 缓存
|
|
||||||
cache:
|
|
||||||
key:
|
|
||||||
files:
|
|
||||||
- pnpm-lock.yaml
|
|
||||||
paths:
|
|
||||||
- .pnpm-store
|
|
||||||
|
|
||||||
# ==================== INSTALL ====================
|
|
||||||
install_dependencies:
|
|
||||||
stage: install
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
script:
|
|
||||||
- npm install -g pnpm
|
|
||||||
- pnpm config set store-dir .pnpm-store
|
|
||||||
- pnpm install --frozen-lockfile
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- node_modules/
|
|
||||||
- apps/*/node_modules/
|
|
||||||
- packages/*/node_modules/
|
|
||||||
expire_in: 1 hour
|
|
||||||
|
|
||||||
# ==================== BUILD ====================
|
|
||||||
build_server:
|
|
||||||
stage: build
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs: [install_dependencies]
|
|
||||||
script:
|
|
||||||
- npm install -g pnpm
|
|
||||||
- pnpm config set store-dir .pnpm-store
|
|
||||||
- pnpm --filter @rent/shared-types build
|
|
||||||
- pnpm --filter @rent/shared-utils build
|
|
||||||
- pnpm --filter @rent/server build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- apps/server/dist/
|
|
||||||
expire_in: 1 hour
|
|
||||||
|
|
||||||
build_merchant:
|
|
||||||
stage: build
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs: [install_dependencies]
|
|
||||||
script:
|
|
||||||
- npm install -g pnpm
|
|
||||||
- pnpm config set store-dir .pnpm-store
|
|
||||||
- pnpm --filter @rent/shared-types build
|
|
||||||
- pnpm --filter @rent/shared-utils build
|
|
||||||
- pnpm --filter @rent/merchant-admin build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- apps/merchant-admin/dist/
|
|
||||||
expire_in: 1 hour
|
|
||||||
|
|
||||||
build_platform:
|
|
||||||
stage: build
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs: [install_dependencies]
|
|
||||||
script:
|
|
||||||
- npm install -g pnpm
|
|
||||||
- pnpm config set store-dir .pnpm-store
|
|
||||||
- pnpm --filter @rent/shared-types build
|
|
||||||
- pnpm --filter @rent/shared-utils build
|
|
||||||
- pnpm --filter @rent/platform-admin build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- apps/platform-admin/dist/
|
|
||||||
expire_in: 1 hour
|
|
||||||
|
|
||||||
build_website:
|
|
||||||
stage: build
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs: [install_dependencies]
|
|
||||||
script:
|
|
||||||
- npm install -g pnpm
|
|
||||||
- pnpm config set store-dir .pnpm-store
|
|
||||||
- pnpm --filter @rent/official-website build
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- apps/official-website/out/
|
|
||||||
expire_in: 1 hour
|
|
||||||
|
|
||||||
# ==================== DEPLOY ====================
|
|
||||||
deploy_production:
|
|
||||||
stage: deploy
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs:
|
|
||||||
- build_server
|
|
||||||
- build_merchant
|
|
||||||
- build_platform
|
|
||||||
- build_website
|
|
||||||
script:
|
|
||||||
- echo "部署到生产环境..."
|
|
||||||
- cd deploy/docker
|
|
||||||
- docker-compose -f docker-compose.prod.yml down --remove-orphans
|
|
||||||
- docker-compose -f docker-compose.prod.yml build --parallel
|
|
||||||
- docker-compose -f docker-compose.prod.yml up -d
|
|
||||||
- docker image prune -f
|
|
||||||
- echo "等待服务启动..."
|
|
||||||
- sleep 10
|
|
||||||
- docker-compose -f docker-compose.prod.yml ps
|
|
||||||
environment:
|
|
||||||
name: production
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == "prod"
|
|
||||||
|
|
||||||
deploy_test:
|
|
||||||
stage: deploy
|
|
||||||
tags:
|
|
||||||
- rent-deploy
|
|
||||||
needs:
|
|
||||||
- build_server
|
|
||||||
- build_merchant
|
|
||||||
- build_platform
|
|
||||||
- build_website
|
|
||||||
script:
|
|
||||||
- echo "部署到测试环境..."
|
|
||||||
- cd deploy/docker
|
|
||||||
- docker-compose -f docker-compose.test.yml down --remove-orphans
|
|
||||||
- docker-compose -f docker-compose.test.yml build --parallel
|
|
||||||
- docker-compose -f docker-compose.test.yml up -d
|
|
||||||
- docker image prune -f
|
|
||||||
- echo "等待服务启动..."
|
|
||||||
- sleep 10
|
|
||||||
- docker-compose -f docker-compose.test.yml ps
|
|
||||||
environment:
|
|
||||||
name: test
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == "test"
|
|
||||||
@@ -2,11 +2,13 @@
|
|||||||
prod-build prod-up prod-down prod-restart prod-logs prod-logs-server prod-ps prod-deploy \
|
prod-build prod-up prod-down prod-restart prod-logs prod-logs-server prod-ps prod-deploy \
|
||||||
test-build test-up test-down test-restart test-logs test-logs-server test-ps test-deploy \
|
test-build test-up test-down test-restart test-logs test-logs-server test-ps test-deploy \
|
||||||
gateway-up gateway-down gateway-reload \
|
gateway-up gateway-down gateway-reload \
|
||||||
|
gitea-up gitea-down gitea-logs \
|
||||||
init deploy clean
|
init deploy clean
|
||||||
|
|
||||||
DOCKER_PROD = docker-compose -f deploy/docker/docker-compose.prod.yml
|
DOCKER_PROD = docker-compose -f deploy/docker/docker-compose.prod.yml
|
||||||
DOCKER_TEST = docker-compose -f deploy/docker/docker-compose.test.yml
|
DOCKER_TEST = docker-compose -f deploy/docker/docker-compose.test.yml
|
||||||
DOCKER_GATEWAY = docker-compose -f deploy/docker/docker-compose.gateway.yml
|
DOCKER_GATEWAY = docker-compose -f deploy/docker/docker-compose.gateway.yml
|
||||||
|
DOCKER_GITEA = docker-compose -f deploy/docker/docker-compose.gitea.yml
|
||||||
|
|
||||||
help: ## 显示帮助信息
|
help: ## 显示帮助信息
|
||||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
|
||||||
@@ -97,4 +99,15 @@ clean: ## 清理所有容器、数据卷和悬空镜像
|
|||||||
$(DOCKER_PROD) down -v
|
$(DOCKER_PROD) down -v
|
||||||
$(DOCKER_TEST) down -v
|
$(DOCKER_TEST) down -v
|
||||||
$(DOCKER_GATEWAY) down
|
$(DOCKER_GATEWAY) down
|
||||||
|
$(DOCKER_GITEA) down
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
|
|
||||||
|
# ===== Gitea =====
|
||||||
|
gitea-up: ## 启动 Gitea + Act Runner
|
||||||
|
$(DOCKER_GITEA) up -d
|
||||||
|
|
||||||
|
gitea-down: ## 停止 Gitea + Act Runner
|
||||||
|
$(DOCKER_GITEA) down
|
||||||
|
|
||||||
|
gitea-logs: ## 查看 Gitea 日志
|
||||||
|
$(DOCKER_GITEA) logs -f --tail=100
|
||||||
|
|||||||
+40
-34
@@ -107,66 +107,72 @@ make test-deploy
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 二、GitLab CI/CD 自动化
|
## 二、Gitea + Act Runner 自动化
|
||||||
|
|
||||||
|
> Gitea 内存占用约 100MB,适合 4GB 小内存服务器。
|
||||||
|
|
||||||
### 前提条件
|
### 前提条件
|
||||||
|
|
||||||
- 服务器已运行初始化脚本
|
- 服务器已运行初始化脚本(Gitea 和 Act Runner 已自动启动)
|
||||||
- 代码已推送到 GitLab 仓库
|
- Gitea 已完成初始配置
|
||||||
|
|
||||||
### 第 1 步:安装 GitLab Runner
|
### 第 1 步:配置 Gitea
|
||||||
|
|
||||||
|
首次初始化已自动启动 Gitea,访问 `http://服务器IP:3002` 完成:
|
||||||
|
|
||||||
|
1. 设置管理员账号密码
|
||||||
|
2. 创建仓库 `rent-platform`
|
||||||
|
|
||||||
|
### 第 2 步:注册 Act Runner
|
||||||
|
|
||||||
|
1. Gitea → **Settings → Actions → Runners → Create new Runner**
|
||||||
|
2. 复制 Registration Token
|
||||||
|
3. 编辑 `.env` 填入 token:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
|
vi deploy/docker/.env
|
||||||
sudo apt install gitlab-runner
|
# 将 GITEA_RUNNER_TOKEN=change_me 改为真实 token
|
||||||
```
|
```
|
||||||
|
|
||||||
### 第 2 步:注册 Runner
|
4. 重启 Runner:
|
||||||
|
|
||||||
1. GitLab → **Settings → CI/CD → Runners** → 复制 token
|
|
||||||
2. 在服务器执行:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo gitlab-runner register
|
docker compose -f deploy/docker/docker-compose.gitea.yml restart act-runner
|
||||||
```
|
```
|
||||||
|
|
||||||
| 项目 | 值 |
|
5. 验证 Runner 状态:
|
||||||
|------|------|
|
|
||||||
| GitLab URL | `http://你的GitLab地址/` |
|
|
||||||
| Token | 从页面复制 |
|
|
||||||
| Description | `rent-deploy-runner` |
|
|
||||||
| Tags | `rent-deploy` |
|
|
||||||
| Executor | `shell` |
|
|
||||||
|
|
||||||
### 第 3 步:配置 Runner 权限
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo usermod -aG docker gitlab-runner
|
docker logs rent-act-runner
|
||||||
sudo -u gitlab-runner npm install -g pnpm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 第 4 步:配置 CI/CD 变量
|
在 Gitea → **Settings → Actions → Runners** 页面应能看到 `rent-deploy-runner` 已注册并在线。
|
||||||
|
|
||||||
GitLab → **Settings → CI/CD → Variables**:
|
### 第 3 步:推送代码到 Gitea
|
||||||
|
|
||||||
| 变量名 | 说明 | Masked |
|
```bash
|
||||||
|--------|------|--------|
|
# 添加 Gitea 远程仓库
|
||||||
| `PROD_DB_PASSWORD` | 生产数据库密码 | ✅ |
|
git remote add gitea http://服务器IP:3002/用户名/rent-platform.git
|
||||||
| `PROD_JWT_SECRET` | 生产 JWT 密钥 | ✅ |
|
|
||||||
| `TEST_DB_PASSWORD` | 测试数据库密码 | ✅ |
|
|
||||||
| `TEST_JWT_SECRET` | 测试 JWT 密钥 | ✅ |
|
|
||||||
|
|
||||||
### 第 5 步:推送代码触发部署
|
# 推送分支
|
||||||
|
git push gitea master
|
||||||
|
git push gitea test
|
||||||
|
git push gitea prod
|
||||||
|
```
|
||||||
|
|
||||||
|
### 第 4 步:自动部署触发
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 推送 test 分支 → 自动部署测试环境
|
# 推送 test 分支 → 自动部署测试环境
|
||||||
git push origin test
|
git push gitea test
|
||||||
|
|
||||||
# 推送 prod 分支 → 自动部署生产环境
|
# 推送 prod 分支 → 自动部署生产环境
|
||||||
git push origin prod
|
git push gitea prod
|
||||||
```
|
```
|
||||||
|
|
||||||
流水线:install → build(并行构建 4 个应用)→ deploy
|
流水线:install → build → deploy
|
||||||
|
|
||||||
|
在 Gitea → **仓库 → Actions** 页面查看实时日志。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -5,3 +5,6 @@ PROD_JWT_SECRET=change_me_in_production
|
|||||||
# ===== 测试环境 =====
|
# ===== 测试环境 =====
|
||||||
TEST_DB_PASSWORD=change_me_in_test
|
TEST_DB_PASSWORD=change_me_in_test
|
||||||
TEST_JWT_SECRET=change_me_in_test
|
TEST_JWT_SECRET=change_me_in_test
|
||||||
|
|
||||||
|
# ===== Gitea Act Runner =====
|
||||||
|
GITEA_RUNNER_TOKEN=change_me
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
container_name: rent-gitea
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
- GITEA__server__ROOT_URL=http://localhost:3002/
|
||||||
|
- GITEA__server__HTTP_PORT=3000
|
||||||
|
- GITEA__server__SSH_PORT=2222
|
||||||
|
- GITEA__server__SSH_LISTEN_PORT=2222
|
||||||
|
ports:
|
||||||
|
- "3002:3000"
|
||||||
|
- "2222:2222"
|
||||||
|
volumes:
|
||||||
|
- gitea_data:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
networks:
|
||||||
|
- gitea
|
||||||
|
|
||||||
|
act-runner:
|
||||||
|
image: gitea/act_runner:latest
|
||||||
|
container_name: rent-act-runner
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- gitea
|
||||||
|
environment:
|
||||||
|
- GITEA_INSTANCE_URL=http://gitea:3000
|
||||||
|
# 注册后在 Gitea Web 界面获取 token,填入下面配置
|
||||||
|
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN:-change_me}
|
||||||
|
- GITEA_RUNNER_NAME=rent-deploy-runner
|
||||||
|
- GITEA_RUNNER_LABELS=rent-deploy:docker://node:18-alpine
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- act_runner_data:/data
|
||||||
|
networks:
|
||||||
|
- gitea
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
gitea_data:
|
||||||
|
act_runner_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
gitea:
|
||||||
|
name: gitea
|
||||||
+33
-21
@@ -6,6 +6,9 @@ echo " 品居会 - 服务器首次初始化"
|
|||||||
echo "============================================"
|
echo "============================================"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||||
|
|
||||||
# ===== 1. 系统更新 =====
|
# ===== 1. 系统更新 =====
|
||||||
echo ">>> 更新系统包..."
|
echo ">>> 更新系统包..."
|
||||||
sudo apt update && sudo apt upgrade -y
|
sudo apt update && sudo apt upgrade -y
|
||||||
@@ -45,8 +48,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# ===== 6. 配置环境变量 =====
|
# ===== 6. 配置环境变量 =====
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
||||||
ENV_FILE="$PROJECT_DIR/deploy/docker/.env"
|
ENV_FILE="$PROJECT_DIR/deploy/docker/.env"
|
||||||
|
|
||||||
if [ ! -f "$ENV_FILE" ]; then
|
if [ ! -f "$ENV_FILE" ]; then
|
||||||
@@ -72,9 +73,17 @@ echo ">>> 创建 Docker 网络..."
|
|||||||
docker network create rent-prod 2>/dev/null || echo " rent-prod 网络已存在。"
|
docker network create rent-prod 2>/dev/null || echo " rent-prod 网络已存在。"
|
||||||
docker network create rent-test 2>/dev/null || echo " rent-test 网络已存在。"
|
docker network create rent-test 2>/dev/null || echo " rent-test 网络已存在。"
|
||||||
|
|
||||||
# ===== 8. 启动网关 =====
|
# ===== 8. 启动 Gitea =====
|
||||||
echo ">>> 启动 Gateway Nginx..."
|
echo ">>> 启动 Gitea + Act Runner..."
|
||||||
cd "$PROJECT_DIR"
|
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
|
docker compose -f deploy/docker/docker-compose.gateway.yml up -d
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
@@ -83,25 +92,28 @@ echo " 初始化完成!"
|
|||||||
echo "============================================"
|
echo "============================================"
|
||||||
echo ""
|
echo ""
|
||||||
echo "后续步骤:"
|
echo "后续步骤:"
|
||||||
echo " 1. 确认 .env 中的密码已正确填写"
|
|
||||||
echo " 2. 部署生产环境:make prod-deploy"
|
|
||||||
echo " 3. 部署测试环境:make test-deploy"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " 配置以下 DNS 记录指向本服务器 IP:"
|
echo " 1. 配置 Gitea:"
|
||||||
|
echo " 访问 http://服务器IP:3002 完成初始设置"
|
||||||
|
echo " 创建管理员账号,创建仓库"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 生产环境:"
|
echo " 2. 注册 Act Runner:"
|
||||||
echo " api.pinzhuhui.com"
|
echo " Gitea → Settings → Actions → Runners → Create Runner"
|
||||||
echo " www.pinzhuhui.com"
|
echo " 复制 Registration Token"
|
||||||
echo " merchant.pinzhuhui.com"
|
echo " 编辑 $PROJECT_DIR/deploy/docker/.env"
|
||||||
echo " platform-admin.pinzhuhui.com"
|
echo " 将 GITEA_RUNNER_TOKEN 替换为真实 token"
|
||||||
|
echo " 然后重启:docker compose -f deploy/docker/docker-compose.gitea.yml restart act-runner"
|
||||||
echo ""
|
echo ""
|
||||||
echo " 测试环境:"
|
echo " 3. 推送代码到 Gitea:"
|
||||||
echo " api-test.pinzhuhui.com"
|
echo " git remote add gitea http://服务器IP:3002/用户名/rent-platform.git"
|
||||||
echo " test.pinzhuhui.com"
|
echo " git push gitea master"
|
||||||
echo " merchant-test.pinzhuhui.com"
|
echo " git push gitea test"
|
||||||
echo " platform-admin-test.pinzhuhui.com"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo " 4. (可选)配置 SSL 证书:"
|
echo " 4. 部署服务:"
|
||||||
echo " sudo apt install certbot"
|
echo " make prod-deploy # 生产环境"
|
||||||
echo " sudo certbot certonly --standalone -d api.pinzhuhui.com -d www.pinzhuhui.com ..."
|
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 ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user