first commit

This commit is contained in:
rjb
2025-12-23 16:21:04 +08:00
commit b425ce3e32
20 changed files with 1766 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
# API 文档
## Gerrit API
### REST API
Gerrit 提供 REST API 用于程序化访问。
**基础 URL**: `http://101.43.95.130:8082/a/`
### 获取变更信息
```bash
curl http://101.43.95.130:8082/a/changes/12345
```
### 获取项目列表
```bash
curl http://101.43.95.130:8082/a/projects/
```
## Gitea API
### REST API
Gitea 提供完整的 REST API。
**基础 URL**: `http://101.43.95.130:3000/api/v1/`
### 获取用户信息
```bash
curl -H "Authorization: token YOUR_TOKEN" \
http://101.43.95.130:3000/api/v1/user
```
### 创建仓库
```bash
curl -X POST \
-H "Authorization: token YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"my-repo"}' \
http://101.43.95.130:3000/api/v1/user/repos
```
## MinIO API
### S3 兼容 API
MinIO 完全兼容 Amazon S3 API。
**端点**: `http://101.43.95.130:9000`
### 使用 AWS CLI
```bash
aws --endpoint-url http://101.43.95.130:9000 \
s3 ls s3://my-bucket
```
## Drone API
### REST API
Drone 提供 REST API 用于管理构建和仓库。
**基础 URL**: `http://101.43.95.130:3000/api/`
### 触发构建
```bash
curl -X POST \
-H "Authorization: Bearer YOUR_TOKEN" \
http://101.43.95.130:3000/api/repos/owner/name/builds
```

View File

@@ -0,0 +1,59 @@
# 架构设计
## 系统架构
### 整体架构
```
┌─────────────┐
│ 用户 │
└──────┬──────┘
│
▼
┌─────────────────────────────────────┐
│ DevOps 平台 │
├─────────────────────────────────────┤
│ Gerrit │ Gitea │ Drone CI │
│ (代码审查)│ (Git仓库)│ (CI/CD) │
├─────────────────────────────────────┤
│ MinIO │ Nexus │ MkDocs │
│ (对象存储)│ (Maven) │ (知识库) │
└─────────────────────────────────────┘
```
## 服务说明
### 代码管理
- **Gerrit**: 代码审查和协作
- **Gitea**: Git 仓库管理
### CI/CD
- **Drone CI**: 持续集成和部署
### 存储服务
- **MinIO**: 对象存储,用于构建产物和文件
- **Nexus**: Maven 仓库,用于依赖管理
### 文档服务
- **MkDocs**: 个人知识库和文档管理
## 技术栈
- **容器化**: Docker + Docker Compose
- **版本控制**: Git
- **CI/CD**: Drone
- **存储**: MinIO
- **文档**: MkDocs Material
## 部署架构
所有服务使用 Docker Compose 部署,便于管理和维护。
## 数据持久化
所有服务的数据都存储在 Docker 卷中,确保数据持久化。

View File

@@ -0,0 +1,161 @@
# 部署文档
## 环境要求
- **操作系统**: Linux (CentOS 7+)
- **Docker**: 20.10+
- **Docker Compose**: 1.29+
- **内存**: 建议 4GB+
- **磁盘**: 建议 50GB+
## 部署步骤
### 1. 安装 Docker 和 Docker Compose
```bash
# 安装 Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
### 2. 克隆或创建项目目录
```bash
mkdir -p /home/renjianbo/devops
cd /home/renjianbo/devops
```
### 3. 启动各个服务
#### Gerrit
```bash
cd gerrit
docker-compose up -d
```
#### Gitea
```bash
cd gitea
docker-compose up -d
```
#### MinIO
```bash
cd minio
docker-compose up -d
```
#### Nexus
```bash
cd nexus
docker-compose up -d
```
#### Drone CI
```bash
cd drone-ci
docker-compose up -d
```
#### MkDocs
```bash
cd mkdocs
docker-compose up -d
```
### 4. 验证部署
```bash
# 检查所有容器状态
docker ps
# 检查端口监听
netstat -tlnp | grep -E "8000|8082|3000|9000|8081"
```
## 配置说明
### 端口映射
- **Gerrit**: 8082 (HTTP), 29418 (SSH)
- **Gitea**: 3000 (HTTP), 222 (SSH)
- **MinIO**: 9000 (API), 9001 (Console)
- **Nexus**: 8081 (HTTP)
- **Drone CI**: 3000 (HTTP)
- **MkDocs**: 8000 (HTTP)
### 数据持久化
所有服务的数据存储在 Docker 卷中,确保数据持久化。
## 备份和恢复
### 备份
```bash
# 备份所有数据
cd /home/renjianbo/devops
./scripts/backup.sh
```
### 恢复
```bash
# 恢复数据
cd /home/renjianbo/devops
./scripts/restore.sh
```
## 监控和维护
### 查看日志
```bash
# 查看特定服务日志
cd /home/renjianbo/devops/<服务名>
docker-compose logs -f
```
### 更新服务
```bash
# 拉取最新镜像
docker-compose pull
# 重启服务
docker-compose up -d
```
## 故障排查
### 端口冲突
如果端口被占用,修改 `docker-compose.yml` 中的端口映射。
### 权限问题
确保数据目录有正确的权限:
```bash
sudo chown -R $USER:$USER /home/renjianbo/devops/*/data
```
### 容器无法启动
查看容器日志:
```bash
docker logs <容器名>
```