从0到1构建无纸化办公:Paperless-ngx系统实战部署与效率优化全过程

前言

在信息技术迅猛发展的今天,传统纸质文件管理正面临前所未有的挑战。每当晨会开始的提示音响起,职场人士是否经历过这样的困扰:在堆满过期报表的办公桌上徒劳地搜寻,手指在脆弱的纸页间颤抖滑动,却始终找不到那份决定千万级项目的合同?这种在纸质文件中寻找关键信息的焦虑,恰似航海者在浩瀚海洋中寻找灯塔的迷茫。当老式文件柜的吱呀声与智能终端的提示音形成鲜明对比时,我们必须承认:纸质文档的鼎盛时期正在悄然退场。

在这一变革时代,智能文档管理方案Paperless-ngx如同黎明前的启明星,为现代企业开辟出全新的数字化管理路径。通过智能识别、云端存储和智能检索技术,该系统不仅解决了纸质文件的物理存储难题,更重构了信息管理的底层逻辑。从泛黄纸张到电子档案,从人工检索到智能定位,这场静默的革命正在重塑企业的信息生态。img

1.关于Paperless-ngx

Paperless-ngx是一款功能强大、易于使用的开源文档管理工具。它不仅能够将你的纸质文件转换成电子版,并存储在云端或本地服务器上,还能通过自动OCR(光学字符识别)技术提取文字内容并进行索引化,方便你随时搜索和管理。

img主要特点:

  1. 自动OCR识别:上传的文档会自动进行OCR处理,将文字内容提取出来,支持多种文件格式,如PDF、图片等。
  2. 全文搜索:强大的搜索功能让你可以轻松找到包含特定关键词的所有文档,再也不用担心找不到需要的文件了。
  3. 标签与分类:为文档添加标签和分类,让文件管理更加有序。你可以根据项目、日期或任意自定义标签来组织文档。
  4. 安全可靠:支持用户权限管理和数据加密,确保你的文档安全无虞。
  5. 远程访问:通过配置反向代理(如Nginx)或使用cpolar等工具,你可以在任何地方轻松访问和管理文档。

2.Docker部署

本例使用Ubuntu 22.04进行演示,使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

准备好体验Paperless-ngx的乐趣了,最简单方便的方式就是使用docker安装脚本。

需要准备一个支持Docker的环境,确保你有Docker和Docker Compose安装好。

通过将用户添加到docker用户组可以将sudo去掉,命令如下:

sudo groupadd docker

将登录用户加入到docker用户组中:

sudo gpasswd -a $USER docker

更新用户组:

newgrp docker

image-20250324174322014

接着输入Paperless-ngx一键安装脚本:

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

image-20250324174341871

可以看到下方开始有提示,URL这里我回车跳过了

image-20250324174907360

上面几个直接回车跳过,最后一个问你是否启用Apache Tika回答yes。

image-20250325100402387

上面的意思是选择OCR语言,给列出了四种语言。我这里直接回车

image-20250325101809649

上面的意思是可以设置用户ID,不确定可以保留默认值,我这里直接默认回车。会出现一个group ID,我这里也一样回车跳过。

image-20250325101932739

这里的意思是目标文件夹用于存放的配置文件,看一下这个路径可以的话就回车默认,也可以自行修改,我这里回车。

image-20250325102255823

消费文件夹路径,我这里继续回车默认,可自行修改,上面有格式举例。

image-20250325102420570

这里的意思是媒体文件夹路径,Docker通常将托管文件夹存储在我红框的路径中,我这里回车默认,可以自行修改。

image-20250325102532366

数据文件夹路径,我与媒体文件夹一样留空,以便由docker管理。

image-20250325102837558

进入到3登录凭证,这里输入你的Paperless用户名,密码,确认密码和邮箱。

image-20250325102914090

这里是你设置完后的总结,各种文件夹路径,和用户名邮箱,按任意键继续安装。

image-20250325110101321

安装完成后打开浏览器输入localhost:8000,能看到进入到paperless的登录页面了。根据刚才你自己设置的用户名和密码即可登录。

image-20250325110427854

3.简单使用paperless

能看到paperless的界面还是很简洁的。image-20250325110730729

这里可以选择语言,记得点下面的save保存后刷新。

image-20250325111939669

点击这里的开始导览,会教你使用paperless,好好学习哦。

image-20250325112039942

我这里尝试先上传一个文件,直接在首页(仪表盘)这里点击上传,或者拖拽都可以。

image-20250325114231442

几秒钟的时间,文件就会出现在“文档”菜单中。

image-20250325114306692

