14 Commits

Author SHA1 Message Date
xiaoquan d26a9595d3 fix: 升级 website Dockerfile 使用 Node.js 20
Deploy / deploy (push) Failing after 23s
Next.js 要求 Node.js >= 20.9.0
2026-06-10 20:02:21 +08:00
xiaoquan 85547d7043 fix: 修复 pnpm 版本和 docker compose 命令
Deploy / deploy (push) Failing after 1m36s
## 修改内容
1. 所有 Dockerfile 中指定 pnpm@8(兼容 lockfileVersion 6.0)
2. 工作流使用 docker compose(V2)而不是 docker-compose

## 修复的问题
- pnpm-lock.yaml 版本不兼容
- 容器中缺少 docker-compose 命令

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 19:42:53 +08:00
xiaoquan c243300670 feat: 添加 Webhook 部署方案
## 新增文件
- deploy/scripts/deploy.sh - 自动化部署脚本
- deploy/docker/WEBHOOK_SETUP.md - Webhook 配置完整指南

## 方案说明
放弃使用 Gitea Runner(Docker 容器环境限制太多)
改用 Webhook 直接在宿主机上执行部署脚本

## 工作流程
1. git push 触发 Gitea Webhook
2. Webhook 服务调用 deploy.sh
3. 脚本自动 git pull + docker-compose build + up

## 优点
- 简单可靠,不依赖容器环境
- 直接在宿主机执行,有完整的 Docker 访问权限
- 容易调试和维护
- 支持两种 Webhook 方式:webhook 工具或 PHP 脚本

## 配置方式
详见 WEBHOOK_SETUP.md 文档

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 18:05:05 +08:00
xiaoquan bfc30fac22 feat: 最终 CI/CD 方案 - 手动克隆 + 自动部署
## 方案说明
由于 Gitea Runner 在 Docker 容器中无法访问宿主机文件系统和网络,
采用一次性手动配置 + 自动部署的方案

## 配置步骤(一次性)
1. SSH 登录服务器
2. 手动克隆代码到 /www/dk_project/dk_app/rent
3. 配置 Git 凭证(SSH 或 Token)

## 工作流程
1. 开发者 git push
2. CI/CD 自动触发
3. git pull 拉取最新代码
4. docker-compose build 构建
5. docker-compose up 部署

## 新增文档
- CICD_SETUP.md - 完整配置指南

## 优点
- 简单可靠
- 不依赖复杂的网络配置
- 代码在宿主机上,构建速度快

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 17:48:53 +08:00
xiaoquan 6f970af5bc feat: 配置宝塔部署端口映射
## 修改内容
### 生产环境端口映射
- API 服务:3000 → 10080
- 商家后台:8081 → 10082
- 平台后台:8082 → 10084
- 官网:8083 → 10086

### 测试环境端口映射
- API 服务:3001 → 10081
- 商家后台:9081 → 10083
- 平台后台:9082 → 10085
- 官网:9083 → 10087

## 新增文档
- PORT_MAPPING.md - 端口映射说明和部署步骤

## 设计说明
- 使用 10080-10087 端口段,避免常用端口冲突
- 通过宝塔反向代理访问,不需要开放这些端口到公网
- 端口规划清晰,便于管理和维护

## 配合文档
- 详细配置步骤见 BAOTA_PROXY_SETUP.md
- 域名配置见 DOMAIN_SETUP.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 16:37:33 +08:00
xiaoquan 87e870d0cb docs: 添加宝塔面板反向代理配置完整指南
## 新增文档
- BAOTA_PROXY_SETUP.md - 宝塔面板域名和反向代理配置指南

## 包含内容
### 配置步骤
- Docker Compose 端口映射配置(生产/测试环境)
- 宝塔面板添加站点和配置反向代理
- SSL 证书自动申请和续期
- 防火墙和安全组配置

### 端口映射规划
- 生产环境:10080-10086
- 测试环境:10081-10087
- 8个服务完整映射表

### 高级配置
- API 速率限制
- CORS 跨域配置
- WebSocket 支持
- 静态资源缓存

