Docker 部署 MD 云文档系统 📝


📋 目录导航


🎯 项目简介

MD 云文档 是一款基于 Markdown 的现代化在线文档管理系统,为个人和团队提供高效便捷的文档编辑与协作体验。它结合了简洁的界面设计和强大的功能特性,是知识管理和团队协作的理想选择。✨


🛠️ 核心特性

特性类别 功能描述 优势
✏️ 实时编辑 Markdown 即时预览 流畅写作体验,所见即所得
📁 文档管理 树形结构,多级文件夹 清晰组织大量文档
🔍 全文搜索 快速内容定位 高效检索,关键词高亮
📱 响应式设计 适配多设备 桌面移动端完美体验
👥 团队协作 多人实时协作编辑 提升团队协作效率
🐳 容器化部署 Docker 一键部署 简单易用,快速上线
🔒 数据安全 本地化部署 隐私保障,数据自主
🎨 主题定制 多种主题选择 个性化界面,自定义样式
📊 版本控制 完整历史记录 追溯变更,恢复旧版

🐳 一、Docker 部署 MD 云文档

1. 创建部署目录和 docker-compose.yml 文件 📁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mkdir -p /mnt/mydisk/home/md && cd $_ && \
cat > docker-compose.yml <<'EOF'
services:
md:
image: streamerzero/md:latest
container_name: md
environment:
- REG=true # 启用注册功能
- TZ=Asia/Shanghai # 时区设置
volumes:
- ./data:/md/data # 数据持久化目录
ports:
- "9900:9900" # 服务端口映射
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9900"]
interval: 30s
timeout: 10s
retries: 3
EOF

2. 拉取镜像并启动容器 🚀

1
docker-compose up -d

🚀 二、使用 MD 云文档

1. 访问系统与初始设置 🌐

部署完成后,可以通过以下方式访问 MD 云文档系统:

  • 直接访问: http://服务器IP:9900
  • 域名访问: https://md.example.com:666 (配置了 Nginx 反向代理后)

初始设置建议:

  1. 创建管理员账户,设置强密码
  2. 配置站点名称和描述
  3. 设置团队协作权限
  4. 选择主题风格(亮色/暗色)

2. 创建和管理文档 📄

MD 云文档提供全面的文档管理功能:

  • 文档创建: 使用左侧导航栏创建文件夹和文档
  • 编辑功能: 实时双栏预览,支持 Markdown 语法和快捷键
  • 协作功能: 多人实时协作编辑,版本历史记录
  • 文档管理: 文档分类和标签系统,全文搜索功能

3. 高级功能与应用 🚀

  • API 访问: RESTful API 接口,Webhook 支持
  • 插件系统: 扩展功能插件,自定义主题和样式
  • 数据备份: 自动备份设置,手动导出数据
  • 权限管理: 细粒度权限控制,访问日志和审计跟踪

🌐 三、Nginx 反向代理配置

访问地址示例:https://md.example.com:666

1. 创建 Nginx 配置文件 🔧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
mkdir -p /etc/nginx/conf.d && \
cat > /etc/nginx/conf.d/md.conf <<'EOF'
server {
listen 666 ssl;
listen [::]:666 ssl;
server_name md.example.com; # 替换为你的域名

# SSL 证书
ssl_certificate /etc/nginx/keyfile/cert.pem;
ssl_certificate_key /etc/nginx/keyfile/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;

# 安全头部
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

# 文件大小限制
client_max_body_size 100M;

location / {
proxy_pass http://127.0.0.1:9900;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_buffering off;

# WebSocket 支持
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

# 错误页
error_page 404 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF

2. 测试并重载 Nginx 🔄

1
sudo nginx -t && sudo systemctl reload nginx

🔧 四、容器维护命令

1. Docker Compose 命令 🐳

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 进入项目目录
cd /mnt/mydisk/home/md

# 停止并删除容器
docker-compose down

# 拉取最新镜像
docker-compose pull

# 启动容器
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看服务日志
docker-compose logs

# 跟踪服务日志
docker-compose logs -f

# 完整升级流程
docker-compose down && \
docker-compose pull && \
docker-compose up -d && \
docker image prune -f

2. Docker 容器命令 📦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 查看所有容器名称
docker ps -a --format "{{.Names}}"

# 查看运行中容器
docker ps

# 停止/启动/重启容器
docker stop md # 停止容器
docker start md # 启动容器
docker restart md # 重启容器

# 删除容器
docker rm md # 删除已停止容器
docker rm -f md # 强制删除运行中容器

# 进入容器Shell
docker exec -it md sh # 使用sh进入容器
docker exec -it md bash # 使用bash进入容器

# 以root身份进入容器
docker exec -u 0 -it md sh

# 在容器中执行命令
docker exec md ls -la

# 查看容器详情和资源使用
docker inspect md # 查看详细配置
docker stats md # 实时资源监控

## 容器日志管理
docker logs md # 查看日志
docker logs -f md # 实时跟踪日志
docker logs --tail 100 md # 查看最后100行
docker logs -t md # 带时间戳的日志

3. Docker 镜像管理 📀

1
2
3
4
docker images                  # 列出所有镜像
docker rmi <image_name:tag> # 删除指定镜像
docker image prune -f # 清理悬空镜像
docker image prune -a -f # 清理所有未使用镜像

🌟 启航文档,协作无限

通过本文档,你已经成功使用 Docker 部署了 MD 云文档系统,并借助 Nginx 反向代理实现了安全便捷的远程访问。现在,你可以:

📝 高效创作 享受流畅的 Markdown 编辑体验,专注内容创作而非格式调整
👥 无缝协作 与团队成员实时协同编辑,提升文档协作效率
📚 知识沉淀 构建结构化知识库,让宝贵经验得以传承和复用

文档之路,是一场与知识共鸣的创作旅程。愿 MD 云文档成为你可靠的创作伙伴,陪伴你在每一次灵感迸发和知识整理的瞬间。

从现在开始,高效创作,智慧沉淀——构建你独一无二的知识宝库吧!🌿


📌 持续迭代:建议关注 MD 云文档项目更新,及时获取新功能与优化。
🐛 反馈与互助:使用中如有疑问或建议,可前往 Gitee Issues 提出。

祝你创作愉快,协作有成!🎉