Paperless-ngx
扫码查看

将纸质文档转换为可搜索的电子档案

Paperless-ngx

综合介绍

Paperless-ngx 是一款开源的文档管理系统,它可以将你的纸质文件和电子文档,全部转换成一个统一的、可全文搜索的电子档案库。 这个项目是一个由社区支持的版本,它继承并发展自已停止维护的 Paperless-ng 项目,目标是提供一个功能强大且易于使用的无纸化解决方案。 系统的核心功能是光学字符识别(OCR),当你扫描或上传一份文件(如PDF、图片甚至Office文档)后,它会自动识别其中的文本内容,无论原文是扫描件还是照片。 通过这项技术,你可以像搜索网页一样,轻松地在堆积如山的文档中找到任何你需要的信息。此外,Paperless-ngx 还能通过机器学习技术,自动为你的文档添加标签、识别发件人并进行分类,大大减少了手动整理的工作量。 你可以为文档设置对应的发件人、类型、标签等多种分类方式,建立清晰的组织结构。对于需要长期保存的文档,系统会将其转换为 PDF/A 格式,这是一种为长期归档设计的标准格式。

功能列表

  • 光学字符识别 (OCR): 自动从PDF文件和图片中提取文本,使其内容可以被搜索。支持超过100种语言。
  • 支持多种文件类型: 支持处理PDF、图片、纯文本文件以及微软Office和LibreOffice的文档。
  • 归档与索引: 提供标签、发件人、文档类型等多种方式来组织和索引文件,方便分类管理。
  • 机器学习自动分类: 系统能从你整理的文档中学习,并自动为新录入的文档添加标签、发件人和文档类型。
  • 强大的全文搜索: 提供类似搜索引擎的体验,包括自动补全、相关度排序,并能在文档中高亮显示搜索结果。
  • 直观的网页应用: 拥有一个用户友好的网页界面,支持仪表盘定制、批量编辑、拖拽上传和自定义视图等功能。
  • 电子邮件集成: 可以配置IMAP邮箱,系统会自动拉取邮件附件并将其作为文档进行归档。
  • 长期存储格式: 所有文档最终会以PDF/A格式保存,确保文件可以被长期、可靠地访问。
  • 多用户支持: 支持创建多个用户账户,可以分别设置权限,方便家庭或团队共享使用。
  • 安装简便: 主要通过Docker进行部署,提供了安装脚本,大大简化了环境配置的复杂度。

使用帮助

Paperless-ngx 设计的初衷就是为了简化文档管理的流程,而其最推荐的部署方式是使用 Docker,这样可以确保环境的一致性并简化安装和更新流程。

第一步:环境准备 (Docker)

在开始之前,你需要在你的服务器或个人电脑上安装 Docker 和 Docker Compose。这是运行 Paperless-ngx 的基础环境。你可以从 Docker 官方网站找到适合你操作系统的安装指南。

第二步:下载并配置 Paperless-ngx

官方提供了一个非常方便的安装脚本,可以自动完成大部分配置工作。你只需要在终端中运行以下命令即可:

bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"

这个脚本会引导你完成一系列的设置,包括创建必要的文件夹(如consumemediadataexport等)以及生成一个基础的 docker-compose.yml 文件和 .env 配置文件。

如果你想进行更详细的手动配置,可以按照以下步骤操作:

  1. 创建目录结构:首先,为你 Paperless-ngx 的所有数据创建一个主目录,并在其中创建几个子目录。
    mkdir -p /opt/stacks/paperless-ngx
    cd /opt/stacks/paperless-ngx
    
  2. 创建配置文件:在 paperless-ngx 目录下,你需要创建两个核心文件:docker-compose.yml 用于定义服务,以及 .env 用于存放环境变量。

    .env 文件内容示例:这个文件用来存放敏感信息和个性化配置。

    # 设置用户和组ID,确保文件权限正确
    # 在Linux/macOS下通过运行 `id` 命令获取
    USERMAP_UID=1000
    USERMAP_GID=1000
    # 设置系统时区,例如中国的时区
    PAPERLESS_TIME_ZONE=Asia/Shanghai
    # 一个用于加密的随机密钥,务必修改成一个无人知晓的复杂字符串
    PAPERLESS_SECRET_KEY=a_very_long_and_random_string_of_characters
    # 默认的OCR语言,chi_sim代表简体中文
    PAPERLESS_OCR_LANGUAGE=chi_sim
    

    docker-compose.yml 文件内容示例:这是一个比较基础的配置,使用了 PostgreSQL 作为数据库。

    version: "3.4"
    services:
    broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
    - redisdata:/data
    webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
    - broker
    - db
    ports:
    - 8000:8000
    healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:8000"]
    interval: 30s
    timeout: 10s
    retries: 3
    volumes:
    - data:/usr/src/paperless/data
    - media:/usr/src/paperless/media
    - export:/usr/src/paperless/export
    - consume:/usr/src/paperless/consume
    environment:
    PAPERLESS_REDIS: redis://broker:6379
    PAPERLESS_DBENGINE: postgresql
    PAPERLESS_DBHOST: db
    PAPERLESS_DBPORT: 5432
    PAPERLESS_DBUSER: paperless
    PAPERLESS_DBPASS: paperless
    PAPERLESS_DBNAME: paperless
    USERMAP_UID: ${USERMAP_UID:-1000}
    USERMAP_GID: ${USERMAP_GID:-1000}
    PAPERLESS_TIME_ZONE: ${PAPERLESS_TIME_ZONE:-UTC}
    PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY}
    PAPERLESS_OCR_LANGUAGES: chi_sim eng
    PAPERLESS_OCR_LANGUAGE: ${PAPERLESS_OCR_LANGUAGE:-eng}
    db:
    image: docker.io/library/postgres:15
    restart: unless-stopped
    volumes:
    - pgdata:/var/lib/postgresql/data
    environment:
    POSTGRES_DB: paperless
    POSTGRES_USER: paperless
    POSTGRES_PASSWORD: paperless
    volumes:
    data:
    media:
    export:
    consume:
    pgdata:
    redisdata:
    

