commit b425ce3e32607f8beee88646d069604581e4646f Author: rjb <263303411@qq.com> Date: Tue Dec 23 16:21:04 2025 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..732d2e1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3.8' + +services: + mkdocs: + image: squidfunk/mkdocs-material:latest + container_name: mkdocs + restart: unless-stopped + ports: + - "8000:8000" # HTTP 端口映射:主机 8000 -> 容器 8000 + volumes: + - .:/docs # 挂载整个项目目录到 /docs + working_dir: /docs + command: serve --dev-addr=0.0.0.0:8000 + environment: + - MKDOCS_SERVE_ADDR=0.0.0.0:8000 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + diff --git a/docs/DevOps平台/Drone CI使用指南.md b/docs/DevOps平台/Drone CI使用指南.md new file mode 100644 index 0000000..0f6b417 --- /dev/null +++ b/docs/DevOps平台/Drone CI使用指南.md @@ -0,0 +1,79 @@ +# Drone CI 使用指南 + +## 简介 + +Drone 是一个基于容器的持续集成/持续部署(CI/CD)平台。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:3000 (需配置) + +## 基本概念 + +### Pipeline + +Pipeline 是 CI/CD 的执行流程,定义在 `.drone.yml` 文件中。 + +### Step + +Step 是 Pipeline 中的一个步骤,每个 Step 在一个独立的容器中执行。 + +### Service + +Service 是 Pipeline 中提供的服务,如数据库、缓存等。 + +## 配置文件示例 + +在项目根目录创建 `.drone.yml`: + +```yaml +kind: pipeline +type: docker +name: default + +steps: +- name: build + image: maven:3.8-openjdk-17 + commands: + - mvn clean package + +- name: test + image: maven:3.8-openjdk-17 + commands: + - mvn test + +- name: deploy + image: alpine + commands: + - echo "部署应用..." +``` + +## 常用操作 + +### 触发构建 + +- 推送到仓库会自动触发构建 +- 在 Web 界面手动触发构建 + +### 查看构建日志 + +在 Web 界面查看构建日志,了解构建过程。 + +### 构建状态 + +- **Success**: 构建成功 +- **Failure**: 构建失败 +- **Running**: 构建中 +- **Pending**: 等待执行 + +## 最佳实践 + +1. **缓存依赖**: 使用缓存加速构建 +2. **并行执行**: 将独立的任务并行执行 +3. **环境变量**: 使用密钥管理敏感信息 +4. **通知机制**: 配置构建通知 + +## 相关链接 + +- [Drone 官方文档](https://docs.drone.io/) + diff --git a/docs/DevOps平台/Gerrit使用指南.md b/docs/DevOps平台/Gerrit使用指南.md new file mode 100644 index 0000000..ad8de0d --- /dev/null +++ b/docs/DevOps平台/Gerrit使用指南.md @@ -0,0 +1,63 @@ +# Gerrit 使用指南 + +## 简介 + +Gerrit 是一个基于 Git 的代码审查工具,用于团队协作和代码质量控制。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:8082 +- **SSH 端口**: 29418 + +## 基本使用 + +### 克隆项目 + +```bash +git clone ssh://admin@101.43.95.130:29418/项目名 +``` + +### 提交代码审查 + +1. 创建分支并提交更改 +2. 推送到 Gerrit 进行审查: + ```bash + git push origin HEAD:refs/for/master + ``` +3. 在 Web 界面查看审查请求 + +### 审查流程 + +1. **创建变更**: 开发者推送代码 +2. **代码审查**: 审查者查看代码并添加评论 +3. **修改代码**: 根据反馈修改代码 +4. **重新提交**: 推送新的补丁集 +5. **通过审查**: 审查者批准代码 +6. **合并代码**: 代码合并到主分支 + +## 常用命令 + +### 查看待审查的变更 + +```bash +ssh -p 29418 admin@101.43.95.130 gerrit query --format=JSON status:open +``` + +### 查看特定变更 + +```bash +ssh -p 29418 admin@101.43.95.130 gerrit query change:12345 +``` + +## 最佳实践 + +1. **小步提交**: 每次提交只包含一个功能或修复 +2. **清晰的提交信息**: 使用清晰的提交信息说明更改内容 +3. **及时响应**: 及时响应审查者的反馈 +4. **代码质量**: 确保代码通过所有测试和检查 + +## 相关链接 + +- [Gerrit 官方文档](https://gerrit-review.googlesource.com/Documentation/) +- [Gerrit 工作流程](https://gerrit-review.googlesource.com/Documentation/intro-user.html) + diff --git a/docs/DevOps平台/Gitea使用指南.md b/docs/DevOps平台/Gitea使用指南.md new file mode 100644 index 0000000..70c3cda --- /dev/null +++ b/docs/DevOps平台/Gitea使用指南.md @@ -0,0 +1,57 @@ +# Gitea 使用指南 + +## 简介 + +Gitea 是一个轻量级的 Git 服务,提供 Web 界面和 Git 仓库管理功能。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:3000 +- **SSH 端口**: 222 + +## 基本使用 + +### 创建仓库 + +1. 登录 Gitea +2. 点击右上角 "+" 按钮 +3. 选择 "New Repository" +4. 填写仓库信息并创建 + +### 克隆仓库 + +```bash +# HTTPS +git clone http://101.43.95.130:3000/用户名/仓库名.git + +# SSH +git clone ssh://git@101.43.95.130:222/用户名/仓库名.git +``` + +### 推送代码 + +```bash +git add . +git commit -m "提交信息" +git push origin main +``` + +## 功能特性 + +- **代码仓库**: Git 仓库管理 +- **Issue 跟踪**: 问题跟踪和管理 +- **Pull Request**: 代码合并请求 +- **Wiki**: 项目文档 +- **项目管理**: 看板和里程碑 + +## 最佳实践 + +1. **分支管理**: 使用分支进行功能开发 +2. **提交规范**: 遵循提交信息规范 +3. **代码审查**: 使用 Pull Request 进行代码审查 +4. **文档维护**: 使用 Wiki 维护项目文档 + +## 相关链接 + +- [Gitea 官方文档](https://docs.gitea.io/) + diff --git a/docs/DevOps平台/MinIO使用指南.md b/docs/DevOps平台/MinIO使用指南.md new file mode 100644 index 0000000..c5d0ae9 --- /dev/null +++ b/docs/DevOps平台/MinIO使用指南.md @@ -0,0 +1,87 @@ +# MinIO 使用指南 + +## 简介 + +MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。 + +## 访问地址 + +- **API 地址**: http://101.43.95.130:9000 +- **Console 地址**: http://101.43.95.130:9001 +- **默认账号**: minioadmin / minioadmin123 + +## 基本使用 + +### 创建存储桶(Bucket) + +1. 登录 MinIO Console +2. 点击 "Create Bucket" +3. 输入存储桶名称 +4. 配置访问策略 + +### 上传文件 + +1. 选择存储桶 +2. 点击 "Upload" +3. 选择文件上传 + +### 下载文件 + +1. 在存储桶中找到文件 +2. 点击文件下载 + +## API 使用 + +### 使用 Python SDK + +```python +from minio import Minio +from minio.error import S3Error + +# 初始化客户端 +client = Minio( + "101.43.95.130:9000", + access_key="minioadmin", + secret_key="minioadmin123", + secure=False +) + +# 上传文件 +client.fput_object("my-bucket", "object-name", "file-path") +``` + +### 使用 Java SDK + +```java +MinioClient minioClient = MinioClient.builder() + .endpoint("http://101.43.95.130:9000") + .credentials("minioadmin", "minioadmin123") + .build(); + +minioClient.uploadObject( + UploadObjectArgs.builder() + .bucket("my-bucket") + .object("object-name") + .filename("file-path") + .build() +); +``` + +## 使用场景 + +- **构建产物存储**: 存储 CI/CD 构建的产物 +- **APK 仓库**: 存储 Android APK 文件 +- **文件备份**: 备份重要文件 +- **静态资源**: 存储网站静态资源 + +## 最佳实践 + +1. **访问控制**: 配置适当的访问策略 +2. **数据备份**: 定期备份重要数据 +3. **版本控制**: 启用对象版本控制 +4. **监控告警**: 配置监控和告警 + +## 相关链接 + +- [MinIO 官方文档](https://min.io/docs/) + diff --git a/docs/DevOps平台/Nexus使用指南.md b/docs/DevOps平台/Nexus使用指南.md new file mode 100644 index 0000000..e4cdf61 --- /dev/null +++ b/docs/DevOps平台/Nexus使用指南.md @@ -0,0 +1,96 @@ +# Nexus 使用指南 + +## 简介 + +Nexus Repository Manager 是一个 Maven 仓库管理器,用于管理构建依赖和发布构件。 + +## 访问地址 + +- **Web 界面**: http://101.43.95.130:8081 +- **默认账号**: admin (首次登录会提示修改密码) + +## 基本使用 + +### 配置 Maven + +在 `~/.m2/settings.xml` 中配置: + +```xml + + + + nexus + * + http://101.43.95.130:8081/repository/maven-public/ + + + +``` + +### 发布构件 + +在项目的 `pom.xml` 中配置: + +```xml + + + nexus-releases + http://101.43.95.130:8081/repository/maven-releases/ + + + nexus-snapshots + http://101.43.95.130:8081/repository/maven-snapshots/ + + +``` + +### 发布命令 + +```bash +mvn clean deploy +``` + +## 仓库类型 + +### Maven Central 代理 + +- **名称**: maven-central +- **类型**: Proxy +- **远程 URL**: https://repo1.maven.org/maven2/ + +### Maven Public 组 + +- **名称**: maven-public +- **类型**: Group +- **包含**: maven-central, maven-releases, maven-snapshots + +### Maven Releases + +- **名称**: maven-releases +- **类型**: Hosted +- **策略**: Release + +### Maven Snapshots + +- **名称**: maven-snapshots +- **类型**: Hosted +- **策略**: Snapshot + +## 使用场景 + +- **依赖加速**: 加速 Gradle/Maven 依赖下载 +- **私有仓库**: 存储私有构件 +- **版本管理**: 管理发布版本和快照版本 +- **安全扫描**: 扫描依赖漏洞 + +## 最佳实践 + +1. **定期清理**: 清理不需要的快照版本 +2. **备份数据**: 定期备份仓库数据 +3. **访问控制**: 配置适当的用户权限 +4. **监控告警**: 监控仓库使用情况 + +## 相关链接 + +- [Nexus 官方文档](https://help.sonatype.com/repomanager3) + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..cbecd4b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,67 @@ +# 欢迎来到个人知识库 + +这是一个基于 MkDocs Material 的个人技术文档和知识管理平台。 + +## 📚 功能特性 + +- 📝 **Markdown 支持**: 使用 Markdown 编写文档,简单易用 +- 🎨 **Material 主题**: 美观现代的 Material Design 界面 +- 🔍 **全文搜索**: 快速查找所需内容 +- 📱 **响应式设计**: 支持各种设备访问 +- 🌙 **深色模式**: 支持浅色/深色主题切换 +- 📊 **代码高亮**: 支持多种编程语言的语法高亮 +- 🔗 **导航系统**: 清晰的文档导航结构 + +## 🚀 快速开始 + +### 编辑文档 + +1. 在 `docs/` 目录下创建或编辑 Markdown 文件 +2. 在 `mkdocs.yml` 中更新导航配置 +3. 保存后,MkDocs 会自动重新加载(开发模式) + +### 添加新文档 + +1. 在 `docs/` 目录下创建新的 `.md` 文件 +2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 +3. 重启服务或等待自动重载 + +### 构建静态站点 + +```bash +# 进入容器执行构建 +docker exec -it mkdocs mkdocs build + +# 或使用 docker-compose +docker-compose exec mkdocs mkdocs build +``` + +## 📖 文档结构 + +``` +docs/ +├── index.md # 首页 +├── 开发指南/ # 开发相关文档 +├── DevOps平台/ # DevOps 工具使用指南 +├── 技术文档/ # 技术架构和 API 文档 +└── 学习笔记/ # 学习笔记和总结 +``` + +## 🔗 相关链接 + +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) +- [Markdown 语法指南](https://www.markdownguide.org/) + +## 💡 使用技巧 + +1. **代码块**: 使用三个反引号包裹代码,并指定语言 +2. **表格**: 使用 Markdown 表格语法 +3. **图片**: 将图片放在 `docs/images/` 目录,使用相对路径引用 +4. **数学公式**: 支持 LaTeX 数学公式(需要启用相应插件) +5. **流程图**: 支持 Mermaid 流程图(已配置) + +--- + +**开始编写你的文档吧!** 📝 + diff --git a/docs/学习笔记/DevOps学习.md b/docs/学习笔记/DevOps学习.md new file mode 100644 index 0000000..1b276ec --- /dev/null +++ b/docs/学习笔记/DevOps学习.md @@ -0,0 +1,68 @@ +# DevOps 学习笔记 + +## 概念 + +### CI/CD + +- **CI (Continuous Integration)**: 持续集成 + - 自动构建 + - 自动测试 + - 代码质量检查 + +- **CD (Continuous Deployment)**: 持续部署 + - 自动部署 + - 环境管理 + - 回滚机制 + +## 工具链 + +### 版本控制 + +- **Git**: 分布式版本控制系统 +- **Gerrit**: 代码审查工具 +- **Gitea**: Git 服务 + +### CI/CD + +- **Drone**: 基于容器的 CI/CD 平台 +- **Jenkins**: 流行的 CI/CD 工具 +- **GitLab CI**: GitLab 内置 CI/CD + +### 容器化 + +- **Docker**: 容器化平台 +- **Docker Compose**: 多容器编排 +- **Kubernetes**: 容器编排平台 + +### 监控和日志 + +- **Grafana**: 监控可视化 +- **Loki**: 日志聚合 +- **Prometheus**: 监控和告警 + +## 最佳实践 + +### 代码管理 + +1. 使用分支策略(Git Flow) +2. 代码审查(Code Review) +3. 提交信息规范(Conventional Commits) + +### 自动化 + +1. 自动化测试 +2. 自动化构建 +3. 自动化部署 + +### 监控 + +1. 应用监控 +2. 日志收集 +3. 告警机制 + +## 学习资源 + +- [DevOps 实践指南](https://www.devops-handbook.com/) +- [Docker 官方文档](https://docs.docker.com/) +- [Kubernetes 官方文档](https://kubernetes.io/docs/) + diff --git a/docs/学习笔记/Java学习.md b/docs/学习笔记/Java学习.md new file mode 100644 index 0000000..c704581 --- /dev/null +++ b/docs/学习笔记/Java学习.md @@ -0,0 +1,85 @@ +# Java 学习笔记 + +## 基础语法 + +### 变量和数据类型 + +```java +// 基本数据类型 +int age = 25; +double price = 99.99; +boolean isActive = true; +String name = "Java"; +``` + +### 控制结构 + +```java +// if-else +if (age >= 18) { + System.out.println("成年人"); +} else { + System.out.println("未成年人"); +} + +// for 循环 +for (int i = 0; i < 10; i++) { + System.out.println(i); +} +``` + +## 面向对象 + +### 类和对象 + +```java +public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public void introduce() { + System.out.println("我是 " + name + ",今年 " + age + " 岁"); + } +} +``` + +## 集合框架 + +### List + +```java +List list = new ArrayList<>(); +list.add("Java"); +list.add("Python"); +list.add("Go"); +``` + +### Map + +```java +Map map = new HashMap<>(); +map.put("Java", 1); +map.put("Python", 2); +``` + +## 常用工具类 + +### String 操作 + +```java +String str = "Hello World"; +str.length(); // 长度 +str.substring(0, 5); // 子串 +str.split(" "); // 分割 +``` + +## 学习资源 + +- [Oracle Java 教程](https://docs.oracle.com/javase/tutorial/) +- [Java 官方文档](https://docs.oracle.com/en/java/) + diff --git a/docs/学习笔记/前端学习.md b/docs/学习笔记/前端学习.md new file mode 100644 index 0000000..8edaabe --- /dev/null +++ b/docs/学习笔记/前端学习.md @@ -0,0 +1,119 @@ +# 前端学习笔记 + +## HTML + +### 基本结构 + +```html + + + + 页面标题 + + +

