Mindoc
概述
Mindoc 是一个开源的在线文档管理和协作平台,旨在简化文档的创建、管理和共享,通常用于团队内部知识管理、项目文档编写和技术文档存储。
核心功能:
- 支持 Markdown 语法编写文档
- 文档版本管理与历史追溯
- 多级分类和标签管理
- 全文搜索与文档导出
- 用户权限与角色管理
- 支持 SQLite、MySQL、PostgreSQL 多种数据库
部署准备
1. 系统要求
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 1 核 | 2 核 |
| 内存 | 512 MB | 1 GB+ |
| 硬盘 | 10 GB | 20 GB+ |
| Docker | 18.06+ | 最新版 |
2. 创建 Docker Compose 编排文件
docker-compose.yaml:
services:
mindoc:
image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1
container_name: mindoc
privileged: false
restart: always
ports:
- 8181:8181
volumes:
- mindoc:/mindoc
environment:
- MINDOC_RUN_MODE=prod
- MINDOC_DB_ADAPTER=sqlite3
- MINDOC_DB_DATABASE=./database/mindoc.db
- MINDOC_CACHE=true
- MINDOC_CACHE_PROVIDER=file
- MINDOC_ENABLE_EXPORT=false
- MINDOC_BASE_URL=
- MINDOC_CDN_IMG_URL=
- MINDOC_CDN_CSS_URL=
- MINDOC_CDN_JS_URL=
deploy:
resources:
limits:
cpus: "1"
memory: "1G"
volumes:
mindoc:3. 环境变量说明
| 变量 | 说明 |
|---|---|
MINDOC_RUN_MODE |
运行模式,prod 为生产模式 |
MINDOC_DB_ADAPTER |
数据库适配器,支持 sqlite3、mysql、postgres |
MINDOC_DB_DATABASE |
数据库文件路径(SQLite)或数据库名 |
MINDOC_CACHE |
是否开启缓存 |
MINDOC_CACHE_PROVIDER |
缓存存储方式,file 或 memory |
MINDOC_ENABLE_EXPORT |
是否开启文档导出功能 |
MINDOC_BASE_URL |
站点基础 URL,部署在子路径时需配置 |
启动服务
docker compose up -d查看启动日志:
docker logs mindoc -f --tail=50验证访问
curl http://127.0.0.1:8181在浏览器中打开 http://<服务器IP>:8181 即可访问 Mindoc。
默认登录信息:
- 用户名:
admin - 密码:
123456
重要:首次登录后请立即修改默认密码。
常用管理命令
| 操作 | 命令 |
|---|---|
| 启动 Mindoc | docker compose up -d |
| 停止 Mindoc | docker compose stop |
| 重启 Mindoc | docker compose restart |
| 查看状态 | docker compose ps |
| 查看日志 | docker logs mindoc -f --tail=100 |
| 进入容器 | docker exec -it mindoc /bin/sh |
切换数据库(MySQL 示例)
如需使用 MySQL 数据库,修改 docker-compose.yaml 环境变量:
environment:
- MINDOC_RUN_MODE=prod
- MINDOC_DB_ADAPTER=mysql
- MINDOC_DB_HOST=mysql
- MINDOC_DB_PORT=3306
- MINDOC_DB_DATABASE=mindoc
- MINDOC_DB_USERNAME=root
- MINDOC_DB_PASSWORD=your_password然后部署 MySQL 服务:
services:
mysql:
image: mysql:8.0
container_name: mindoc-mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=your_password
- MYSQL_DATABASE=mindoc
volumes:
- mysql_data:/var/lib/mysql
ports:
- 3306:3306
volumes:
mindoc:
mysql_data:常见问题
Q:启动后无法访问?
- 确认容器运行状态:
docker ps | grep mindoc- 检查端口映射是否正确:
netstat -tlnp | grep 8181- 如端口被占用,修改
ports映射为其他端口,如8182:8181。
Q:忘记管理员密码怎么办?
进入容器重置密码:
docker exec -it mindoc /bin/sh
./mindoc --conf=./conf/app.conf user reset -u admin -p 123456
exitQ:上传附件失败或文件过大限制?
在 conf/app.conf 中修改上传限制:
# 进入容器
docker exec -it mindoc /bin/sh
# 编辑配置文件
vi ./conf/app.conf添加或修改以下配置:
# 单次请求最大字节数(默认 1GB)
maxmemory = 1 << 30
# 上传文件大小限制
upload_max_size = 512MQ:如何备份 Mindoc 数据?
# 停止 Mindoc
docker compose down
# 备份数据卷
docker run --rm -v mindoc_mindoc:/data alpine tar czf /tmp/mindoc_backup.tar.gz -C /data .
# 重启 Mindoc
docker compose up -dQ:如何升级 Mindoc 版本?
# 停止并删除旧容器
docker compose down
# 备份数据
docker run --rm -v mindoc_mindoc:/data alpine tar czf /tmp/mindoc_backup_$(date +%Y%m%d).tar.gz -C /data .
# 修改 docker-compose.yaml 中的镜像版本号
# image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.2
# 重新启动
docker compose up -d