4.安装cpolar内网穿透

不过我们目前只能在本地局域网内访问刚刚部署的paperless,如果想不在同一局域网内时,也能在外部网络环境使用手机、平板、电脑等设备远程访问与使用它,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问的需求。无需公网IP,也不用准备云服务器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

18e1ff08f3cf50d220443a24ac52347

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

d06f9f2b479bc4920a509335a43c485

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

0eaf2de1254b44b55650dce3b66016e

5. 配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:paperless,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8000
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建:

image-20250325135910892

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在浏览器中访问即可。

image-20250325135945045

现在就已经成功实现使用cpolar生成的公网地址异地远程访问本地部署的paperless啦!

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用paperless,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是paperless,大家可以自定义。填写备注信息,点击保留。

image-20250325140142673

保留成功后复制保留的二级子域名地址:

image-20250325140201460登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道paperless,点击右侧的编辑

image-20250325140231866

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250325140255760

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250325140318556

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的paperless页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250325140400974

总结

当您在任意设备的浏览器中输入专属域名时,本地存储的文件库瞬间就能被远程访问。这个恒定不变的网络地址如同数字化时代的保险箱,通过专业搭建的传输隧道,将传统硬盘存储升级为云端智能管理平台。这种转变不仅让文件获取突破物理限制,更使数据安全获得多重保障。

该开源架构融合了OCR识别与智能归类技术,构建出全天候运作的数字助理。无论是企业合同、财务凭证还是创意素材,系统都能自动完成分类、标签化处理和版本管理。通过机器学习算法的持续优化,文件检索效率提升300%,文档生命周期管理实现可视化追踪。这种智能化转型,使文件管理从被动存储进化为主动服务,让每个数据资产都能在云端焕发新生。

开源地址:https://github.com/paperless-ngx/paperless-ngx

