本次使用的开源方案兼容性强,前置要求如下,全部达标再继续操作:
Mayan EDMS官方推荐用Docker Compose部署,直接用以下完整可复制的配置即可,无需修改核心结构,只需按需调整存储路径:
在本地电脑创建一个专门的文件夹,例如Windows下是D:\mayan-edms-data,macOS/Linux下是~/mayan-edms-data
在该文件夹内新建文本文件,重命名为docker-compose.yml,复制以下内容并保存:
⚠️ 关键配置修改提醒:
MAYAN_SECRET_KEY:必须替换为32位以上的随机字符串(可用在线随机字符串生成器选32位字母+数字+符号的版本)MAYAN_AUTOADMIN_PASSWORD:初始管理员密码必须替换,防止泄露./mayan_media等挂载路径:如需修改为其他本地路径,Windows下用D:\your-path\mayan_media格式,macOS/Linux下用/Users/your-name/mayan_media格式操作需在终端(Windows用PowerShell或CMD,macOS用终端,Linux用bash/zsh)中进行:
终端进入刚才创建的专属文件夹:
cd D:\mayan-edms-datacd ~/mayan-edms-data执行启动命令,首次启动会自动下载约1GB的镜像,请保持网络稳定:
docker compose up -d
等待服务完全启动,可通过以下命令查看启动日志(看到“System initialized”或类似提示表示成功):
docker compose logs -f mayan-edms
确认日志正常后,按Ctrl+C退出日志查看
服务启动后,按以下步骤操作Web端:
打开任意浏览器,访问http://本地电脑IP:8000(本地用http://127.0.0.1:8000也可以),输入刚才配置的MAYAN_AUTOADMIN_USERNAME和修改后的MAYAN_AUTOADMIN_PASSWORD登录。
文档类型是Mayan EDMS的核心归档逻辑,用于区分不同档案(如合同、发票、证件):
登录后点击左侧菜单「文档」→「文档类型」
点击右上角「创建」
填写基础信息:标签(必填,如“劳动合同”)、名称(自动填充标签小写,可直接用)
点击「保存」
Mayan EDMS默认将文件存储在刚才挂载的mayan_media文件夹内,如需挂载外部硬盘或NAS共享,可按此操作:
左侧菜单「系统」→「存储」
点击右上角「创建」
填写信息:标签(如“NAS合同存储”)、后端类(选FileSystemStorage)、参数(JSON格式,如{"location": "/media/nas-contracts"}——注意Docker容器内的路径,需在docker-compose.yml的volumes下新增一行挂载:./nas-contracts:/media/nas-contracts,修改后重启服务)
点击「保存」

完成配置后,即可进行档案的上传、归档、检索操作:
左侧菜单「文档」→「上传」
选择文档类型(如“劳动合同”)
点击「选择文件」,从本地选择要上传的档案(支持PDF、Word、Excel、图片等多种格式)
填写标签(可选,用于快速分类,如“2024年”“张三”)
点击「上传」
批量上传适合处理大量已有档案:
在本地专属文件夹的mayan_media下创建一个临时文件夹,如batch-upload
将所有批量档案复制到该文件夹
左侧菜单「文档」→「来源」
点击右上角「创建」
填写信息:标签(如“本地批量合同”)、来源类型(选Watch folder)、监控路径(填Docker容器内的路径:/var/lib/mayan/batch-upload)、文档类型(选“劳动合同”)
点击「保存」,Mayan EDMS会自动扫描并上传该文件夹内的所有新文件
默认检索仅支持标签、文档名称,如需检索档案内容,需添加Elasticsearch组件:
停止当前服务:docker compose down
修改docker-compose.yml,在services下新增以下内容:
在mayan-edms的environment下新增以下配置:
重新启动服务:docker compose up -d
等待服务完全启动后,左侧菜单「系统」→「工具」→「重新索引所有对象」,点击「执行」,等待索引完成
如需让同一WiFi/局域网内的手机、电脑访问,操作如下:
确认本地电脑的局域网IP(Windows用ipconfig查看“IPv4 地址”,macOS/Linux用ifconfig或ip a查看类似192.168.x.x的地址)
检查本地电脑防火墙是否开放8000端口(Windows允许Docker Desktop通过防火墙,macOS/Linux可临时关闭或添加规则)
其他设备打开浏览器,访问http://本地电脑局域网IP:8000即可登录使用
服务启动失败:查看docker compose logs,排查是否是端口冲突(修改docker-compose.yml的端口映射,如8001:8000)、内存不足(调整Elasticsearch的ES_JAVA_OPTS为-Xms256m -Xmx256m)
批量上传无反应:检查临时文件夹是否在Docker挂载路径内,来源的监控路径是否正确