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 数据库适配器,支持 sqlite3mysqlpostgres
MINDOC_DB_DATABASE 数据库文件路径(SQLite)或数据库名
MINDOC_CACHE 是否开启缓存
MINDOC_CACHE_PROVIDER 缓存存储方式,filememory
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:启动后无法访问?

  1. 确认容器运行状态:
docker ps | grep mindoc
  1. 检查端口映射是否正确:
netstat -tlnp | grep 8181
  1. 如端口被占用,修改 ports 映射为其他端口,如 8182:8181

Q:忘记管理员密码怎么办?

进入容器重置密码:

docker exec -it mindoc /bin/sh
./mindoc --conf=./conf/app.conf user reset -u admin -p 123456
exit

Q:上传附件失败或文件过大限制?

conf/app.conf 中修改上传限制:

# 进入容器
docker exec -it mindoc /bin/sh

# 编辑配置文件
vi ./conf/app.conf

添加或修改以下配置:

# 单次请求最大字节数(默认 1GB)
maxmemory = 1 << 30

# 上传文件大小限制
upload_max_size = 512M

Q:如何备份 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 -d

Q:如何升级 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

参考链接