Paperless-ngx 介绍与选型指南

开源文档管理系统 Paperless-ngx 的定位、核心架构、功能特性与同类 DMS 量化选型对比,全部结论联网溯源官方站点与仓库(2026-10-22 查询)。

Paperless-ngxPaperless-ngxDMS2026/10/22

Paperless-ngx 介绍与选型指南

目标:说清楚 Paperless-ngx 是什么、能解决什么问题、核心架构与功能边界,并给出与同类开源自托管文档管理系统(DMS)的量化选型对比。本篇为认知与选型篇,全部结论均联网溯源官方站点/官方仓库/官方文档,逐条标注来源与查询日期(查询日期统一为 2026-10-22),不含本地实测结论;部署实测流程见《Paperless-ngx 3.3.3 Docker Compose 部署指南》,配置项逐项含义见《Paperless-ngx 3.3.3 配置参数详解》,内置管理命令见《Paperless-ngx 3.3.3 常用 CLI 命令与工具详解》。

一、环境信息

本篇是软件介绍与选型篇,不依赖本地部署环境,全部信息来自以下官方信源(查询日期 2026-10-22):

💡 说明:DMS(Document Management System,文档管理系统)指对扫描件、PDF、Office 文档等进行集中存储、OCR 识别、元数据标注、全文检索与权限管控的软件。自托管(self-hosted)指部署在用户自己的服务器上、数据不出本地。

二、软件概述

2.1 定位与一句话简介

Paperless-ngx 是一个社区维护的开源文档管理系统(community-supported open-source document management system),把纸质扫描件、PDF、图片、Office 文档等转换成可全文检索的在线归档库,让用户"少留纸"(keep, well, less paper)。——来源:官方文档首页第一段,https://docs.paperless-ngx.com/(查询日期 2026-10-22)。