标题

+

段落内容

+ + +``` + +## CSS + +### 样式定义 + +```css +.container { + width: 100%; + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.button { + background-color: #007bff; + color: white; + padding: 10px 20px; + border: none; + border-radius: 4px; + cursor: pointer; +} +``` + +## JavaScript + +### 基础语法 + +```javascript +// 变量 +let name = "JavaScript"; +const age = 25; + +// 函数 +function greet(name) { + return `Hello, ${name}!`; +} + +// 箭头函数 +const greet = (name) => `Hello, ${name}!`; + +// 异步函数 +async function fetchData() { + const response = await fetch('/api/data'); + const data = await response.json(); + return data; +} +``` + +## 框架和库 + +### React + +```jsx +import React, { useState } from 'react'; + +function App() { + const [count, setCount] = useState(0); + + return ( +
+

计数: {count}

+ +
+ ); +} +``` + +### Vue + +```vue + + + +``` + +## 学习资源 + +- [MDN Web 文档](https://developer.mozilla.org/) +- [React 官方文档](https://react.dev/) +- [Vue 官方文档](https://cn.vuejs.org/) + diff --git a/docs/开发指南/开发规范.md b/docs/开发指南/开发规范.md new file mode 100644 index 0000000..1b78ad6 --- /dev/null +++ b/docs/开发指南/开发规范.md @@ -0,0 +1,104 @@ +# 开发规范 + +## Markdown 编写规范 + +### 标题层级 + +- 使用 `#` 作为文档主标题(H1) +- 使用 `##` 作为章节标题(H2) +- 使用 `###` 作为小节标题(H3) +- 避免跳过标题层级 + +### 代码块 + +使用三个反引号包裹代码,并指定语言: + +````markdown +```python +def hello(): + print("Hello, World!") +``` +```` + +### 链接 + +- 内部链接:使用相对路径 +- 外部链接:使用完整 URL + +```markdown +[内部文档](../其他文档.md) +[外部链接](https://example.com) +``` + +### 图片 + +将图片放在 `docs/images/` 目录,使用相对路径: + +```markdown +![图片描述](images/example.png) +``` + +### 表格 + +使用 Markdown 表格语法: + +```markdown +| 列1 | 列2 | 列3 | +|-----|-----|-----| +| 值1 | 值2 | 值3 | +``` + +## 文档结构规范 + +### 文档头部 + +每个文档应包含: +- 标题(H1) +- 简要描述 +- 目录(可选,用于长文档) + +### 章节组织 + +- 使用清晰的章节标题 +- 保持逻辑顺序 +- 使用列表和表格增强可读性 + +## 命名规范 + +### 文件名 + +- 使用小写字母和连字符 +- 避免使用空格和特殊字符 +- 示例:`快速开始.md`、`api-文档.md` + +### 目录名 + +- 使用中文或英文 +- 保持简洁明了 +- 示例:`开发指南/`、`dev-guide/` + +## 内容规范 + +### 语言风格 + +- 使用简洁明了的语言 +- 避免冗长的句子 +- 使用列表和表格组织信息 + +### 代码示例 + +- 提供完整可运行的代码示例 +- 添加必要的注释 +- 说明代码的用途和注意事项 + +### 更新记录 + +重要文档建议添加更新记录: + +```markdown +## 更新记录 + +- 2024-01-01: 初始版本 +- 2024-01-15: 添加新功能说明 +``` + diff --git a/docs/开发指南/快速开始.md b/docs/开发指南/快速开始.md new file mode 100644 index 0000000..2b56a1c --- /dev/null +++ b/docs/开发指南/快速开始.md @@ -0,0 +1,52 @@ +# 快速开始 + +## 环境要求 + +- Docker +- Docker Compose + +## 启动服务 + +```bash +cd /home/renjianbo/devops/mkdocs +docker-compose up -d +``` + +## 访问地址 + +- **本地访问**: http://localhost:8000 +- **服务器访问**: http://101.43.95.130:8000 + +## 编辑文档 + +1. 编辑 `docs/` 目录下的 Markdown 文件 +2. 保存后,页面会自动刷新(开发模式) +3. 在 `mkdocs.yml` 中配置导航结构 + +## 常用命令 + +### 启动服务 +```bash +docker-compose up -d +``` + +### 停止服务 +```bash +docker-compose down +``` + +### 查看日志 +```bash +docker-compose logs -f +``` + +### 构建静态站点 +```bash +docker-compose exec mkdocs mkdocs build +``` + +### 进入容器 +```bash +docker exec -it mkdocs sh +``` + diff --git a/docs/开发指南/项目结构.md b/docs/开发指南/项目结构.md new file mode 100644 index 0000000..bc6a9d7 --- /dev/null +++ b/docs/开发指南/项目结构.md @@ -0,0 +1,44 @@ +# 项目结构 + +## 目录说明 + +``` +mkdocs/ +├── docker-compose.yml # Docker Compose 配置文件 +├── mkdocs.yml # MkDocs 配置文件 +├── docs/ # 文档源文件目录 +│ ├── index.md # 首页 +│ ├── 开发指南/ # 开发相关文档 +│ ├── DevOps平台/ # DevOps 工具文档 +│ ├── 技术文档/ # 技术文档 +│ └── 学习笔记/ # 学习笔记 +└── site/ # 构建后的静态站点(可选) +``` + +## 配置文件说明 + +### mkdocs.yml + +MkDocs 的主配置文件,包含: +- 站点信息(名称、描述、作者等) +- 主题配置 +- 插件配置 +- 导航结构 +- Markdown 扩展 + +### docker-compose.yml + +Docker Compose 配置文件,定义: +- 使用的镜像 +- 端口映射 +- 数据卷挂载 +- 环境变量 +- 健康检查 + +## 文档组织建议 + +1. **按主题分类**: 将相关文档放在同一目录下 +2. **命名规范**: 使用有意义的文件名 +3. **导航清晰**: 在 `mkdocs.yml` 中维护清晰的导航结构 +4. **版本控制**: 建议使用 Git 管理文档 + diff --git a/docs/技术文档/API文档.md b/docs/技术文档/API文档.md new file mode 100644 index 0000000..bec83ba --- /dev/null +++ b/docs/技术文档/API文档.md @@ -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 +``` + diff --git a/docs/技术文档/架构设计.md b/docs/技术文档/架构设计.md new file mode 100644 index 0000000..f1cd0fd --- /dev/null +++ b/docs/技术文档/架构设计.md @@ -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 卷中,确保数据持久化。 + diff --git a/docs/技术文档/部署文档.md b/docs/技术文档/部署文档.md new file mode 100644 index 0000000..a01c53c --- /dev/null +++ b/docs/技术文档/部署文档.md @@ -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 <容器名> +``` + diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..5988647 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,86 @@ +site_name: 个人知识库 +site_description: 个人技术文档和知识管理平台 +site_author: renjianbo +site_url: http://101.43.95.130:8000/ + +# 主题配置 +theme: + name: material + palette: + # 浅色模式 + - scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: 切换到深色模式 + # 深色模式 + - scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: 切换到浅色模式 + features: + - navigation.tabs + - navigation.sections + - navigation.expand + - navigation.top + - search.suggest + - search.highlight + - content.code.annotate + - content.code.copy + icon: + repo: fontawesome/brands/git-alt + +# 插件配置 +plugins: + - search + - minify: + minify_html: true + +# 导航配置 +nav: + - 首页: index.md + - 开发指南: + - 开发指南/快速开始.md + - 开发指南/项目结构.md + - 开发指南/开发规范.md + - DevOps平台: + - DevOps平台/Gerrit使用指南.md + - DevOps平台/Gitea使用指南.md + - DevOps平台/Drone CI使用指南.md + - DevOps平台/MinIO使用指南.md + - DevOps平台/Nexus使用指南.md + - 技术文档: + - 技术文档/架构设计.md + - 技术文档/API文档.md + - 技术文档/部署文档.md + - 学习笔记: + - 学习笔记/Java学习.md + - 学习笔记/前端学习.md + - 学习笔记/DevOps学习.md + +# Markdown扩展 +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - admonition + - pymdownx.details + - pymdownx.tabbed: + alternate_style: true + - attr_list + - md_in_html + - toc: + permalink: true + +# 版权信息 +copyright: Copyright © 2024 renjianbo + diff --git a/使用说明.md b/使用说明.md new file mode 100644 index 0000000..412b697 --- /dev/null +++ b/使用说明.md @@ -0,0 +1,227 @@ +# MkDocs 使用说明 + +## 📝 编辑方式说明 + +### ❌ 不支持在线编辑 + +**MkDocs 是一个静态文档生成工具,前端网站只能查看,不能在线编辑。** + +### ✅ 正确的使用方式 + +**需要编辑 Markdown 文件并放入对应目录,MkDocs 会自动生成网站。** + +## 🔄 工作流程 + +``` +编辑 Markdown 文件 → 保存文件 → MkDocs 自动检测变化 → 重新生成网站 → 浏览器自动刷新 +``` + +## 📖 详细使用步骤 + +### 方式一:在服务器上直接编辑(推荐用于快速修改) + +1. **SSH 连接到服务器** + ```bash + ssh renjianbo@101.43.95.130 + ``` + +2. **编辑文档文件** + ```bash + # 使用 vim 编辑 + vim /home/renjianbo/devops/mkdocs/docs/index.md + + # 或使用 nano + nano /home/renjianbo/devops/mkdocs/docs/index.md + ``` + +3. **保存文件后,MkDocs 会自动重新加载**(开发模式) + - 无需重启服务 + - 浏览器刷新即可看到更新 + +### 方式二:本地开发后上传(推荐用于大量编辑) + +1. **在本地电脑上编辑** + - 使用你喜欢的编辑器(VS Code、Typora、MarkText 等) + - 编辑 `docs/` 目录下的 Markdown 文件 + +2. **上传到服务器** + ```bash + # 使用 scp 上传 + scp -r docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/ + + # 或使用 rsync 同步 + rsync -avz docs/ renjianbo@101.43.95.130:/home/renjianbo/devops/mkdocs/docs/ + ``` + +3. **MkDocs 会自动检测变化并更新** + +### 方式三:使用 Git 管理(推荐用于团队协作) + +1. **在本地编辑并提交到 Git** + ```bash + cd /home/renjianbo/devops/mkdocs + git add . + git commit -m "更新文档" + git push + ``` + +2. **在服务器上拉取更新** + ```bash + ssh renjianbo@101.43.95.130 + cd /home/renjianbo/devops/mkdocs + git pull + ``` + +3. **MkDocs 会自动更新** + +## 📁 文件组织 + +### 目录结构 + +``` +docs/ +├── index.md # 首页 +├── 开发指南/ +│ ├── 快速开始.md +│ ├── 项目结构.md +│ └── 开发规范.md +├── DevOps平台/ +│ ├── Gerrit使用指南.md +│ ├── Gitea使用指南.md +│ └── ... +├── 技术文档/ +│ ├── 架构设计.md +│ └── ... +└── 学习笔记/ + ├── Java学习.md + └── ... +``` + +### 添加新文档 + +1. **创建 Markdown 文件** + ```bash + # 例如:添加新的学习笔记 + touch /home/renjianbo/devops/mkdocs/docs/学习笔记/新主题.md + ``` + +2. **编辑文件内容** + ```markdown + # 新主题 + + 这是新主题的内容... + ``` + +3. **在 mkdocs.yml 中添加导航** + ```yaml + nav: + - 学习笔记: + - 学习笔记/Java学习.md + - 学习笔记/前端学习.md + - 学习笔记/新主题.md # 添加这一行 + ``` + +4. **保存后自动生效** + +## 🛠️ 常用编辑命令 + +### 查看现有文档 +```bash +ls -la /home/renjianbo/devops/mkdocs/docs/ +``` + +### 编辑文档 +```bash +# 使用 vim +vim /home/renjianbo/devops/mkdocs/docs/index.md + +# 使用 nano(更简单) +nano /home/renjianbo/devops/mkdocs/docs/index.md +``` + +### 创建新文档 +```bash +# 创建新文件 +touch /home/renjianbo/devops/mkdocs/docs/新文档.md + +# 或直接编辑(如果不存在会自动创建) +nano /home/renjianbo/devops/mkdocs/docs/新文档.md +``` + +### 查看 MkDocs 日志(确认更新) +```bash +docker logs -f mkdocs +``` + +## 💡 编辑技巧 + +### 1. 使用本地编辑器(推荐) + +在本地使用专业的 Markdown 编辑器: +- **VS Code** + Markdown 插件 +- **Typora**(所见即所得) +- **MarkText**(开源免费) + +### 2. 实时预览 + +MkDocs 开发模式支持自动刷新: +- 编辑文件并保存 +- 浏览器会自动刷新显示最新内容 +- 无需手动重启服务 + +### 3. 文件同步 + +如果需要在多台电脑上编辑: +- 使用 Git 管理文档 +- 或使用 rsync/scp 同步文件 + +## 🔍 验证更新 + +编辑文件后,可以通过以下方式验证: + +1. **查看容器日志** + ```bash + docker logs mkdocs | tail -20 + ``` + 应该看到类似信息: + ``` + INFO - Documentation built in 1.32 seconds + INFO - [时间] Serving on http://0.0.0.0:8000/ + ``` + +2. **刷新浏览器** + - 访问 http://101.43.95.130:8000 + - 按 F5 或 Ctrl+R 刷新 + - 应该看到最新内容 + +## ❓ 常见问题 + +### Q: 为什么不能在前端网站直接编辑? + +A: MkDocs 是静态文档生成工具,它读取 Markdown 文件并生成静态 HTML 网站。前端只是展示,不提供编辑功能。 + +### Q: 如果我想在线编辑怎么办? + +A: 可以考虑以下方案: +1. **使用 Wiki 系统**(如 Gitea 的 Wiki 功能) +2. **使用在线 Markdown 编辑器**(如 HackMD、StackEdit) +3. **使用 Git 工作流**(本地编辑 → Git 提交 → 服务器拉取) + +### Q: 编辑后多久能看到更新? + +A: 在开发模式下,保存文件后几秒钟内就会自动更新,刷新浏览器即可看到。 + +### Q: 需要重启服务吗? + +A: 不需要!MkDocs 开发模式会自动检测文件变化并重新生成网站。 + +## 📚 相关资源 + +- [Markdown 语法指南](https://www.markdownguide.org/) +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) + +--- + +**总结:MkDocs 需要编辑 Markdown 文件,不能在前端网站直接编辑。编辑文件后,MkDocs 会自动生成更新的网站。** + diff --git a/部署说明.md b/部署说明.md new file mode 100644 index 0000000..edead4b --- /dev/null +++ b/部署说明.md @@ -0,0 +1,212 @@ +# MkDocs 个人知识库部署说明 + +## 📋 简介 + +MkDocs 是一个基于 Markdown 的文档生成工具,使用 Material 主题提供美观的文档界面。 + +## 🚀 快速开始 + +### 1. 启动服务 + +```bash +cd /home/renjianbo/devops/mkdocs +docker-compose up -d +``` + +### 2. 访问地址 + +- **本地访问**: http://localhost:8000 +- **服务器访问**: http://101.43.95.130:8000 + +### 3. 查看日志 + +```bash +docker-compose logs -f +``` + +## 📁 目录结构 + +``` +mkdocs/ +├── docker-compose.yml # Docker Compose 配置 +├── mkdocs.yml # MkDocs 配置文件 +├── docs/ # 文档源文件目录 +│ ├── index.md # 首页 +│ ├── 开发指南/ # 开发相关文档 +│ ├── DevOps平台/ # DevOps 工具文档 +│ ├── 技术文档/ # 技术文档 +│ └── 学习笔记/ # 学习笔记 +└── site/ # 构建后的静态站点(可选) +``` + +## ✏️ 编辑文档 + +### 添加新文档 + +1. 在 `docs/` 目录下创建 Markdown 文件 +2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项 +3. 保存后,页面会自动刷新(开发模式) + +### 编辑现有文档 + +直接编辑 `docs/` 目录下的 Markdown 文件,保存后自动刷新。 + +### 示例:添加新章节 + +1. 创建文件 `docs/新章节/内容.md` +2. 在 `mkdocs.yml` 中添加: + +```yaml +nav: + - 新章节: + - 新章节/内容.md +``` + +## 🔧 常用命令 + +### 启动服务 +```bash +docker-compose up -d +``` + +### 停止服务 +```bash +docker-compose down +``` + +### 重启服务 +```bash +docker-compose restart +``` + +### 查看日志 +```bash +docker-compose logs -f +``` + +### 构建静态站点 +```bash +docker-compose exec mkdocs mkdocs build +``` + +构建后的静态文件会生成在 `site/` 目录。 + +### 进入容器 +```bash +docker exec -it mkdocs sh +``` + +## 📝 配置说明 + +### 修改站点信息 + +编辑 `mkdocs.yml` 文件: + +```yaml +site_name: 个人知识库 +site_description: 个人技术文档和知识管理平台 +site_author: renjianbo +site_url: http://101.43.95.130:8000/ +``` + +### 修改主题 + +在 `mkdocs.yml` 的 `theme` 部分修改主题配置。 + +### 添加插件 + +在 `mkdocs.yml` 的 `plugins` 部分添加插件。 + +## 🎨 功能特性 + +- ✅ **Material 主题**: 美观现代的界面 +- ✅ **全文搜索**: 快速查找内容 +- ✅ **响应式设计**: 支持各种设备 +- ✅ **深色模式**: 支持主题切换 +- ✅ **代码高亮**: 支持多种编程语言 +- ✅ **数学公式**: 支持 LaTeX 公式 +- ✅ **流程图**: 支持 Mermaid 流程图 + +## 📚 使用技巧 + +### 代码块 + +使用三个反引号包裹代码,并指定语言: + +````markdown +```python +def hello(): + print("Hello, World!") +``` +```` + +### 表格 + +```markdown +| 列1 | 列2 | 列3 | +|-----|-----|-----| +| 值1 | 值2 | 值3 | +``` + +### 图片 + +将图片放在 `docs/images/` 目录,使用相对路径: + +```markdown +![图片描述](images/example.png) +``` + +### 内部链接 + +```markdown +[链接文本](../其他文档.md) +``` + +### 外部链接 + +```markdown +[链接文本](https://example.com) +``` + +## 🔍 故障排查 + +### 端口被占用 + +如果端口 8000 被占用,修改 `docker-compose.yml` 中的端口映射: + +```yaml +ports: + - "8001:8000" # 改为其他端口 +``` + +### 页面不更新 + +1. 检查文件是否保存 +2. 查看容器日志:`docker-compose logs mkdocs` +3. 重启服务:`docker-compose restart` + +### 权限问题 + +确保文件有正确的权限: + +```bash +chown -R renjianbo:renjianbo /home/renjianbo/devops/mkdocs +``` + +## 📖 相关资源 + +- [MkDocs 官方文档](https://www.mkdocs.org/) +- [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) +- [Markdown 语法指南](https://www.markdownguide.org/) + +## 💡 最佳实践 + +1. **定期备份**: 定期备份 `docs/` 目录和 `mkdocs.yml` +2. **版本控制**: 使用 Git 管理文档 +3. **文档组织**: 按主题分类组织文档 +4. **保持更新**: 定期更新文档内容 + +--- + +**开始编写你的文档吧!** 📝 +