第三步:启动服务

配置完成后,在 docker-compose.yml 文件所在的目录中,运行以下命令来启动 Paperless-ngx 服务:

docker-compose up -d

Docker 会自动下载所需的镜像并根据你的配置启动所有容器。这个过程可能需要几分钟时间。

第四步:创建管理员用户

服务首次启动后,你需要创建一个管理员账户才能登录系统。执行以下命令,并按照提示输入你的用户名、邮箱(可选)和密码。

docker-compose run --rm webserver create_superuser

第五步:开始使用 Paperless-ngx

现在,一切准备就绪。打开你的网页浏览器,访问 http://<你的服务器IP>:8000。你会看到登录界面,使用刚刚创建的管理员账户登录即可。

核心操作流程:

  1. 上传文档:最直接的方式是将你的PDF或图片文件拖拽到网页仪表盘的上传区域。
  2. 设置消费文件夹 (Consume Folder):这是 Paperless-ngx 强大的自动化功能之一。你可以将你的扫描仪设置为自动将扫描件保存到 consume 文件夹中。系统会定期检查这个文件夹,一旦发现新文件,就会自动将其导入、执行OCR并进行归档处理。
  3. 整理与搜索
    • 处理文档:新导入的文档会出现在收件箱中。你可以点击文档,在右侧的编辑面板中为其添加标签、设置发件人、文档类型和创建日期等。
    • 利用机器学习:当你手动整理了足够多的文档后,Paperless-ngx 的机器学习功能就会开始发挥作用。它会自动为你推荐或直接应用标签和分类,你只需要检查并确认即可。
    • 全文搜索:在顶部的搜索框中输入任何关键词,无论是文件名、标签还是文档内容里的词语,系统都能快速帮你找到相关文件。

应用场景

  1. 个人家庭资料管理对于个人用户,Paperless-ngx 可以成为一个家庭数字文件中心。你可以用它来归档所有的账单、银行对账单、合同、保单、证书和收据。通过设置,扫描仪可以直接将文件发送到系统进行自动处理和分类,从此告别杂乱的纸质文件和在硬盘里难以查找的扫描件。
  2. 小型企业与团队知识库小型企业或团队可以利用 Paperless-ngx 来共享和管理项目文档、报告、发票和客户资料。通过多用户权限管理,可以确保不同成员只能访问与其工作相关的文档,同时利用其强大的搜索功能,快速找到历史文件,提高整个团队的工作效率。
  3. 学术研究与学习学生和研究人员需要处理大量的学术论文、笔记和参考资料。Paperless-ngx 可以将这些PDF文档全部索引起来,当需要查找某个特定理论或数据时,只需通过关键词搜索,就能在所有论文中定位到相关内容,极大地提升了文献管理的效率。

QA

  1. Paperless-ngx 和 Paperless-ng 有什么区别?Paperless-ngx 是 Paperless-ng 项目的一个社区维护分支。由于原作者停止了对 Paperless-ng 的维护,社区成员创建了 ngx 版本,并持续为其添加新功能、修复错误和提供支持,它被认为是事实上的官方后续版本。
  2. 这个系统支持哪些文件类型?Paperless-ngx 主要支持PDF文档和常见的图片格式(如PNG, JPG, TIFF)。此外,通过与Tika等工具集成,它还可以处理微软Office文档(Word, Excel, PowerPoint)和LibreOffice的对应文件。
  3. 我的文档数据安全吗?Paperless-ngx 是一个自托管(Self-Hosted)的应用,意味着所有数据都存储在你自己的服务器上,你拥有完全的控制权。官方强调,由于文档可能包含敏感信息,不应将此系统部署在不受信任的主机上。最安全的方式是在你家里的本地服务器上运行,并做好数据备份。
  4. 系统如何处理我的原始文件?系统会保留你上传的原始文件,同时会创建一个经过OCR处理并优化用于长期存档的PDF/A版本。这意味着你随时可以访问未经修改的原始文档,同时又能享受到可搜索存档版本带来的便利。
微信微博Email复制链接