关键身份信息(来源:官方仓库 https://github.com/paperless-ngx/paperless-ngx,shields.io 徽章取证,查询日期 2026-10-22):

  • 开源协议:GPL-3.0(shields.io license 徽章返回 {"label":"license","message":"GPL-3.0"})
  • 当前最新稳定版:3.3.3(官方 Releases/latest 页实查,2026-10-22)
  • 代码托管:GitHub(main 分支始终代表最新发布版,dev 分支为下一版开发代码——来源:官方文档 development 章,https://docs.paperless-ngx.com/development/)
  • 支持硬件架构:amd64、arm、arm64(来源:官方 compose 文件头注释,docker/compose/docker-compose.postgres.yml @ tag v3.3.3)

2.2 项目沿革:Paperless → Paperless-ng → Paperless-ngx

Paperless-ngx 是原始项目 Paperless 与 Paperless-ng 的官方继任者(official successor),成立初衷是把项目推进与支持的责任分散到一个团队而非单人维护。——来源:官方文档首页 "Paperless, a history" 一节,https://docs.paperless-ngx.com/(查询日期 2026-10-22);两个前代项目的交接讨论见 ng#1599、ng#1632。

  • Paperless(the-paperless-project/paperless):最早的起源项目,已停更。
  • Paperless-ng(jonaswinkler/paperless-ng):单人重写版本,shields.io release 徽章实查最新发行版为 ng-1.5.0,已停止演进(查询日期 2026-10-22)。
  • Paperless-ngx(paperless-ngx/paperless-ngx):团队维护的现役版本,持续活跃发版,当前 3.3.3。

💡 技术拓展:开源项目"单人维护 → 社区接棒"是常见演进路径。同类对比——

项目形态特点风险
单人主导(如 Paperless-ng)决策快、风格统一作者精力枯竭即停更
团队/社区接棒(如 Paperless-ngx)发布节奏稳定、多人审核治理成本高、方向需共识
商业开源双模(如部分 DMS 厂商)有商业支持核心功能可能锁在付费版

选型时"团队接棒 + 持续发版"通常比"星多但停更"更可靠,这也是本文对比表把版本节奏作为量化维度的原因。Paperless-ngx 即团队接棒形态,其前身 Paperless-ng 已停更在 ng-1.5.0。

三、核心架构

3.1 组件拓扑

Paperless-ngx 采用"Web 应用 + 消息队列 + 关系数据库 + 文档处理辅助服务"的多组件协作架构。按官方 v3.3.3 发布的 compose 编排文件(docker/compose/docker-compose.postgres.yml 与 docker-compose.postgres-tika.yml @ tag v3.3.3,2026-10-22 下载自官方仓库 raw),一次完整部署包含以下服务:

组件角色官方 v3.3.3 编排引用说明
webserver主应用(Django)ghcr.io/paperless-ngx/paperless-ngx:latestWeb UI、REST API、文档消费管线主体
broker任务队列中间件docker.io/valkey/valkey:9-alpineCelery 消息代理,官方已从 Redis 切换到协议兼容的 Valkey
db数据库docker.io/library/postgres:18官方推荐 PostgreSQL,亦支持 SQLite/MariaDB/MySQL
gotenberg文档转换辅助docker.io/gotenberg/gotenberg:8.37基于 Chromium 的文档转 PDF 服务,处理 .eml 等
tika文本抽取辅助docker.io/apache/tika:3.3.1.0Apache Tika,抽取 Word/Excel/PPT 等 Office 文档文本

关键差异解读:webserver 是唯一对用户暴露端口的服务(官方默认 8000),broker/db/gotenberg/tika 都是内部服务;是否带 gotenberg+tika 由 compose 变体文件决定(带则启用 Office 文档与邮件消费支持——来源:官方 compose 文件注释 "Office document and email consumption support is optional and provided by Apache Tika")。

3.2 文档处理管线

从官方文档首页特性描述(https://docs.paperless-ngx.com/,查询日期 2026-10-22)可归纳出其核心数据流:

  1. 摄入:文档进入消费目录(consume directory)、Web 拖拽上传或邮件规则拉取(邮件处理支持多账号、多规则,处理后可对邮件打已读/删除等动作)。
  2. 识别:对图像型文档执行 OCR(Tesseract 引擎,官方声明支持 100+ 种语言);Office/邮件类文档经 Tika 抽取文本、Gotenberg 转 PDF。
  3. 归类:机器学习模型自动建议/打标签(tags)、通讯对象(correspondents)、文档类型(document types);新版本还可选启用 LLM(大语言模型)做文档建议、与文档对话、相似文档检索(官方注明 opt-in、默认关闭)。
  4. 归档:文档以 PDF/A 长期归档格式保存(同时保留未改动的原始文件),文件以明文形式落盘,文件名/目录结构可自由配置。
  5. 检索:全文检索带自动补全、相关度排序、命中高亮、"更多相似文档"。
  6. 守护:内置 sanity checker(完整性检查器)定期校验归档库健康状态;消费管线针对多核并行优化。

💡 技术拓展:OCR 输出格式的选择不止 PDF/A 一种。常见归档格式对比——

格式特点适用场景
PDF/AISO 长期归档标准,内嵌字体与文本层档案级长期保存(Paperless-ngx 默认)
普通 PDF兼容性最好一般办公场景
纯文本体积最小、无版式只做检索索引
图片型 PDF无文本层原样保真但不可检索

Paperless-ngx 默认输出 PDF/A(PAPERLESS_OCR_OUTPUT_TYPE=pdfa,来源:官方配置模板 paperless.conf.example @ v3.3.3),同时保留原始文件,兼顾长期可读与原始凭证。

3.3 技术栈

  • 后端:Python/Django Web 应用(仓库 src/ 目录),任务队列基于 Celery(broker 官方用 Valkey,协议与 Redis 兼容)——来源:官方仓库目录结构与 compose 编排(src/ - Code of the back end,官方文档 development 章,查询日期 2026-10-22)。
  • 前端:Angular 单页应用(仓库 src-ui/ 目录)——来源:官方文档 development 章("src-ui/ - Code of the front end",查询日期 2026-10-22)。
  • OCR 引擎:Tesseract——来源:官方文档首页 "Utilizes the open-source Tesseract engine to recognize more than 100 languages"(查询日期 2026-10-22)。

四、功能特性

以下特性全部摘自官方文档首页 Features 清单(https://docs.paperless-ngx.com/,查询日期 2026-10-22),未混入任何本地实测结论:

  1. 整理与索引:用标签、通讯对象、文档类型等维度组织并索引扫描文档。
  2. 数据自主:数据存储在用户自己的服务器本地,不会传输或共享给任何第三方(除非用户主动选择)。
  3. OCR 全文化:对纯图像扫描件也能加上可搜索、可选择的文本层;Tesseract 支持 100+ 种语言;新版本支持 opt-in 的 Azure AI 远程 OCR。
  4. PDF/A 归档:以面向长期保存的 PDF/A 格式保存文档,原始文件同时保留。
  5. 机器学习自动归类:自动为文档添加标签、通讯对象与文档类型。
  6. AI 能力(opt-in,默认关闭):可选用 LLM 做文档建议、与文档对话、相似文档检索。
  7. 多格式支持:PDF、图片、纯文本、Office 文档(Word/Excel/PowerPoint 及 LibreOffice 对应格式,由 Apache Tika 提供,属可选组件)等。
  8. 明文落盘:文档以普通文件形式存储在磁盘上,文件名与目录格式可自由配置,且可对不同文档应用不同配置。
  9. 多版本:单个文档条目下可保留文件的多个版本,共享同一套元数据。
  10. 现代化 Web 应用:可定制仪表盘(含统计)、按标签/通讯对象/类型过滤、批量编辑、全局拖拽上传、可保存的自定义视图、多种数据类型的自定义字段、可设过期时间的公开分享链接。
  11. 全文检索:自动补全、相关度排序、命中高亮、相似文档检索(More like this)。
  12. 邮件处理:从邮箱账户导入文档,支持多账号多规则,处理后可标记已读、删除等。
  13. 多用户权限:内置健壮的多用户权限系统,支持全局权限与按文档/对象权限。
  14. 工作流引擎:强大的 workflow 系统对文档管线做精细控制。
  15. 多核并行消费:针对多核系统优化,可并行消费多个文档。
  16. 完整性检查:内置 sanity checker 定期确保归档库健康。

五、快速开始(官方最小可用示例)

本节直接引用官方安装指引的 Docker Compose 路线(来源:官方仓库 docker/compose/ @ tag v3.3.3 的 docker-compose.postgres.yml、docker-compose.env 文件头注释,2026-10-22 下载取证),仅呈现官方文件原文,本篇不含本地实测结论,逐命令实测流程见《Paperless-ngx 3.3.3 Docker Compose 部署指南》。

官方文件头注释给出的最小步骤(原文归纳):

  1. 把 docker-compose.postgres.yml 复制为 docker-compose.yml,并同目录放置 docker-compose.env 与 .env;
  2. 按官方注释执行编排拉取与启动两条命令即完成部署——逐命令实测流程、参数细节与排障沉淀见《Paperless-ngx 3.3.3 Docker Compose 部署指南》。

官方 v3.3.3 compose 的服务定义节选(原文照抄):

services:
  broker:
    image: docker.io/valkey/valkey:9-alpine
    restart: unless-stopped
    volumes:
      - redisdata:/data
  db:
    image: docker.io/library/postgres:18
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8000:8000"
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBENGINE: postgresql

解读要点:Web 服务固定监听 8000 端口;data(数据库外的应用数据)、media(文档与缩略图)、./export(导出)、./consume(消费目录)四个挂载点是数据持久化的关键;PAPERLESS_SECRET_KEY 必须在 docker-compose.env 中设置(官方注释:Generate with python3 -c "import secrets; print(secrets.token_urlsafe(64))")。官方还提供 SQLite 变体 docker-compose.sqlite.yml 与带 Tika/Gotenberg 的 docker-compose.postgres-tika.yml(均 @ tag v3.3.3 实查存在)。

⚠️ 注意:官方 compose 中 webserver 的 image 写作 :latest,生产建议固定到具体版本号(如 3.3.3 对应 Docker Hub paperlessngx/paperless-ngx:3.3.3),避免升级不可控;官方 Docker Hub 与 ghcr.io 双渠道均可获取发布版本。

六、适用场景与限制

6.1 适用场景(基于官方特性清单归纳,查询日期 2026-10-22)

  • 个人/家庭纸质文档数字化:扫描合同、账单、信件后自动 OCR、自动归类、全文检索。
  • 小团队档案室/行政归档:多用户权限、批量编辑、工作流、公开分享链接(可带过期时间)。
  • 邮件附件自动入库:邮箱规则自动拉取附件转归档。
  • 合规友好场景:数据全部本地化存储(官方明确声明不外传),PDF/A 长期归档,原始文件保真。
  • Office/邮件文档归档:配合 Tika+Gotenberg 支持 Word/Excel/PPT 与 .eml 消费。

6.2 限制与注意(官方声明口径)

  • Office 文档与邮件消费依赖可选组件 Apache Tika 与 Gotenberg,不部署这两个辅助服务则该类文档不受支持——来源:官方文档首页脚注 [^1](查询日期 2026-10-22)。
  • AI/LLM 相关能力(文档建议、对话、相似检索)与 Azure AI 远程 OCR 均为 opt-in,默认关闭——来源:官方文档首页(查询日期 2026-10-22)。
  • 官方定位是社区支持(community-supported),无商业 SLA;支持渠道为 GitHub Discussions 与 Matrix 聊天室——来源:官方文档首页 Support 一节(查询日期 2026-10-22)。
  • Paperless-ngx 是文档归档/检索系统,不是通用网盘:文件名与目录由它管理(官方特性声明 "Filenames and folders are managed by paperless"),不要把它当 Nextcloud 式的文件同步盘使用。

七、同类选型对比

7.1 对比对象与取证口径

对比对象选取同类开源自托管 DMS/文档管理项目:Paperless-ng(Paperless-ngx 前身)、Mayan EDMS、Docspell、Papermerge。全部量化数据取证方式与查询日期如下(统一 2026-10-22):

  • GitHub 星数:shields.io 徽章 JSON(禁直连 api.github.com),返回原文逐条记录于表后;
  • 开源协议:shields.io license 徽章 JSON;
  • 最新发行版:shields.io release 徽章 JSON;
  • Mayan EDMS 特殊说明:GitHub 仓库页标题自述为 "mirror, no pull request or issues"(官方声明的同步副本仓),主仓库在 GitLab,其 LICENSE 文件头部声明 GNU General Public License version 2.0(GitLab raw 实查)。

7.2 量化对比表

维度Paperless-ngxPaperless-ngMayan EDMSDocspellPapermerge
GitHub Stars(shields.io,2026-10-22)47k5.4k845(GitHub 同步副本仓,fork 514)2.3k549
开源协议GPL-3.0GPL-3.0GPL-2.0+(主仓 GitLab)AGPL-3.0Apache-2.0
最新发行版(shields release 徽章,2026-10-22)3.3.3ng-1.5.0(停更)主仓在 GitLab 发版v0.43.0v3.5.3
维护形态团队接棒、活跃发版单人项目已停更持续维护(GitLab)持续维护持续维护(3.x 为 core 仓库)
OCRTesseract 100+ 语言Tesseract有有(Scala 技术栈)有
Office/邮件消费需 Tika+Gotenberg(可选组件)需 Tika+Gotenberg有有(邮件收件箱)有限
AI/LLM 能力opt-in 文档建议/对话/相似检索无无无无
代码托管GitHubGitHubGitLab 主仓 + GitHub 同步副本GitHubGitHub

星数取证原文(shields.io JSON 返回 message 字段,查询日期 2026-10-22):

paperless-ngx/paperless-ngx => {"label":"stars","message":"47k", ...}
jonaswinkler/paperless-ng    => {"label":"stars","message":"5.4k", ...}
mayan-edms/Mayan-EDMS        => {"label":"stars","message":"845", ...}   # GitHub 同步副本仓
eikek/docspell               => {"label":"stars","message":"2.3k", ...}
papermerge/papermerge-core   => {"label":"stars","message":"549", ...}

⚠️ 注意:Mayan EDMS 的 GitHub 仓库是官方声明的同步副本(页脚明确 "mirror, no pull request or issues"),其社区与发版以 GitLab 为主仓,星数仅反映 GitHub 副本仓的关注度,解读时不应与 GitHub 原生仓库直接等比。Papermerge 自 3.x 起主仓库为 papermerge/papermerge-core(shields 取证路径)。

7.3 选型建议

  • 要"扫描件 → 自动归类 → 全文检索"的开箱即用体验:首选 Paperless-ngx——社区规模最大(47k 星)、发版最活跃、机器学习自动归类与全文检索为默认内置能力。
  • 从 Paperless-ng 升级:直接迁到 Paperless-ngx(官方定位即其继任者,ng 已停更在 ng-1.5.0)。
  • 要更强的"工作流引擎 + 每对象细粒度权限"的档案库形态:可评估 Mayan EDMS(注意主仓在 GitLab)。
  • 要 Java/Scala 自建栈或邮件收件箱导向:可评估 Docspell(AGPL-3.0 对集成方式有传染性约束,商用需注意)。
  • 要 Apache-2.0 宽松协议 + 树形目录习惯:可评估 Papermerge(社区规模最小,549 星)。

💡 说明:协议对选型的影响——GPL-3.0(Paperless-ngx)要求分发时开源修改;AGPL-3.0(Docspell)进一步约束网络服务场景;Apache-2.0(Papermerge)最宽松。自托管内部使用时三者均无传染问题,但若二次开发后对外提供服务,协议差异必须纳入评估。

八、参考链接