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

0
README.md Normal file
View File

22
docker-compose.yml Normal file
View File

@@ -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

View File

@@ -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/)

View File

@@ -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)

View File

@@ -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/)

View File

@@ -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/)

View File

@@ -0,0 +1,96 @@
# Nexus 使用指南
## 简介
Nexus Repository Manager 是一个 Maven 仓库管理器,用于管理构建依赖和发布构件。
## 访问地址
- **Web 界面**: http://101.43.95.130:8081
- **默认账号**: admin (首次登录会提示修改密码)
## 基本使用
### 配置 Maven
`~/.m2/settings.xml` 中配置:
```xml
<settings>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://101.43.95.130:8081/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
```
### 发布构件
在项目的 `pom.xml` 中配置:
```xml
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://101.43.95.130:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://101.43.95.130:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
```
### 发布命令
```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)

67
docs/index.md Normal file
View File

@@ -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 流程图(已配置)
---
**开始编写你的文档吧!** 📝

View File

@@ -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/)

View File

@@ -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<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("Go");
```
### Map
```java
Map<String, Integer> 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/)

View File

@@ -0,0 +1,119 @@
# 前端学习笔记
## HTML
### 基本结构
```html
<!DOCTYPE html>
<html>
<head>
<title>页面标题</title>
</head>
<body>
<h1>标题</h1>
<p>段落内容</p>
</body>
</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 (
<div>
<p>计数: {count}</p>
<button onClick={() => setCount(count + 1)}>
增加
</button>
</div>
);
}
```
### Vue
```vue
<template>
<div>
<p>计数: {{ count }}</p>
<button @click="increment">增加</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
</script>
```
## 学习资源
- [MDN Web 文档](https://developer.mozilla.org/)
- [React 官方文档](https://react.dev/)
- [Vue 官方文档](https://cn.vuejs.org/)

View File

@@ -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: 添加新功能说明
```

View File

@@ -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
```

View File

@@ -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 管理文档

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 <容器名>
```

86
mkdocs.yml Normal file
View File

@@ -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 &copy; 2024 renjianbo

227
使用说明.md Normal file
View File

@@ -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 会自动生成更新的网站。**

212
部署说明.md Normal file
View File

@@ -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. **保持更新**: 定期更新文档内容
---
**开始编写你的文档吧!** 📝