0成本打造私人文档管理系统,群晖部署的这个开源工具让你省下万元订阅费
在这个数字化时代,我们每天都在处理大量的文件和文档,随着时间推移,这些纸质文件不断堆积,不仅占用大量空间,查找起来非常让人头疼。
你是否也曾因为找不到重要文件而焦虑不已?或是被满屋子的文件弄得焦头烂额?
而今天要介绍的这款开源神器 Paperless-ngx,带来了一站式的文档管理解决方案:智能OCR识别让所有扫描文件变得可搜索,强大的全文检索帮你快速定位文档,机器学习还能自动分类和打标签。
更赞的是,它支持多用户权限管理和文件安全分享,所有数据都在自己的服务器上。最重要的是,它完全免费,没有用户数限制,没有存储空间限制,帮你轻松省下每年上万元的订阅费用。
项目地址
https://github.com/paperless-ngx/paperless-ngx
项目特性
强大的文档管理:支持标签、关联方、类型等多维度文档组织
智能OCR识别:可识别100多种语言,将扫描文档转换为可搜索的文本
全文检索:支持关键词提示、相关性排序、结果高亮显示
本地存储:所有数据保存在您自己的服务器上,确保隐私安全
机器学习:自动添加标签、识别文档类型
批量处理:支持多核并行处理文档
邮件导入:可配置多个邮箱账户自动导入文档
文件格式:支持PDF、图片、Office文档等多种格式
群晖部署
下面一起来看看怎么通过群晖部署Paperless-ngx。
🔻 如果你了解命令行以及SSH,可以直接通过运行官方脚本进行部署。
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
🔻 或者直接下载官方仓库的compose文件来部署。

🔻 因为 Paperless-ngx 项目需要数据库,而群晖中自带 MariaDB,所以我们可以复用数据库,不需要再单独创建数据库容器。

🔻 通过群晖 phpAdmin 套件,登录到数据库管理界面,在账户菜单下新增账户并同时创建数据库。

如果不了解phpAdmin套件以及MariaDB数据库相关的配置,可以参阅这篇文章。
🔻 配置完数据库后,在 File Station 套件中新增 paperless-ngx 项目的文件夹paperlessNgx。

🔻 并创建子文件夹comsume、data、exprot、media、redis五个文件夹。

🔻 分别进入属性界面,修改它们的权限为Everyone可读写。

🔻 下面来看看docker-compose文件,这里老宁修改了官方的compose文件,去掉了下载MariaDB 数据库的操作。我们只需把它复制粘贴保存为docker-compose.yml文件即可。
version: '3.4'
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- ${REDIS_DATA_DIR:-./redis}:/data
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- broker
- gotenberg
- tika
ports:
- "${PORT:-8000}:8000"
volumes:
- ${DATA_DIR:-./data}:/usr/src/paperless/data
- ${MEDIA_DIR:-./media}:/usr/src/paperless/media
- ${EXPORT_DIR:-./export}:/usr/src/paperless/export
- ${CONSUME_DIR:-./consume}:/usr/src/paperless/consume
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBENGINE: mariadb
PAPERLESS_DBHOST: ${DB_HOST:-localhost}
PAPERLESS_DBUSER: ${DB_USER:-paperless}
PAPERLESS_DBPASS: ${DB_PASSWORD:-paperless}
PAPERLESS_DBPORT: ${DB_PORT:-3306}
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:8.7
restart: unless-stopped
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: docker.io/apache/tika:latest
restart: unless-stopped
🔻 对应的环境变量文件如下,同样把它复制粘贴下来并保存为.env文件。
PORT=8200
DATA_DIR=/volume1/test/paperlessNgx/data
MEDIA_DIR=/volume1/test/paperlessNgx/media
EXPORT_DIR=/volume1/test/paperlessNgx/export
CONSUME_DIR=/volume1/test/paperlessNgx/consume
REDIS_DATA_DIR=/volume1/test/paperlessNgx/redis
DB_HOST=192.168.2.99
DB_NAME=paperless
DB_USER=paperless
DB_PASSWORD=12345678
DB_PORT=3307
PAPERLESS_TIME_ZONE=Asia/Shanghai
如果要修改 paperless-ngx 服务的端口,可以PORT对应的值。
DATA_DIR 这五个变量对应的值为前面创建文件夹的路经。
DB_HOST为数据库配置,需对应开始在 MariaDB 中创建的 paperless 数据库相关值。
至于 PAPERLESS_TIME_ZONE 等其他的配置可以参考官方文档进行配置。
🔻 修改完毕后,把docker-compose.yml和.env文件都上传到paperlessNgx文件夹下。

🔻 打开群晖 Container Manager 套件,在项目菜单中新增一个项目paperless-ngx,选择路径为前面创建的文件夹并选择使用已有的docker-compose文件创建。

🔻 接着点击下一步直接进行构建。

🔻 可以查看paperless-webserver容器的日志来观察构建状态。因为要创建数据库操作,所以过称较慢。

🔻 还有种方法更简单:尝试用浏览器打开【群晖ip:8200】,如果界面出现则构建成功。

🔻 构建完毕后在paperless-webserver容器中打开终端机进行账户配置。

🔻 需要先点击新增才能输入命令。

🔻 输入python3 manage.py createsuperuser创建用户。(输入用户名、邮箱和密码,邮箱可选,密码输入会看不见)

🔻 再用浏览器打开【群晖ip:8200】,输入用户名和密码就可以登录。

使用
🔻 首页点击右侧的浏览文件即可上传文档到 paperless-ngx 中。

🔻 paperless-ngx 支持多种文档格式。

🔻 支持联系人、标签、自定文档类型创建。

🔻 可以直接对文档内容进行搜索。文档在上传时,已经被OCR识别转为了PFD,所以可以直接搜索文档的内容。

🔻 除了网页上传,我们也可以通过各平台客户端把文档上传到 paperless-ngx 中。

具体细节可以查看官方文档:https://github.com/paperless-ngx/paperless-ngx/wiki/Related-Projects。
后记
paperless-ngx 这个项目是非常强大的,使用的人群也非常广泛。它可以把我们平时用到的文档进行分类管理,并且还支持内容级别的搜索,极大解决了文件杂乱的问题。
这篇文章其实写的不是很全,很多用法、高级功能都没有进行介绍,因为它的反代配置我搞了几个小时都没有成功,所以把我整不会了。
如果哪位小伙伴的反代配置成功了,麻烦告诉我是如何配置的。
我是老宁
一个热爱技术的程序员和极客,群晖NAS深度玩家!
专注NAS相关技术分享,原创!干货!
觉得老宁的文章对你有帮助,记得点赞、收藏、加关注!

阿华田
跟着你的文章 部署了好几个很好用的docker应用,感谢分享!
校验提示文案
值友5539457207
校验提示文案
balence
校验提示文案
andulan
...... consume .....
下载不了,没安装成功
校验提示文案
富得流油垃圾佬
校验提示文案
flying1861
校验提示文案
52ququ
校验提示文案
balence
校验提示文案
值友5539457207
校验提示文案
52ququ
校验提示文案
富得流油垃圾佬
校验提示文案
andulan
...... consume .....
下载不了,没安装成功
校验提示文案
flying1861
校验提示文案
阿华田
跟着你的文章 部署了好几个很好用的docker应用,感谢分享!
校验提示文案