Paperless-ngx 文档管理系统 Docker布署
Paperless-ngx简介
https://github.com/paperless-ngx
https://docs.paperless-ngx.com/
中文版:https://crowdin.com/project/paperless-ngx/zh-CN
Paperless-ngx不仅仅是一个文档管理系统,它是一个完整的解决方案,将你的纸质文件转化为可搜索的在线存档,减少纸张的使用。其核心功能包括:
文档的组织与索引:通过标签、对应者、类型等多种方式组织扫描文档。
OCR文本识别:对文档进行光学字符识别,使包含图像的扫描文档也能搜索和选择文本。
多语言支持:利用开源的Tesseract引擎,支持100多种语言。
长期存储格式:文档以PDF/A格式保存,设计用于长期存储。
智能标签与分类:使用机器学习自动添加标签、对应者和文档类型。
广泛的文件支持:支持PDF文档、图像、纯文本文件、Office文档等。
定制化的文件管理:Paperless-ngx管理文件名和文件夹,支持不同的配置。
现代化的网页应用:定制仪表板、过滤器、批量编辑、拖放上传、自定义视图、共享链接等。
全文搜索:自动完成、相关性排序、高亮显示匹配查询的部分。
电子邮件处理:从电子邮件账户导入文档,配置多个账户和规则。
多用户权限系统:内置健壮的多用户权限系统。
多核系统优化:并行处理多个文档。
所有数数字文档均支持:不止是图片,连pdf, word,excel,markdown统统都支持。真正实现了,文档数字化,统一管理,高效搜索
它能帮助你整理你生活中的合同、纸质文档、账单等等,同时还支持管理数字文档(word、excel、pdf等)
搭建教程:
https://club.fnnas.com/forum.php?mod=viewthread&tid=8521
https://57767.top/archives/18/
我的step by step:
1.进入NAS的Container Manager:
使用compose的配置文件(我的文件,各位自己的自己调整使用的目录):
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- /volume3/myData3/paperless-ngx/redisdata:/data # Redis 数据目录
db:
image: docker.io/library/postgres:17
restart: unless-stopped
volumes:
- /volume3/myData3/paperless-ngx/pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
webserver:
image: docker.1ms.run/paperlessngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- '28000:8000' # change it if you like
healthcheck:
test: ['CMD', 'curl', '-fs', '-S', '--max-time', '2', 'http://localhost:8000']
interval: 30s
timeout: 10s
retries: 5
volumes:
- /volume3/myData3/paperless-ngx/data:/usr/src/paperless/data
- /volume3/myData3/paperless-ngx/media:/usr/src/paperless/media
- /volume3/myData3/paperless-ngx/export:/usr/src/paperless/export
- /volume1/docker/paperless-ngx/consume:/usr/src/paperless/consume #将PDF文件放入冒号左边目录,观察是否被自动处理,为加快速度,放在volume1上(SSD)
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_OCR_LANGUAGES: chi-sim chi-tra # 设置中文
PAPERLESS_OCR_LANGUAGE: eng+chi_sim # 设置中英文
PAPERLESS_TIME_ZONE: Asia/Shanghai # 设置时区为上海,可以更改
USERMAP_UID: 0 # 设置用户映射的UID
USERMAP_GID: 0 # 设置用户映射的UID
dns:
- 210.21.4.130 #这是我的DNS配置,各位酌情修改
- 223.5.5.5
gotenberg:
image: docker.io/gotenberg/gotenberg:8.19
restart: unless-stopped
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: docker.io/apache/tika:latest
restart: unless-stopped
这个YAML文件是我参考了搭建教程里的文档,修改多次才调试正确可以运行的,和官网提供的略有不同,大家可以各自尝试
运行之后会出现5个容器:
运行良好:
使用浏览器打开 [NAS-ip]:[端口]
端口为之前配置文件中设置的28000端口,这个后面如果不喜欢是可以做更改的。
打开后会要求输入用户名和密码,这个需要创建,初始是没有的。
2.创建账号和密码。
选择webserver的容器,选择打开终端
连接第一个bash,输入后面的命令创建超级用户:python3 manage.py createsuperuser
依次输入:
username
email
password
3.登录:
4.具体设置
5.使用:
上传PDF文件
两种方式,一种是直接在界面里拖拽文件,另一种是NAS中命令行操作,例如,使用rsync命令:
因为我在YAML文件中设置的过渡目录是SSD盘:/volume1/docker/paperless-ngx/consume/,
rsync -avz --include='*.pdf' --include='*.doc' --include='*.docx' --include='*.xls' --include='*.xlsx' --include='*.ppt' --include='*.pptx' --exclude='*' /volume4/Mybook4/BaiduNetdiskDownload/ /volume1/docker/paperless-ngx/consume/
这样复制很方便,和拖拽的结果一样。
界面挺好看的:
6.Cpolar打通外网
太简单啦,然后手机上直接访问你设置的那个地址就好啦!
这样手机也可以直接访问自己的网址啦: