first commit
This commit is contained in:
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal 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
|
||||
|
||||
79
docs/DevOps平台/Drone CI使用指南.md
Normal file
79
docs/DevOps平台/Drone CI使用指南.md
Normal 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/)
|
||||
|
||||
63
docs/DevOps平台/Gerrit使用指南.md
Normal file
63
docs/DevOps平台/Gerrit使用指南.md
Normal 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)
|
||||
|
||||
57
docs/DevOps平台/Gitea使用指南.md
Normal file
57
docs/DevOps平台/Gitea使用指南.md
Normal 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/)
|
||||
|
||||
87
docs/DevOps平台/MinIO使用指南.md
Normal file
87
docs/DevOps平台/MinIO使用指南.md
Normal 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/)
|
||||
|
||||
96
docs/DevOps平台/Nexus使用指南.md
Normal file
96
docs/DevOps平台/Nexus使用指南.md
Normal 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
67
docs/index.md
Normal 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 流程图(已配置)
|
||||
|
||||
---
|
||||
|
||||
**开始编写你的文档吧!** 📝
|
||||
|
||||
68
docs/学习笔记/DevOps学习.md
Normal file
68
docs/学习笔记/DevOps学习.md
Normal 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/)
|
||||
|
||||
85
docs/学习笔记/Java学习.md
Normal file
85
docs/学习笔记/Java学习.md
Normal 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/)
|
||||
|
||||
119
docs/学习笔记/前端学习.md
Normal file
119
docs/学习笔记/前端学习.md
Normal 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/)
|
||||
|
||||
104
docs/开发指南/开发规范.md
Normal file
104
docs/开发指南/开发规范.md
Normal 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
|
||||

|
||||
```
|
||||
|
||||
### 表格
|
||||
|
||||
使用 Markdown 表格语法:
|
||||
|
||||
```markdown
|
||||
| 列1 | 列2 | 列3 |
|
||||
|-----|-----|-----|
|
||||
| 值1 | 值2 | 值3 |
|
||||
```
|
||||
|
||||
## 文档结构规范
|
||||
|
||||
### 文档头部
|
||||
|
||||
每个文档应包含:
|
||||
- 标题(H1)
|
||||
- 简要描述
|
||||
- 目录(可选,用于长文档)
|
||||
|
||||
### 章节组织
|
||||
|
||||
- 使用清晰的章节标题
|
||||
- 保持逻辑顺序
|
||||
- 使用列表和表格增强可读性
|
||||
|
||||
## 命名规范
|
||||
|
||||
### 文件名
|
||||
|
||||
- 使用小写字母和连字符
|
||||
- 避免使用空格和特殊字符
|
||||
- 示例:`快速开始.md`、`api-文档.md`
|
||||
|
||||
### 目录名
|
||||
|
||||
- 使用中文或英文
|
||||
- 保持简洁明了
|
||||
- 示例:`开发指南/`、`dev-guide/`
|
||||
|
||||
## 内容规范
|
||||
|
||||
### 语言风格
|
||||
|
||||
- 使用简洁明了的语言
|
||||
- 避免冗长的句子
|
||||
- 使用列表和表格组织信息
|
||||
|
||||
### 代码示例
|
||||
|
||||
- 提供完整可运行的代码示例
|
||||
- 添加必要的注释
|
||||
- 说明代码的用途和注意事项
|
||||
|
||||
### 更新记录
|
||||
|
||||
重要文档建议添加更新记录:
|
||||
|
||||
```markdown
|
||||
## 更新记录
|
||||
|
||||
- 2024-01-01: 初始版本
|
||||
- 2024-01-15: 添加新功能说明
|
||||
```
|
||||
|
||||
52
docs/开发指南/快速开始.md
Normal file
52
docs/开发指南/快速开始.md
Normal 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
|
||||
```
|
||||
|
||||
44
docs/开发指南/项目结构.md
Normal file
44
docs/开发指南/项目结构.md
Normal 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 管理文档
|
||||
|
||||
78
docs/技术文档/API文档.md
Normal file
78
docs/技术文档/API文档.md
Normal 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
|
||||
```
|
||||
|
||||
59
docs/技术文档/架构设计.md
Normal file
59
docs/技术文档/架构设计.md
Normal 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 卷中,确保数据持久化。
|
||||
|
||||
161
docs/技术文档/部署文档.md
Normal file
161
docs/技术文档/部署文档.md
Normal 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
86
mkdocs.yml
Normal 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 © 2024 renjianbo
|
||||
|
||||
227
使用说明.md
Normal file
227
使用说明.md
Normal 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
212
部署说明.md
Normal 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
|
||||

|
||||
```
|
||||
|
||||
### 内部链接
|
||||
|
||||
```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. **保持更新**: 定期更新文档内容
|
||||
|
||||
---
|
||||
|
||||
**开始编写你的文档吧!** 📝
|
||||
|
||||
Reference in New Issue
Block a user