使用 Paperless-ngx 进行文档管理

June 24, 2026 · View on GitHub

简介

Paperless-ngx 是一款开源文档管理系统,用于索引和归档纸质文档。它使用 OCR 技术使扫描文档可搜索,并通过标签、通信方和文档类型进行组织管理。

目录

  1. 系统要求
  2. 安装方式
  3. 初始配置
  4. 文档导入
  5. 标签与组织
  6. 搜索与检索
  7. 自动化规则
  8. 用户管理

系统要求

组件最低要求推荐配置
CPU2 核4 核
内存2 GB4 GB
存储10 GB50 GB+
操作系统Linux, macOS, WindowsUbuntu 22.04+
Docker20.10+最新稳定版
Python3.9+ (裸机安装)3.11+

安装方式

Docker Compose

推荐使用 Docker Compose,包含以下服务:

服务用途端口
webserverPaperless-ngx 应用8000
brokerRedis 任务队列6379
dbPostgreSQL 数据库5432
gotenberg文档转换3000
tika内容提取9998
# docker-compose.yml
services:
  broker:
    image: redis:7
    volumes:
      - redisdata:/data

  db:
    image: postgres:15
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    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_DBHOST: db
      PAPERLESS_TIME_ZONE: America/New_York
    ports:
      - "8000:8000"
    depends_on:
      - db
      - broker

volumes:
  data:
  media:
  pgdata:
  redisdata:

裸机安装

步骤命令用途
1git clone https://github.com/paperless-ngx/paperless-ngx获取源码
2cd paperless-ngx && pip install -r requirements.txt安装依赖
3cp paperless.conf.example paperless.conf配置模板
4python manage.py migrate数据库设置
5python manage.py createsuperuser创建管理员账户
6python manage.py runserver启动服务器

初始配置

环境变量

变量说明默认值
PAPERLESS_TIME_ZONE服务器时区UTC
PAPERLESS_OCR_LANGUAGEOCR 语言eng
PAPERLESS_CONSUMPTION_DIR监视文件夹../consume
PAPERLESS_MEDIA_ROOT存储位置../media
PAPERLESS_SECRET_KEYDjango 密钥自动生成
PAPERLESS_URL公共 URLhttp://localhost:8000

OCR 配置

设置说明可选值
PAPERLESS_OCR_MODEOCR 执行时机force, skip, redo
PAPERLESS_OCR_LANGUAGETesseract 语言eng, deu, fra 等
PAPERLESS_OCR_DESKEW纠正扫描倾斜true, false
PAPERLESS_OCR_ROTATE_PAGES自动旋转true, false
PAPERLESS_OCR_CLEAN清理图像true, false

文档导入

支持的文件格式

格式类型说明
PDF文档主要格式,应用 OCR
JPEG图像转换为 PDF
PNG图像转换为 PDF
TIFF图像支持多页
Office文档通过 Gotenberg/Tika
纯文本文本直接索引
HTML网页通过 Tika 提取

导入方式

方式说明使用场景
Web UI通过浏览器上传手动上传
监视文件夹将文件放入 consume 目录扫描仪集成
邮件IMAP 轮询邮件附件
APIREST 端点自动化脚本
移动端响应式 Web UI手机扫描

使用 API

# 上传文档
curl -X POST http://localhost:8000/api/documents/post_document/ \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -F "document=@/path/to/invoice.pdf" \
  -F "title=Electric Bill June 2024"

# 列出文档
curl http://localhost:8000/api/documents/ \
  -H "Authorization: Token YOUR_API_TOKEN"

标签与组织

核心实体

实体用途示例
标签灵活的标签重要、税务、医疗
通信方文档来源电力公司、银行
文档类型分类发票、信函、收据
存储路径文件位置Finance/, Medical/

自动分类

Paperless-ngx 从您的标签模式中学习:

设置说明
匹配算法机器学习分类器
训练数据您手动标记的文档
最少样本每个类别需要 1+ 个示例
自动应用导入时自动分配标签

批量操作

操作说明步骤
批量编辑更改标签/类型选择文档,编辑
批量删除删除文档选择,删除
合并合并 PDF选择,合并
批量下载导出为 ZIP选择,下载

搜索与检索

搜索语法

操作符示例结果
纯文本invoice electric全文搜索
精确短语"annual report"短语匹配
字段搜索tag:important按标签过滤
日期范围created:[2024-01-01 TO 2024-06-30]日期过滤
包含标签has:tag已标记文档
仅标题title:contract标题搜索

保存的视图

组件说明
名称描述性视图名称
过滤器条件组合
排序方式日期、标题、相关性
显示模式列表、网格或卡片
共享私有或与组共享

自动化规则

规则组件

组件说明示例
触发器规则何时触发文档上传时
条件匹配条件标题包含 "invoice"
动作执行操作设置标签 "Finances"

规则示例

规则名称条件动作
自动标记发票标题包含 "invoice"添加标签: Invoice
银行对账单发件人为 "Bank of America"设置类型: Statement
归档旧文档创建时间超过 365 天添加标签: Archive

用户管理

权限模型

级别访问权限说明
管理员完全访问系统配置
用户标准访问查看和编辑自己的文档
共享访问共享权限

组权限

权限说明
查看文档只读访问
编辑文档修改元数据
创建文档上传新文件
删除文档删除文件
管理标签创建/编辑标签
管理通信方创建/编辑来源

备份与恢复

组件位置方法
数据库PostgreSQL 卷pg_dump
媒体文件Media 卷文件复制
配置环境变量文件文件复制
完整备份所有卷Docker 卷导出
# 创建备份
docker compose exec webserver document_exporter ../export

# 从备份恢复
docker compose exec webserver document_importer ../export

总结

Paperless-ngx 将纸质文档管理转变为可搜索的数字档案。其 OCR 功能、自动分类和灵活的标签系统使其适用于个人和小型企业的文档工作流。