<think>我们正在处理一个关于在Windows系统部署paperless-ngx的查询。根据引用内容,我们注意到部署paperless-ngx通常使用DockerCompose方式,因为它需要多个外部服务(如数据库、Redis等)。在Windows上,我们可以通过安装DockerDesktop来运行Docker容器,然后使用DockerCompose配置文件来部署paperless-ngx。然而,引用中提供的配置示例(引用[3])是针对Linux环境的,但DockerCompose的配置在Windows上同样适用,因为Docker容器是跨平台的。因此,我们可以调整配置使其在Windows上运行。步骤概述:1.在Windows上安装DockerDesktop。2.创建一个docker-compose.yml文件,配置paperless-ngx及其依赖的服务(如MariaDB/MySQL、Redis)。3.配置必要的环境变量和卷(volumes)映射。4.启动容器。由于paperless-ngx官方文档推荐使用Docker方式部署,因此我们按照此方式进行。详细步骤:1.安装DockerDesktopforWindows:-访问Docker官网下载并安装DockerDesktop:https://www.docker.com/products/docker-desktop-安装完成后,确保启用WSL2(WindowsSubsystemforLinux2)后端,或者使用Hyper-V(根据Windows版本和配置)。2.创建项目目录,例如`paperless-ngx`,并在其中创建`docker-compose.yml`文件。3.根据引用[3]中的配置示例,我们编写一个适用于Windows的docker-compose.yml文件。注意,在Windows上,我们需要将本地目录映射到容器内,因此要使用正确的路径格式(可以使用相对路径或绝对路径,注意使用`./`表示当前目录下的文件夹)。4.以下是一个调整后的docker-compose.yml示例(基于引用[3]并做适当修改):```yamlversion:'3.8'services:broker:image:redis:7.0restart:unless-stoppedvolumes:-redisdata:/datadb:image:mariadb:10.6restart:unless-stoppedvolumes:-dbdata:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD:paperlessMYSQL_DATABASE:paperlessMYSQL_USER:paperlessMYSQL_PASSWORD:paperlesswebserver:image:ghcr.io/paperless-ngx/paperless-ngx:latestrestart:unless-stoppeddepends_on:-db-brokerports:-"8000:8000"healthcheck:test:["CMD","curl","-f","http://localhost:8000"]interval:30stimeout:10sretries:5volumes:-data:/usr/src/paperless/data-media:/usr/src/paperless/media-./export:/usr/src/paperless/export-./consume:/usr/src/paperless/consumeenvironment:PAPERLESS_REDIS:redis://broker:6379PAPERLESS_DBENGINE:mariadbPAPERLESS_DBHOST:dbPAPERLESS_DBUSER:paperlessPAPERLESS_DBPASS:paperlessPAPERLESS_DBPORT:3306volumes:data:media:redisdata:dbdata:```5.在项目目录中,我们需要创建两个目录:`export`和`consume`(用于存放导出的文档和待处理的文档)。在Windows中,我们可以通过文件资源管理器创建,或者使用命令提示符:```mkdirexportmkdirconsume```6.启动服务:打开命令提示符或PowerShell,切换到项目目录,运行:```docker-composeup-d```7.等待所有容器启动后,可以通过浏览器访问:http://localhost:8000来使用paperless-ngx。8.初始设置:首次访问时,需要创建管理员账户。可以通过执行以下命令来创建:```docker-composeexecwebserverpythonmanage.pycreatesuperuser```注意事项:-在Windows上,文件路径的权限问题可能会影响容器内服务的运行。如果遇到权限问题,可能需要调整DockerDesktop的文件共享设置(在Settings->Resources->FileSharing中,确保包含项目目录的驱动器已共享)。-由于paperless-ngx需要处理文件,建议将`consume`目录设置为共享目录,以便将待处理的文档放入该目录后,paperless-ngx能够自动处理(需要配置自动消费,默认情况下会监控`consume`目录)。另外,引用[2]提到可以通过cpolar实现远程访问,但这不在本次问题的范围内(本次问题是部署在本地Windows上)。如果用户需要更详细的步骤,可以参考paperless-ngx官方文档:https://paperless-ngx.readthedocs.io/en/latest/根据用户要求,我们生成相关问题:§§相关问题§§1.在Windows上部署paperless-ngx时如何解决文件权限问题?2.如何配置paperless-ngx以自动处理`consume`目录中的文档?3.如何在Windows上更新已部署paperless-ngx到最新版本?</think>### 在 Windows 上部署 Paperless-ngx 的完整指南 Paperless-ngx 是一个开源的文档管理系统,可将纸质文档转换为可搜索的数字档案。在 Windows 上部署需要 Docker 环境,以下是详细步骤: #### 1. **安装 Docker Desktop** - 下载 Docker Desktop for Windows:https://www.docker.com/products/docker-desktop - 安装时启用 WSL 2 后端(Windows Subsystem for Linux 2),这是必须的[^1][^2] - 安装后启动 Docker 并确保状态栏显示 "Docker Desktop is running" #### 2. **创建部署目录结构** 在 PowerShell 中执行: ```powershell mkdir paperless-ngx cd paperless-ngx mkdir consume export config ``` #### 3. **创建 `docker-compose.yml`** 在 `paperless-ngx` 目录创建文件,内容如下: ```yaml version: '3.8' services: broker: image: redis:7.0 restart: unless-stopped volumes: - redisdata:/data db: image: mariadb:10.6 restart: unless-stopped volumes: - dbdata:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: paperless MYSQL_DATABASE: paperless MYSQL_USER: paperless MYSQL_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 - ./config:/usr/src/paperless/config environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBENGINE: mariadb PAPERLESS_DBHOST: db PAPERLESS_DBUSER: paperless PAPERLESS_DBPASS: paperless PAPERLESS_DBPORT: 3306 volumes: data: media: redisdata: dbdata: ``` #### 4. **启动 Paperless-ngx** 在 PowerShell 中执行: ```powershell docker compose up -d ``` 首次启动需等待 2-5 分钟初始化数据库[^3] #### 5. **访问配置** - 打开浏览器访问:http://localhost:8000 - 创建管理员账户: ```powershell docker compose exec webserver python manage.py createsuperuser ``` - 将扫描文档放入 `consume` 目录,系统会自动处理(OCR 和分类) #### 6. **配置优化(可选)** - **语言设置**:在 `config` 目录创建 `ocr.config` 文件: ``` # 简体中文OCR OCR_LANGUAGE = "chi_sim" ``` - **文件命名规则**:修改 `config/paperless.conf`: ``` # 示例:日期+标题 FILENAME_FORMAT = "{created_year}/{correspondent}/{title}" ``` ### 常见问题解决 1. **端口冲突**:修改 `docker-compose.yml` 中的 `8000:8000` 为其他端口如 `8080:8000` 2. **文件权限错误**:在 Docker Desktop 设置中启用 "Use the WSL 2 based engine" 3. **OCR 失败**:确保 `consume` 目录中的文件是 PDF/JPEG/PNG 格式 > **注意**:Paperless-ngx 依赖的数据库(MariaDB)和消息代理(Redis)已通过 Docker Compose 自动配置[^1][^3]。首次使用后,可通过 `http://localhost:8000/admin` 进行高级设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值