档案软件公司排名避坑:Docker部署开源档案系统实战
环境准备与基础依赖安装
在开始部署企业级档案管理系统之前,必须确保服务器环境满足运行条件。本指南基于CentOS 7.x/8.x或Ubuntu 20.04/22.04 LTS环境进行演示。系统需具备至少2核CPU、4GB内存及20GB可用磁盘空间。我们需要安装Docker及Docker Compose工具。
安装Docker引擎
执行以下命令自动安装最新稳定版Docker。该脚本会自动检测系统版本并配置仓库:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后,启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
为了方便后续操作,请将当前用户添加到docker组,避免每次使用sudo:
sudo usermod -aG docker $USER
newgrp docker
安装Docker Compose
下载Docker Compose二进制文件并赋予执行权限:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
验证安装是否成功:
docker-compose --version
系统架构与目录规划
为了实现高可用和数据持久化,我们采用Mayan EDMS作为核心档案软件,配合PostgreSQL数据库和Redis消息队列。在服务器根目录下创建项目目录结构:
sudo mkdir -p /data/mayan-edms/{media,db,redis}
cd /data/mayan-edms
目录用途说明:
- media:存储上传的文档文件、缩略图及生成的PDF预览。
- db:映射PostgreSQL的数据文件,确保数据库重启后数据不丢失。
- redis:映射Redis的持久化数据,用于处理后台任务队列。
编写Docker Compose配置文件
在/data/mayan-edms目录下创建docker-compose.yml文件。该文件定义了所有服务的运行参数、网络连接及存储卷映射。请直接复制以下完整配置,切勿遗漏任何行:
version: '3.8'
services:
mayan-edms:
image: mayanedms/mayanedms:latest
container_name: mayan_edms_app
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./media:/var/lib/mayan
environment:
- MAYAN_DATABASE_ENGINE=django.db.backends.postgresql
- MAYAN_DATABASE_NAME=mayan
- MAYAN_DATABASE_USER=mayan
- MAYAN_DATABASE_PASSWORD=mayan_db_pass
- MAYAN_DATABASE_HOST=mayan-edms-db
- MAYAN_DATABASE_PORT=5432
- MAYAN_CELERY_BROKER_URL=redis://:mayan_redis_pass@mayan-edms-redis:6379/0
- MAYAN_CELERY_RESULT_BACKEND=redis://:mayan_redis_pass@mayan-edms-redis:6379/1
depends_on:
- mayan-edms-db
- mayan-edms-redis
mayan-edms-db:
image: postgres:13
container_name: mayan_edms_db
restart: unless-stopped
volumes:
- ./db:/var/lib/postgresql/data
environment:
- POSTGRES_USER=mayan
- POSTGRES_PASSWORD=mayan_db_pass
- POSTGRES_DB=mayan
mayan-edms-redis:
image: redis:6
container_name: mayan_edms_redis
restart: unless-stopped
command:
- redis-server
- --requirepass
- mayan_redis_pass
volumes:
- ./redis:/data
配置重点解析:
- 端口映射:将容器内的80端口映射到宿主机的80端口,部署后直接通过服务器IP访问。
- 数据库凭证:默认设置了内部通信的密码,生产环境部署时请务必修改
MAYAN_DATABASE_PASSWORD和POSTGRES_PASSWORD为复杂强密码。 - 依赖关系:depends_on确保数据库和Redis先于Mayan主程序启动。
启动服务与初始化配置
启动容器栈
在配置文件所在目录执行以下命令,拉取镜像并启动所有服务:
docker-compose up -d
首次启动需要下载镜像,请耐心等待。使用docker-compose ps查看服务状态,确保所有服务的Status均为"Up"。
初始化超级管理员
服务启动后,需要进入容器内部创建第一个管理员账号。执行以下命令:

docker-compose exec mayan-edms mayan-edms.py createsuperuser
按照提示输入用户名、电子邮箱和密码。例如:
- Username: admin
- Email address: admin@company.com
- Password: YourSecurePassword123
创建成功后,打开浏览器访问http://服务器IP地址,使用上述账号登录。
核心功能实操:OCR与文档自动化
登录系统后,默认界面为英文。我们需要进行基础设置以适应中文档案管理需求。
启用OCR文字识别
Mayan EDMS自带OCR引擎,但需要安装额外的语言包才能识别中文。进入容器安装中文语言包:
docker-compose exec mayan-edms apt-get update
docker-compose exec mayan-edms apt-get install -y tesseract-ocr-chi-sim
安装完成后,在Web界面进行配置:
- 点击右上角Settings(齿轮图标) -> Setup -> OCR settings。
- 在OCR backend中选择
Tesseract。 - 在Automatically queue new documents选项中勾选
Yes,确保上传的文档自动进行OCR识别。 - 保存设置。
配置文档自动标签
为了演示自动化流程,我们设置一个规则:当文档名包含"合同"时,自动打上"法务部"标签。
- 进入Settings -> Smart links。
- 点击Create new smart link。
- Label输入:
合同文件分类。 - Enabled选择:
True。 - 在Logic区域,点击Add condition:
- Type:
Document filename - Operator:
Contains - Value:
合同
- Type:
- 在Action区域,点击Add action:
- Type:
Attach tag - Tag: 先创建一个名为"法务部"的标签,然后在此选择。
- Type:
- 点击Save保存规则。
此时,上传任何文件名包含"合同"的PDF或图片,系统将自动识别内容并打上"法务部"标签,无需人工干预。
数据备份与恢复策略
作为档案系统,数据安全至关重要。我们必须配置自动备份脚本。
数据库备份脚本
在宿主机创建备份目录及脚本:
mkdir -p /data/backup
vi /data/backup/backup_mayan.sh
写入以下脚本内容:
!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/data/backup"
CONTAINER_NAME="mayan_edms_db"
备份数据库
docker exec $CONTAINER_NAME pg_dump -U mayan mayan > $BACKUP_DIR/mayan_db_$DATE.sql
备份媒体文件
tar -czf $BACKUP_DIR/mayan_media_$DATE.tar.gz /data/mayan-edms/media
删除7天前的备份
find $BACKUP_DIR -name ".sql" -mtime +7 -exec rm {} \;
find $BACKUP_DIR -name ".tar.gz" -mtime +7 -exec rm {} \;
赋予执行权限并设置定时任务:
chmod +x /data/backup/backup_mayan.sh
crontab -e
添加每天凌晨2点执行备份的定时任务:
0 2 /data/backup/backup_mayan.sh >> /data/backup/backup.log 2>&1
数据恢复操作
若需恢复数据,首先停止Mayan服务,仅保留数据库运行,然后导入SQL文件:
cd /data/mayan-edms
docker-compose stop mayan-edms
docker exec -i mayan_edms_db psql -U mayan mayan < /data/backup/mayan_db_20231001_020000.sql
解压媒体文件覆盖
tar -xzf /data/backup/mayan_media_20231001_020000.tar.gz -C /
docker-compose start mayan-edms
至此,一套完整的企业级开源档案管理系统已部署完毕,具备文档上传、OCR识别、自动分类及数据备份能力。