Paperless-ngx:把一柜子纸质文件变成能全文搜索的档案库
它的核心价值不是「存文件」,是让文件变成可检索的数据。一份扫描的租房合同,传统方式是按文件夹整理、靠记忆找;它的方式是搜「押金」两个字,直接命中。
一、流水线长什么样
扫描仪/手机拍照 → 投递目录(consume)
→ 自动 OCR 提取文字
→ 按规则识别对应人/类型/日期
→ 重命名归档 + 全文索引
关键在于「投递目录」这个设计:你把文件丢进去,剩下的它自己做。桌面端可以用 SMB 挂载,手机端可以用扫描类 App 直接上传。
二、部署
services:
broker:
image: redis:7-alpine
restart: always
db:
image: postgres:16
restart: always
environment:
- POSTGRES_DB=paperless
- POSTGRES_USER=paperless
- POSTGRES_PASSWORD=改成强密码
volumes: ["./pgdata:/var/lib/postgresql/data"]
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
depends_on: [db, broker]
ports: ["8000:8000"]
environment:
- PAPERLESS_REDIS=redis://broker:6379
- PAPERLESS_DBHOST=db
- PAPERLESS_TIME_ZONE=Asia/Shanghai
- PAPERLESS_OCR_LANGUAGE=chi_sim+eng
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- ./consume:/usr/src/paperless/consume
最容易被忽略的一行是 PAPERLESS_OCR_LANGUAGE。默认只装英文训练数据,中文扫描件出来全是乱码或空白。改成 chi_sim+eng 之后才会真正识别中文,代价是单页耗时增加。
三、让自动归档真正好用
它有三类自动规则,把它们配好,后续基本不用手动整理:
| 规则 | 作用 | 例子 |
|---|---|---|
| 对应人(Correspondent) | 识别文档来自谁 | 京东、中国移动、某医院 |
| 文档类型 | 识别这是什么 | 发票、合同、体检报告、说明书 |
| 标签与存储路径 | 决定归档位置 | 按年份/类型分目录 |
配法是写「内容匹配规则」:文档里出现「增值税电子普通发票」就打成发票类型,出现「体检」就打上医疗标签。规则命中的越多,后续越省事。
四、扫描硬件怎么选
- 文档为主:带自动进纸器的馈纸式扫描仪,双面扫描,一次性过几十页;
- 偶尔扫:手机扫描 App 足够,注意拍正、避免阴影;
- 票据多的:选支持 300dpi 彩色输出的,票据上的小字 OCR 才认得准。
分辨率不是越高越好:300dpi 对文字足够,600dpi 会让文件体积翻四倍、OCR 时间翻倍,收益很小。
五、备份怎么做才安心
它把数据分成三块:数据库(元数据、标签、索引)、media(原始文件与缩略图)、data(配置与索引)。三块要一起备份,只备 media 会丢掉所有标签和对应关系。
比较稳的做法是每晚导出一次数据库 + 用文件级同步工具把 media 镜像到另一台机器。具体方案见 Restic 与 Kopia 和 Syncthing。
六、它的边界
它是文档档案库,不是网盘:没有多人实时协作,不适合放工程文件,也不适合共享给外部人下载大文件。定位清楚,用起来才顺。
相关阅读
版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。






评论