本地如何部署Paperless-Ngx文档管理服务并实现远程管理内网文件

本文详述了如何在本地部署Paperless-ngx文档管理服务,并结合Cpolar内网穿透工具,实现远程公网访问。通过Docker和docker-compose安装Paperless-ngx,然后使用Cpolar创建隧道映射,配置固定二级子域名,从而达到长期稳定远程访问的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Paperless-ngx是一个开源的文档管理系统,可以将物理文档转换成可搜索的在线档案,从而减少纸张的使用。它内置了OCR功能,可以自动对上传的扫描文档执行OCR,识别文档中的文字,并将其转换为可编辑和可搜索的文本格式。然后,系统会对文档进行分类和索引,以便用户可以随时搜索查阅。

本例介绍本地部署Paperless-ngx并实现远程公网访问,本地部署后会受局域网访问限制,无法在异地进行访问,本例会结合cpolar内网穿透工具,实现远程也可以访问

cpolar是一款强大的内网穿透软件,它能够在多个操作系统上无缝运行,包括Windows、MacOS和Linux,因此无论您使用哪种操作系统,都可以轻松将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口,使得公网用户可以轻松访问您的内网服务,无需部署至公网服务器.

本例采用Docker部署,首先设备需要提前安装好Docker 和Docker compose,如没有安装,可以参考docker 官方教程进行安装:Docker 官方安装教程

Paperless-ngx 部署需要用到非常多外部服务,如数据库等,采用docker compose方式,可以一次性把所有的服务全部部署好,简化了安装的过程,下面开始进行安装

1. 部署Paperless-ngx

在Linux 中创建一个文件夹,创建后进入该文件夹


                
<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` 进行高级设置。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程思扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值