Paperless-ngx 完整上手指南:五步把纸质文件变成可搜索档案
Paperless-ngx 完整上手指南:五步把纸质文件变成可搜索档案
【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx
抽屉最深处那张去年的水电费发票,你大概已经忘了它的存在;手机相册里那一百多张随手拍的合同照片,真要查起来只能一张张翻。Paperless-ngx 要解决的正是这件事:把纸质文件扫描进来,自动识别文字、自动分类、自动建索引,让它们变成一台随搜随到的数字档案柜。它是社区维护的开源文档管理系统,也是早期 paperless 与 paperless-ng 两个项目的官方继任者。和网盘类工具最大的不同在于:文件只要丢进一个指定目录,后续的 OCR、打标签、归档索引全部由后台完成,上传之后你不需要再做任何整理。
🔧 用 Docker Compose 五步跑起来
部署比想象中简单,核心就是克隆、拷贝模板、启动三步。只要机器上装好了 Docker 和 Docker Compose,就能照下面的流程走。官方在仓库的docker/compose/目录下提供了 PostgreSQL、MariaDB、SQLite 三种 compose 模板,新项目推荐选 PostgreSQL 那份。把模板改名为docker-compose.yml后,拉取镜像并启动容器:
git clone https://gitcode.com/GitHub_Trending/pa/paperless-ngx cd paperless-ngx/docker/compose cp docker-compose.postgres.yml docker-compose.yml docker compose pull && docker compose up -d跑完后浏览器打开 http://127.0.0.1:8000,会进入初始化向导,按提示设置管理员账号即可登录。如果 8000 端口被占用,把 compose 文件里的8000:8000改成8010:8000这类形式就行。
📥 把 consume 目录变成自动收件箱
启动之后,真正开始干活的是 consume 目录。它是整个系统的主入口:把 PDF、图片或 EML 邮件文件丢进consume/目录(或在网页里拖拽上传),消费进程就会自动接手。处理链路是清晰的三段式:文件进入消费队列,OCR 引擎提取文本,系统再根据内容建议标签、对应人(文档来自哪个机构)和文档类型,最后把原件归档为 PDF/A 长期保存格式,原扫描文件存到media/目录留底。
处理完成的文档会出现在文档列表里,表格视图下可以按日期、标签、对应人多条件筛选,也可以切回卡片视图直接看缩略图。
点进单个文档,右侧就是编辑面板:改标题、加标签、指派对应人、设置存储路径和权限,都在这一页完成。
手机上打开同一个地址也是完整可用的,浏览、搜索和上传都做了触控适配,外出时用手机翻找发票完全没压力。
⚙️ 三个最影响体验的配置项
默认配置能跑,但有三处不调整,用起来会一直别扭。Docker 部署的所有配置都写在docker-compose.env文件里,修改后重启容器生效。
第一处是 OCR 语言。容器默认只安装英文、德文等几种语言包,中文发票这类典型场景会识别失败,需要显式加上chi_sim。其中PAPERLESS_OCR_LANGUAGE指定主语言,PAPERLESS_OCR_LANGUAGES负责额外安装语言包,两者分工不同。
第二处是文件名模板PAPERLESS_FILENAME_FORMAT。比如设成{created}/{title},归档文件就会按"年份/标题"的层级存放,配合存储路径能直接替代手工整理文件夹的习惯。
第三处是USERMAP_UID和USERMAP_GID,设成宿主机用户的 UID 和 GID(id -u、id -g查看),否则容器内进程可能读不到你放进 consume 目录的文件。其余像时区、消费轮询间隔这类选项,保持默认即可。
PAPERLESS_SECRET_KEY=<换成随机字符串> # 会话签名密钥,必改 PAPERLESS_OCR_LANGUAGE=eng # OCR 主语言 PAPERLESS_OCR_LANGUAGES=chi_sim # 额外安装的识别语言 PAPERLESS_FILENAME_FORMAT={created}/{title} # 归档文件名模板跑完后新扫进来的中文发票就能被正确识别,归档文件也会按"年份/标题"的层级整齐存放。
📧 让工作流程和邮件规则替你归档
如果"丢进目录"都嫌麻烦,可以让系统再往前一步。工作流程由触发条件和执行动作两部分组成:比如"文档添加完成"且内容包含"账单",就自动打上"待核对"标签并给指定用户发通知,整条规则在网页上点选即可配置。
再配合邮件规则,可以直接指定 IMAP 账户和发件人,银行和平台发来的对账单附件会自动下载并走完整消费流程,全程不用碰鼠标。
🧯 消费目录不生效的三个常见原因
跑起来之后最常见的卡点,基本都集中在这三件事上。
第一种现象是文件丢进去后完全不被消费。原因通常是两个:宿主机目录没有正确映射到容器内的 consume 路径,或者消息代理(compose 里的 Valkey 容器)没在运行。解法是对照 compose 文件检查./consume指向的实际路径,再用docker compose ps确认 broker、数据库和 webserver 三个服务都处于运行状态。
第二种现象是中文文档识别报错或出来的文本是乱码。原因是缺少对应的 Tesseract 语言包,解法就是上一节说的,在PAPERLESS_OCR_LANGUAGES里补上chi_sim后重启容器。
第三种现象是启动时目录里已有的文件被消费了,之后新放进的文件却一直没动静。原因是部分文件系统不会向容器传递目录变更事件,解法是设置PAPERLESS_CONSUMER_POLLING_INTERVAL=10开启轮询,让系统每 10 秒主动检查一次 consume 目录。
Paperless-ngx 把"扫描 → 识别 → 归档 → 检索"整条链路自动化了,你只需要负责把文件丢进目录。更完整的配置项与部署方式,仓库内的 docs/configuration.md 和 docs/setup.md 有系统说明。
【免费下载链接】paperless-ngxA community-supported supercharged document management system: scan, index and archive all your documents项目地址: https://gitcode.com/GitHub_Trending/pa/paperless-ngx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
