一句话定位
Paperless-ngx 是一套自托管的文档管理系统,把扫描件、PDF、手机拍的纸质文件统一收进来,做 OCR 全文识别、按规则自动打标签,之后靠关键词就能翻出三年前的保修单。
为什么需要它
纸质文件和电子文件的存放一直是乱的:合同在抽屉,发票在邮箱附件里,体检报告在手机相册,说明书不知道扔哪去了。真要用的那天,靠回忆加翻文件夹,平均找一份资料要花好几分钟,最后往往是找不到然后重新要一份。
网盘能存但不能理解内容。你搜「热水器 保修」,它只会匹配文件名;而扫描出来的 PDF,文件名通常是 IMG_20240312_001.pdf 这种,搜什么都搜不到。文件名是给人看的,扫描仪不认字。
核心能力
- 收件箱机制:把文件丢进 consume 目录,或者从网页上传、邮件转发、扫描仪直接推过来,系统自动导入并归档。
- OCR 全文检索:对扫描件做文字识别,结果入库,搜中文和英文都能命中正文,命中片段会高亮。
- 自动分类:按文件名、内容关键词、来源写规则,自动匹配标签、对应方(比如某家保险公司)、文档类型(发票/合同/报告)。
- 规范归档:文件按「日期 – 标题.pdf」重命名并分目录存放,原件可以保留双份。
- 版本与审计:同一份文档能追加新版本,谁在什么时候改过都有记录。
- 权限与分享:支持多用户,按标签或文档授权,可以生成带有效期的分享链接。
实测体验
部署走 Docker Compose,官方给了现成的 yml 文件,一条 docker compose up -d 就能拉起 Web 服务、数据库、Redis 和 OCR 服务,首次启动大约 1 到 2 分钟。整套栈常驻内存 800MB 到 1.5GB,跑在 2C2G 的小机器上偏紧,加 1 到 2GB swap 会稳一些。
导入速度:一页 300dpi 的纯文字扫描件,OCR 大约 2 到 4 秒。一次丢 50 份 PDF 进去,十来分钟处理完,界面上能看到「待处理 / 已完成」的队列。
真正的价值在搜索:输入「发票 2023 金额」,能直接定位到正文里出现的那一行,并高亮上下文,而不是给你一堆文件让你自己点开翻。这套体验是网盘加文件夹永远给不了的。
坑也说清楚:中文识别必须额外装 tesseract-ocr-chi-sim 语言包,不装的话中文全部变成乱码,这一步很多人卡住。另外手写体识别率很低,别对医生的处方单抱期待。
适合谁
- 有大量票据、合同、体检报告需要长期归档的家庭或自由职业者
- 小型工作室,需要按客户和项目归档合同与发票
- 已经在跑 NAS 或家用服务器、习惯用 Docker 的人
需要注意的地方
- 它不是装完就能用的消费级软件,得懂 Docker、端口映射、目录挂载这几件事。
- 备份必须自己解决。文档库就是一堆文件加一个数据库,两者要一起备份,只拷文件不拷库,标签和规则全丢。
- OCR 有语言包门槛,中文、日文都要单独装,装错版本不会报错,只会识别失败。
- 移动端只有网页和第三方客户端,扫码上传的流畅度不如商业 App。
- 扫描质量决定一切:歪斜、阴影、低分辨率会让识别率断崖式下跌,前置的扫描或拍照质量比软件本身更重要。
小结
Paperless-ngx 解决的不是「存」的问题,而是「找」的问题。花一个下午搭环境,换来的是以后每次找票据从「翻抽屉五分钟」变成「搜三秒钟」。代价是要自己维护服务器和备份——愿意付这个代价,它在这个价位上没有替代品。