解决文件丢失、查找困难痛点!开源私有化文档系统Paperless-ngx,OCR 识别 + 智能归档全覆盖
前言
在数字化浪潮席卷各行各业的今天,办公桌上堆积如山的纸质文件、散落在各个角落的发票收据、难以检索的合同档案,依然困扰着无数个人与组织。我们一边享受着云计算与人工智能带来的高效便利,一边却仍在为纸质文档的存储、查找与归档耗费大量时间与空间——这种“数字时代下的纸质困境”,已成为提升工作效率与实现绿色办公的隐形障碍。
所幸,开源技术为我们提供了一条优雅的出路。Paperless-ngx作为一款功能强大、部署灵活的开源文档管理系统,正悄然改变着我们与纸质文件的关系。它不仅能自动扫描、识别(OCR)、分类和归档各类纸质文档,还能将其转化为可全文搜索、安全存储、随时调阅的数字资产。借助现代 AI 技术,一张随手拍摄的发票、一份手写的笔记、一叠银行对账单,都能在几秒内变成结构化、可检索的电子档案。
本文将带你从零开始,深入探索如何基于Paperless-ngx构建一套低成本、高效率、全自动的智能文档管理方案。无论你是希望整理家庭账单的个人用户,还是寻求无纸化转型的中小企业团队,这套方案都能助你彻底告别杂乱纸堆,迈向真正简洁、智能、可持续的数字生活与工作方式。
让每一份文档都有迹可循,让每一次查找都瞬间完成——是时候,向纸质文件说再见了。
1.什么是Paperless-ngx?
Paperless-ngx是一个开源、免费、自托管的文档管理系统,旨在帮助个人和团队彻底告别纸质文件,实现纸质文档(如发票、合同、收据、信件等)的自动化扫描、识别、归档与检索。
核心功能
自动OCR(光学字符识别)
-
利用Tesseract等引擎,将扫描件或照片中的文字识别为可搜索的文本,即使原始文件是图片或 PDF 扫描件,也能全文检索。
智能分类与打标签
-
支持通过规则(如发件人、关键词、日期)自动为文档打标签、分配对应分类(如“账单”“合同”“身份证”),减少手动整理工作。
全文搜索
-
输入任意关键词(如“2024年电费”“张三合同”),即可秒级定位相关文档,无需翻找文件夹。
多格式支持
-
支持PDF、JPEG、PNG、TIFF等常见格式,可直接上传扫描件、手机拍照或通过“消费文件夹”(consume folder)自动导入。
安全自托管
-
所有数据存储在你自己的服务器上,不依赖第三方云服务,保障隐私与数据主权。
友好的Web界面
-
提供现代化、响应式的网页操作界面,支持多用户、权限管理、文档预览、注释等功能。
自动化工作流
-
可集成邮件接收、定时任务、API接口,甚至配合Gotenberg实现HTML/PDF转换,构建完整文档处理流水线。
技术架构(简要)
-
前端:基于 Angular 的 Web UI -
后端:Python + Django -
数据库:SQLite(默认)、PostgreSQL 或 MariaDB/MySQL -
OCR 引擎:Tesseract(内置),也可集成外部服务 -
可选组件:Redis(任务队列)、Apache Tika(文档内容提取)、Gotenberg(PDF 渲染)
它是原项目paperless的活跃社区分支(”ngx” = “next generation”),功能更丰富、更新更频繁、社区更活跃。
适用场景
-
个人:管理家庭账单、证件、医疗记录、学习资料 -
小微企业:归档合同、发票、客户资料、会议纪要 -
自由职业者:整理项目文档、报销凭证、税务材料 -
开源爱好者:搭建私有化、可定制的文档中枢
为什么选择Paperless-ngx?
-
完全免费 & 开源(MIT 许可证) -
一次部署,长期使用,无订阅费用 -
高度可定制,支持插件与API扩展 -
活跃社区支持,GitHub上持续迭代(截至2024年,Star数超20k+)
官方资源
-
GitHub 仓库:https://github.com/paperless-ngx/paperless-ngx -
官方文档:https://docs.paperless-ngx.com/ -
Docker 镜像:ghcr.io/paperless-ngx/paperless-ngx
Paperless-ngx = 你的私人智能档案馆 —— 把杂乱纸堆变成有序、可搜、安全的数字资产,真正实现“无纸化生活”。
2.前提条件
硬件要求(最低)
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Docker和Docker Compose
必须已安装并正常运行:
# 检查 Dockerdocker --version# ≥ 20.10# 检查 Docker Composedocker compose version# ≥ v2.5(或 docker-compose ≥ 1.29)
网络要求
-
主机需能访问互联网(首次拉取镜像) -
若使用外部数据库/Redis,需确保网络互通 -
开放Web访问端口(如8000或自定义端口)
数据库
Paperless-ngx必须连接一个PostgreSQL数据库,可任选其一:
不支持SQLite或MySQL!仅支持PostgreSQL ≥ 12
消息队列
Paperless-ngx使用Redis作为任务队列和缓存:
|
|
|
|---|---|
|
|
docker-compose.yml 中定义 redis 服务 |
|
|
|
3.在postgres创建用户
还没有postgres的小伙伴,可以参考这篇文章:谁说没公网IP不能远程连数据库?PostgreSQL+cpolar打通任督二脉
你需要 先创建paperless用户,然后再设置密码。
在PostgreSQL的psql命令行中(你已经以postgres身份登录了),执行以下命令:
-- 1. 创建用户(角色)CREATE USER paperless WITH LOGIN PASSWORD 'Sj***520!';-- 2. 创建数据库(如果还没建)CREATE DATABASE paperless OWNER paperless;-- 3. (可选)授予权限GRANT ALL PRIVILEGES ON DATABASE paperless TO paperless;
注意:CREATE USER = CREATE ROLE … LOGIN
密码必须和你docker-compose.yml中的PAPERLESS_DBPASS: Sj***520!完全一致(包括大小写、特殊字符)
能不能直接用postgres用户?
技术上可以,比如后续编写docker-compose.yml文件时:
但强烈不建议,原因:
|
|
|
|---|---|
|
|
postgres
|
|
|
postgres 做的 |
|
|
postgres 用户容易互相干扰 |
|
|
|
4.安装Paperless-ngx
通过Docker部署Paperless-ngx:
在开始部署之前,确保你的系统已经安装了Docker。可以通过以下命令检查 Docker 是否已安装:
docker --version
首先创建一下安装的目录并进入到该目录:
mkdir -p /docker/paperlesschmod -R 777 /paperless
创建并编辑 docker-compose.yml文件:
vi docker-compose.yml
version: ”3.6”services:webserver:image: ghcr.io/paperless-ngx/paperless-ngx:2.19.6restart: unless-stoppedports:- ”9981:8000”volumes:- ./data:/usr/src/paperless/data- ./media:/usr/src/paperless/media- ./export:/usr/src/paperless/export- ./consume:/usr/src/paperless/consumeenvironment:# 改为指向内部 redis 容器PAPERLESS_REDIS: redis://:my_redis_password@redis:6379PAPERLESS_DBHOST: 192.168.42.140# 数据库仍用外部PAPERLESS_DBUSER: paperless# 输入刚建好的账号密码PAPERLESS_DBPASS: Sjixin520!PAPERLESS_DBNAME: paperlessPAPERLESS_TIKA_ENABLED: 1PAPERLESS_TIKA_ENDPOINT: http://tika:9998PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000redis:image: redis:7-alpinerestart: unless-stoppedcommand: redis-server --requirepass my_redis_password# 如果需要持久化,可加 volumetika:image: apache/tika:latestrestart: unless-stoppedgotenberg:image: gotenberg/gotenberg:8.19restart: unless-stopped
启动容器:
docker-compose up -d
验证是否启动成功:
docker logs -f paperless-webserver-1
出现下图所示信息,即为成功!
部署完成后,在浏览器中输入 http://IP:9981 就能看到paperless的界面:
5.使用Paperless-ngx
下载完成后,注册用户:
登录成功!
设置为自己喜欢的布局:
上传文档:
上传成功后,点击打开文档,可以在这里修改并编辑文档:
创建新的联系人一起编辑文档:
可以在这里讲文档排序,显示,编辑等等:
Paperless-ngx是一款强大的开源文档管理系统,而通过与cpolar结合,用户可以轻松实现内网穿透,将本地部署的Paperless-ngx服务安全、稳定地暴露到公网,无需复杂的网络配置或固定IP。cpolar凭借其简单易用、高可靠性和多协议支持的优势,成为远程访问Paperless-ngx的理想桥梁,让用户随时随地通过浏览器高效管理文档,真正释放Paperless-ngx的全部潜能——这一切,都得益于cpolar强大的内网穿透能力。
6.安装cpolar实现随时随地开发
6.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
6.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
官网在此:https://www.cpolar.com
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
7.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
-
隧道名称:可自定义,本例使用了:paperless,注意不要与已有的隧道名称重复 -
协议:http -
本地地址:9981 -
域名类型:随机域名 -
地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
8.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是paperless,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
-
域名类型:选择二级子域名 -
Sub Domain:填写保留成功的二级子域名 -
地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
在数字化浪潮席卷各行各业的今天,传统纸质文档管理方式已难以满足高效、安全与环保的需求。堆积如山的文件不仅占用物理空间,还带来检索困难、易损毁、难共享等痛点。为此,越来越多的个人与组织开始寻求智能化、自动化的文档管理解决方案。其中,开源项目 Paperless-ngx 凭借其强大的功能与灵活的部署能力,正成为构建无纸化办公体系的核心工具。
Paperless-ngx 是一个基于 Web 的文档管理系统,能够自动接收扫描件、PDF 或图像文件,并通过 OCR(光学字符识别)技术将其转化为可全文搜索的数字档案。它支持标签分类、自定义元数据、自动匹配规则和归档流程,极大提升了文档处理效率。用户只需将纸质文件扫描上传,系统即可自动识别内容、打标签、归档,甚至根据预设规则触发后续操作,真正实现“一次录入,终身可用”。
更令人欣喜的是,Paperless-ngx 支持本地私有化部署,保障数据隐私与安全;配合 cpolar 等内网穿透工具,还能轻松实现远程访问,让家庭用户或中小企业无需公网 IP 也能随时随地管理文档。这种“本地存储 + 智能识别 + 远程访问”的组合,既兼顾了安全性,又不失便利性。
通过 Paperless-ngx 构建的智能文档管理方案,不仅减少了纸张消耗,降低了存储成本,更提升了信息检索与协作效率。它不仅是技术工具,更是一种面向未来的数字生活方式。告别杂乱的文件柜,拥抱整洁高效的数字档案库——Paperless-ngx 正在帮助我们迈出无纸化办公的关键一步。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。
如需转载,请注明出处!
夜雨聆风