Mayan EDMS 是一个文件管理系统,使用 Django Web 应用程序框架设计。
它的主要目的是存储和分类文件,重点是保存文档的上下文和业务信息。它还可以 OCR、预览、标记、签名、发送和接收这些文件。其他特性是它的工作流系统、基于角色的访问控制和 RESTAPI。
特性:
文档版本控制:存储同一文档的多个版本,下载或还原到以前的版本
电子签字核查:检查文档的真实性,方法是验证其嵌入的加密签名,或上传存储后签署的文档的分离签名
协作工具:讨论文档,或评论文档的新版本
office 文件格式支持:可以检测到 LibreOffice ,并使用它来支持文字处理文件、电子表格和演示文稿
用户定义的元数据字段:元数据字段可以根据技术、法律或结构要求(如 Dublin core)与文档类型相匹配
元数据的动态默认值:元数据字段可以具有初始值,可以是静态的,也可以由用户提供的模板代码片段确定
文件可以从不同的源上传:本地文件或服务器端文件上传、多功能复印机,甚至通过电子邮件
许多种文件格式的预览:许多流行的文件格式提供图像预览生成
全文搜索:文档可以通过其文本内容、元数据或任何其他文件属性(如名称、扩展名等)进行搜索
可配置文档分组:基于元数据值或文档属性的文档自动链接
角色支持:可以创建无限数量的不同角色,而不局限于传统的管理、操作员等
权限系统:用户执行的每个原子操作都有一个权限
多页文档支持:支持多页 PDF 和 TIFF 文件
自动 OCR 处理:通过 OCR 从文档中转录文本的任务可以在多个物理或虚拟计算机之间分发,以减少负载并提高可用性
多语言用户界面:用 Django 框架编写的,几乎可以翻译成世界上任何语言
多语种 OCR 支持:将文档的当前语言传递给相应的 OCR 引擎,以提高文本识别率
可插入存储后端:很容易使用第三方插件,比如 AmazonEC 2 提供的插件
颜色编码标签:标签和颜色编码的标签可以指定为直观的识别
工作流:跟踪文档的状态,以及以前状态更改的日志
还支持ladp等认证方式
准备环境最低硬件要求
2GB的RAM(如果关闭了OCR,则为1 GB)。
多核CPU(64位,比建议的1 GHz更快)。
类似于Unix的操作系统,例如GNU / Linux。对于其他操作系统,用户容器技术如Docker或虚拟机。
系统配置好国内的apt源,参考https://blog.csdn.net/baidu_19620507/article/details/105359504
a.安装依赖
sudo apt-get install exiftool g++ gcc coreutils ghostscript gnupg1 graphviz \
libfuse2 libjpeg-dev libmagic1 libpq-dev libpng-dev libreoffice \
libtiff-dev poppler-utils postgresql python3-dev python3-virtualenv \
redis-server sane-utils supervisor tesseract-ocr zlib1g-dev -y
b.创建用于安装的用户帐户:
这将创建一个也无法登录的非特权用户帐户:
sudo adduser mayan --disabled-password --disabled-login --gecos ""
c.创建将在其中部署项目的父目录:
/opt/是个不错的选择,因为它的意思是“不属于默认安装的软件和附加软件包”。创建/opt目录(如果尚不存在):
sudo mkdir /opt
d.创建Python虚拟环境:
这将使此处安装的所有Python软件包与系统中其余的Python软件包保持隔离:
sudo virtualenv /opt/mayan-edms -p /usr/bin/python3
加粗样式5.使mayan用户成为安装目录的所有者:
sudo chown mayan:mayan /opt/mayan-edms -R
e.从PyPI安装Mayan EDMS:
安装前可以修改pip的源为国内源,速度快,参考
https://blog.csdn.net/baidu_19620507/article/details/104635839
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 mayan-edms
f.为PostgreSQL和Redis安装Python客户端:
sudo -u mayan /opt/mayan-edms/bin/pip install --no-use-pep517 psycopg2==2.8.4 redis==3.4.1
g.创建用于安装的数据库:
sudo -u postgres psql -c "CREATE USER mayan WITH password 'mayanuserpass';"
sudo -u postgres createdb -O mayan mayan
h.初始化项目
此步骤将创建所有数据库结构,下载并压缩静态媒体文件(如JavaScript库和HTML框架),并使用随机密码创建和初始管理帐户。
注意
为简单起见,该MAYAN_MEDIA_ROOT文件夹设置为安装的子文件夹。如果要将文件与安装文件分开,请MAYAN_MEDIA_ROOT 在此步骤和所有后续步骤中更改变量的值。确保首先创建文件夹,并mayan使用chown命令将其所有权授予用户。
警告
如果此步骤被中断,即使稍后重新执行,在某些情况下也将导致无法创建自动admin用户。确保所有环境变量和值均正确。如果发生这种情况,请参阅故障排除章节: 安装和 重置管理员密码后缺少自动admin帐户。
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py initialsetup
i.在以下位置创建主管文件/etc/supervisor/conf.d/mayan.conf:
sudo -u mayan MAYAN_DATABASES="{'default':{'ENGINE':'django.db.backends.postgresql','NAME':'mayan','PASSWORD':'mayanuserpass','USER':'mayan','HOST':'127.0.0.1'}}" \
MAYAN_MEDIA_ROOT=/opt/mayan-edms/media \
/opt/mayan-edms/bin/mayan-edms.py platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan.conf"
j.配置Redis:
将Redis配置为在内存不足时丢弃数据,不保存其数据库,保留2个数据库并受密码保护:
echo "maxmemory-policy allkeys-lru" | sudo tee -a /etc/redis/redis.conf
echo "save \"\"" | sudo tee -a /etc/redis/redis.conf
echo "databases 2" | sudo tee -a /etc/redis/redis.conf
echo "requirepass mayanredispassword" | sudo tee -a /etc/redis/redis.conf
sudo systemctl restart redis
k.启用并重新启动服务
sudo systemctl enable supervisor
sudo systemctl restart supervisor