### 故障排查
- 域名无法访问
- 502 Bad Gateway
- SSL 证书申请失败
- 跨域错误

### 性能优化
- Gzip 压缩
- 浏览器缓存
- HTTP/2 支持
- 监控和告警

### 对比说明
- 宝塔面板 vs docker-compose.gateway.yml
- 适用场景和选择建议

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 16:29:28 +08:00
xiaoquan 72c8add85e docs: 添加域名配置和 HTTPS 设置完整指南
## 新增文档
- DOMAIN_SETUP.md - 域名配置完整指南
  - DNS 解析配置步骤
  - Nginx 网关启动方法
  - Let's Encrypt 免费 HTTPS 证书申请
  - 故障排查指南
  - 域名管理最佳实践

- gateway-https-example.conf - HTTPS 配置示例
  - SSL 证书配置模板
  - HTTP 自动跳转 HTTPS
  - 适用于多域名场景

## 包含内容
- 8个域名的 DNS 配置清单
- Let's Encrypt 证书自动续期
- 跨域问题解决方案
- 端口占用和证书错误排查
- ICP 备案提醒

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 16:20:41 +08:00
xiaoquan 7e87a13fab fix: 修正 Gitea Runner 标签配置并添加设置文档
## 修改内容
- 修正 act-runner 标签从 `rent-deploy:docker://node:18-alpine`
  改为 `self-hosted,rent-deploy` 以匹配工作流要求
- 添加 Gitea Runner 完整配置指南文档

## 配置说明
Runner 标签必须与 .gitea/workflows/deploy.yml 中的
`runs-on: [self-hosted, rent-deploy]` 完全匹配

## 后续步骤
服务器管理员需要:
1. 在 Gitea Web 界面获取 Registration Token
2. 设置环境变量 GITEA_RUNNER_TOKEN
3. 运行 docker-compose up -d act-runner
4. 验证 Runner 状态为 Online

详细步骤参见:deploy/docker/GITEA_RUNNER_SETUP.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-10 15:49:39 +08:00
xiaoquan fefd64957d feat: 精简 CI/CD 密钥,业务密钥迁移到数据库管理
- Gitea Secrets 只保留 5 个基础密钥(DB密码、JWT、加密密钥)
- 删除 deploy.yml 中所有业务密钥的 secrets 注入
- docker-compose 移除业务环境变量,只保留 DB/JWT/ENCRYPTION_KEY
- 业务密钥(微信/支付宝/短信等)通过后台「系统密钥」页面管理
- 改用 export 方式注入环境变量,不再写 .env 文件
- 更新部署文档

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 12:06:43 +08:00
xiaoquan b358dbdab1 feat: 使用 Gitea Secrets 管理全部密钥
- deploy.yml 从 secrets 动态生成 .env,部署后自动删除
- docker-compose.prod.yml 支持全部业务配置注入(短信/微信/支付宝等)
- .env.example 只保留 GITEA_RUNNER_TOKEN,其他密钥全部迁移到 Secrets
- 更新 deploy/README.md 文档,完整列出 Secrets 配置清单

服务器上不再存储任何密码文件,安全性大幅提升

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 21:01:22 +08:00
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
xiaoquan bcf16fe53d feat: 双环境自动化部署(生产 + 测试)
- 新增 docker-compose.prod.yml / docker-compose.test.yml 双环境配置
- 新增 docker-compose.gateway.yml Nginx 网关按域名路由
- 新增 Dockerfile.website 官网镜像构建
- 新增 gateway.conf 支持 8 个域名路由
- 更新 .gitlab-ci.yml 支持 prod/test 双分支自动部署
- 更新 Makefile 新增 prod-/test-/gateway- 快捷命令
- 新增 scripts/setup-server.sh 服务器一键初始化脚本
- 修复 Nginx 配置服务名不匹配问题
- 修复前端 Dockerfile 缺少 packages/ 导致构建失败
- 删除旧的 docker-compose.yml

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 19:12:32 +08:00
xiaoquan 0bbbe20ec7 feat: dev 2026-06-01 18:22:30 +08:00
xiaoquan 25db7ecd66 firsh push 2026-04-21 20:12:05 +08:00