feat(admin): 添加用户管理相关文件

添加用户管理视图、API和状态管理文件
This commit is contained in:
张翔
2026-03-28 14:37:29 +08:00
commit 08ea5fbe98
1643 changed files with 255646 additions and 0 deletions
+349
View File
@@ -0,0 +1,349 @@
# CI/CD部署文档
## 架构概览
本项目采用Forgejo + Woodpecker CI + Docker Registry的CI/CD架构,通过docker-compose进行容器化部署。
```
┌─────────────────────────────────────────────────────────────┐
│ Forgejo (代码仓库) │
│ Woodpecker CI (CI/CD) │
│ Docker Registry (镜像仓库) │
└─────────────────────────────────────────────────────────────┘
构建Docker镜像并推送
┌─────────────────────────────────────────────────────────────┐
│ docker-compose 部署 │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ API容器 │ │ Admin容器 │ │ UniApp容器 │ │
│ │ (Spring Boot) │ │ (Nginx) │ │ (Nginx) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ │
│ │ PostgreSQL │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
## 项目结构
```
everything-is-suitable/
├── everything-is-suitable-api/ # Spring Boot API
│ ├── Dockerfile # API镜像构建文件
│ └── pom.xml # Maven配置
├── everything-is-suitable-admin/ # Vue 3 Admin
│ ├── Dockerfile # Admin镜像构建文件
│ ├── nginx.conf # Nginx配置
│ └── package.json # npm配置
├── everything-is-suitable-uniapp/ # UniApp移动端
│ ├── Dockerfile # UniApp镜像构建文件
│ ├── nginx.conf # Nginx配置
│ └── package.json # npm配置
├── docker-compose.yml # 生产环境部署编排
└── .woodpecker.yml # Woodpecker CI配置
```
## 本地开发
### 前置要求
- Docker 20.10+
- Docker Compose 2.0+
- Node.js 20+
- Java 21+
- Maven 3.9+
### 启动开发环境
```bash
# 启动数据库
docker-compose up -d postgres
# 启动API
cd everything-is-suitable-api
mvn spring-boot:run -Dspring-boot.run.profiles=local
# 启动Admin
cd ../everything-is-suitable-admin
npm run dev
# 启动UniApp
cd ../everything-is-suitable-uniapp
npm run dev:h5
```
## CI/CD流程
### Woodpecker CI流水线
Woodpecker CI在每次代码提交时自动执行以下步骤:
1. **代码检查**
- API: `mvn spotless:check`
- Admin: `npm run lint`
- UniApp: `npm run lint`
2. **单元测试**
- API: `mvn test`
- Admin: `npm run test`
- UniApp: `npm run test`
3. **E2E测试**
- Admin: `npm run test:e2e`
- UniApp: `npm run test:e2e`
4. **构建Docker镜像**
- 推送到Docker Registry
- 标签: `latest``${CI_COMMIT_SHA:0:8}`
5. **部署**
- SSH连接到部署服务器
- 拉取最新镜像
- 重启容器
### Woodpecker Secrets配置
在Forgejo仓库设置中配置以下Secrets
| Secret名称 | 说明 | 示例 |
|-----------|------|------|
| `DOCKER_REGISTRY` | Docker Registry地址 | `registry.example.com` |
| `DOCKER_USERNAME` | Docker用户名 | `your-username` |
| `DOCKER_PASSWORD` | Docker密码 | `your-password` |
| `SSH_PRIVATE_KEY` | SSH私钥 | `-----BEGIN RSA PRIVATE KEY-----...` |
| `DEPLOY_HOST` | 部署服务器地址 | `deploy.example.com` |
| `DEPLOY_USER` | 部署服务器用户名 | `deploy` |
| `DEPLOY_PATH` | 部署路径 | `/opt/everything-is-suitable` |
## 生产部署
### 1. 准备部署环境
```bash
# 安装Docker和Docker Compose
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 创建部署目录
mkdir -p /opt/everything-is-suitable
cd /opt/everything-is-suitable
# 复制配置文件
cp docker-compose.yml .
cp .env.example .env
```
### 2. 配置环境变量
编辑 `.env` 文件:
```bash
# 数据库密码
POSTGRES_PASSWORD=your_secure_password
# Docker Registry配置
DOCKER_REGISTRY=registry.example.com
DOCKER_USERNAME=your-username
DOCKER_PASSWORD=your-password
```
### 3. 启动服务
```bash
# 拉取镜像
docker-compose pull
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
### 4. 验证部署
```bash
# 检查API健康状态
curl http://localhost:8080/actuator/health
# 检查Admin页面
curl http://localhost/
# 检查UniApp页面
curl http://localhost:8081/
```
## 服务端口
| 服务 | 端口 | 说明 |
|------|------|------|
| Admin | 80 | 管理后台 |
| API | 8080 | 后端API |
| UniApp | 8081 | 移动端H5 |
| PostgreSQL | 5432 | 数据库 |
## 常用命令
### Docker Compose
```bash
# 启动所有服务
docker-compose up -d
# 停止所有服务
docker-compose down
# 重启服务
docker-compose restart
# 查看日志
docker-compose logs -f [service-name]
# 查看服务状态
docker-compose ps
# 更新镜像并重启
docker-compose pull && docker-compose up -d
```
### 容器管理
```bash
# 查看运行中的容器
docker ps
# 查看容器日志
docker logs -f [container-id]
# 进入容器
docker exec -it [container-id] sh
# 重启容器
docker restart [container-id]
```
## 监控和日志
### 日志查看
```bash
# API日志
docker-compose logs -f api
# Admin日志
docker-compose logs -f admin
# UniApp日志
docker-compose logs -f uniapp
# 数据库日志
docker-compose logs -f postgres
# 所有服务日志
docker-compose logs -f
```
### 健康检查
```bash
# 检查所有服务健康状态
docker-compose ps
# 检查API健康端点
curl http://localhost:8080/actuator/health
# 检查数据库连接
docker-compose exec postgres pg_isready -U postgres
```
## 备份和恢复
### 数据库备份
```bash
# 备份数据库
docker-compose exec postgres pg_dump -U postgres everything_is_suitable > backup.sql
# 恢复数据库
docker-compose exec -T postgres psql -U postgres everything_is_suitable < backup.sql
```
### 数据卷备份
```bash
# 备份PostgreSQL数据卷
docker run --rm -v everything-is-suitable_postgres_data:/data -v $(pwd):/backup alpine tar czf /backup/postgres_data_backup.tar.gz -C /data .
# 恢复PostgreSQL数据卷
docker run --rm -v everything-is-suitable_postgres_data:/data -v $(pwd):/backup alpine tar xzf /backup/postgres_data_backup.tar.gz -C /data
```
## 故障排查
### 容器无法启动
```bash
# 查看容器日志
docker-compose logs [service-name]
# 检查容器状态
docker-compose ps
# 检查资源使用
docker stats
```
### 网络问题
```bash
# 检查网络连接
docker network ls
docker network inspect everything-is-suitable_app-network
# 测试容器间连接
docker-compose exec api ping postgres
```
### 性能问题
```bash
# 查看资源使用
docker stats
# 查看容器资源限制
docker inspect [container-id] | grep -A 10 Memory
```
## 安全建议
1. **修改默认密码**
- 修改PostgreSQL密码
2. **网络隔离**
- 使用Docker网络隔离服务
- 只暴露必要的端口
3. **定期更新**
- 定期更新Docker镜像
- 更新依赖包
4. **备份策略**
- 定期备份数据库
- 备份配置文件
5. **监控告警**
- 配置Prometheus监控
- 配置Grafana仪表盘
- 设置告警规则
## 扩展阅读
- [Docker Compose文档](https://docs.docker.com/compose/)
- [Woodpecker CI文档](https://woodpecker-ci.org/docs/)
- [Spring Boot Docker部署](https://spring.io/guides/topicals/spring-boot-docker/)
- [Nginx配置指南](https://nginx.org/en/docs/)