如何部署 Papermerge:用 Docker Compose 为扫描文档搭一个可全文检索的数字档案中心
如何部署 Papermerge用 Docker Compose 为扫描文档搭一个可全文检索的数字档案中心【免费下载链接】papermergeOpen Source Document Management System for Digital Archives (Scanned Documents)项目地址: https://gitcode.com/gh_mirrors/pa/papermergePapermerge 是一个面向扫描文档的开源文档管理系统PDF 传上去它用 OCR 把图片里的文字抽出来、建索引之后你可以按关键词搜到某份扫描合同里的一句话。这篇文章带你在 5 分钟内从空机跑到上线再覆盖首启验证、按需调优和故障排查。先用 30 秒判断Papermerge 是不是你要的东西Papermerge 只解决一个痛点扫描件是图片搜不到。它接管扫描文档后的三件事OCR 抽取文字底层是 Tesseract对文字建全文索引支持跨文档关键词检索用文件夹层级、彩色标签、文档类型把文档归档并提供类似桌面文件管理器的高亮、双栏拖拽界面。支持 PDF、TIFF、JPEG、PNG 四种格式附带页级操作删页、换序、抽取页面和多用户权限。适合你如果你手里有持续增长的扫描文档——发票、合同、证书、病历——且希望在浏览器里直接管理和检索。部署前体检系统、硬件、网络三项前置条件动手前花 1 分钟核对面这张表缺哪项先补哪项检查项要求说明系统Linux Docker Docker ComposeCompose 插件形式即可无需单独装内存≥ 2 GBOCR 阶段吃 CPU存量文档多建议再放宽磁盘≥ 20 GB 空闲放 PostgreSQL 库、媒体文件、Redis 数据网络能拉取公开镜像共 4 个镜像app、worker、postgres、redis端口8000 未被占用冲突时在docker-compose.yml的ports里改映射极速部署三条命令让 4 个容器跑起来第一步拉代码进入部署目录git clone https://gitcode.com/gh_mirrors/pa/papermerge cd papermerge/docker预期看到当前目录有docker-compose.yml和config/下的三份生产配置app.production.py、worker.production.py、papermerge.config.py。第二步启动全部服务docker-compose up -d预期看到docker ps里 4 个容器全部 Up——postgres_db、redis、papermerge_app、papermerge_worker。第三步盯首启日志等迁移完成docker-compose logs -f app预期看到日志里依次跑完migrate、collectstatic最后出现 mod_wsgi-express 启动服务的信息。看到后即可 CtrlC 退出。4 个容器的依赖关系值得记一下排障时会用到dbPostgreSQL 12.3和redisRedis 6先起前者存元数据后者当 OCR 任务队列app声明了depends_on: db / redis等两者就绪后才起监听 8000 端口首次启动会自动建库并创建管理员账号worker与app共享media_root卷在后台消费 OCR 任务不阻塞 Web 响应。首启验证用 admin 账号登录确认检索链路通了打开浏览器访问http://localhost:8000。初始账号admin/admin首启由启动脚本创建仅在该账号不存在时创建应该看到双栏文档浏览器左栏是空的文件夹树和文档列表。确认装成功的最小验证路径上传一份带文字的扫描 PDF → 等 worker 完成 OCR文档状态从处理中变为就绪→ 在搜索框输入文档正文里的一个关键词 → 命中即链路全通。如果不想开浏览器可以先用下面命令探活curl -I http://localhost:8000预期看到返回 200 或 302跳转登录页而不是 connection refused。登录成功后第一件事改掉初始密码。按需调优配置项按必须、常用、可选三级分层所有配置集中在docker/config/下papermerge.config.py管业务参数app.production.py管 Web 端worker.production.py管 worker 端。改完对应文件后重启相应容器生效。层级配置项位置说明必须管理员密码Web 用户管理初始密码是公开的上线前改掉必须对外端口docker-compose.yml的ports例如8080:8000换成自己的端口常用OCR 默认语言papermerge.config.py的OCR_DEFAULT_LANGUAGE镜像默认是deu德语处理中文场景少的英文文档就改成eng并让OCR_LANGUAGES列表覆盖实际文档语言常用数据库凭据papermerge.config.py的DBUSER/DBPASS/DBNAME与 compose 的POSTGRES_*环境变量两边要一致生产环境建议换掉默认值可选上传体积上限官方镜像启动脚本的--limit-request-body默认 20971520 字节20 MB需要更大量上传时改docker/app.startup.sh里的该参数并用docker/app.dockerfile重建镜像可选元数据抽取格式参考仓库根目录papermerge.conf.py.example中的METADATA_DATE_FORMATS、METADATA_CURRENCY_FORMATS自动从文档里提取日期、金额等字段可选自动导入同上的IMPORTER_DIR监听目录及 IMAP 系列参数把文档落盘到某目录或收邮件附件即可自动入库可选界面语言LANGUAGE_CODE默认英文不支持的语言回退英文疑难速查五个高频现象的原因与解法现象浏览器访问 8000 拒绝连接。原因app还在跑首启迁移或容器启动失败退出了。 解法docker-compose logs -f app看日志停在哪一步确认挂掉后用docker-compose up -d --force-recreate app重建。现象超过 20 MB 的文件上传失败。原因启动脚本把请求体限制在 20 MB20971520 字节。 解法拆分成小文件或压缩后再传确有大量文件需求时改docker/app.startup.sh的--limit-request-body后重建镜像。现象英文文档 OCR 出来是乱码或识别率极低。原因镜像默认 OCR 语言是德语deu。 解法在papermerge.config.py把OCR_DEFAULT_LANGUAGE改成文档对应语言如eng重启app和worker两个容器。现象文档传上去了但一直停在处理中。原因OCR 任务在 Redis 队列里没人消费——worker或redis没跑起来。 解法docker ps确认papermerge_worker和redis都是 Up再看docker-compose logs worker有没有报错。现象担心数据丢失不知道备份什么。原因数据分散在两类卷里——元数据在 PostgreSQL原文档和 OCR 结果在媒体卷。 解法备份postgres_data7数据库和media_root文件两个命名卷也可以在 compose 里把卷改成宿主机路径挂载备份更直接。收束上线之后还有三件事Papermerge 部署到此完成三条命令起服务上传一份扫描件验证全文检索剩下的是按文档量调优 OCR 语言和数据卷备份。下一步建议按顺序做在管理端定义文档类型如发票、合同、证照并挂自定义字段配一条自动化规则试试按规则自动归档和打标签正式使用前先把两个数据卷备份一遍。【免费下载链接】papermergeOpen Source Document Management System for Digital Archives (Scanned Documents)项目地址: https://gitcode.com/gh_mirrors/pa/papermerge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Java SpringBoot+Vue3全栈开发大学生智能招聘系统

Java SpringBoot+Vue3全栈开发大学生智能招聘系统

1. 项目概述:大学生就业招聘系统的技术架构与核心价值这个基于Java SpringBootVue3MyBatis的全栈项目,是专门为高校就业场景设计的智能化招聘管理系统。我在实际开发中发现,传统校园招聘平台普遍存在三个痛点:企业端操作复杂导致入…

2026/8/22 17:11:53 阅读更多 →
APMCM数学建模竞赛全攻略:从组队到论文写作的实战指南

APMCM数学建模竞赛全攻略:从组队到论文写作的实战指南

1. 项目概述:从“找队友”到“拿奖”的完整路径每年一到亚太杯APMCM(Asia and Pacific Mathematical Contest in Modeling)的报名季,各大高校的数学建模群里就会开始热闹起来。大家讨论的核心无非两个:“这题怎么搞&am…

2026/8/22 17:11:53 阅读更多 →
WindowsOracle11g恢复DMP备份文件

WindowsOracle11g恢复DMP备份文件

关键提醒(针对Windows Oracle 11g)权限要求:最前面的连接用户(选项1)最好拥有 DBA 角色,否则可能会报权限不足。建议直接用 system 账户连接。用户必须先存在:TOUSER(本地目标用户&a…

2026/8/22 17:11:53 阅读更多 →

最新新闻

Java面试全攻略:从基础到架构的必备知识点解析

Java面试全攻略:从基础到架构的必备知识点解析

1. 项目概述这份Java面试题集最初在Github上发布后迅速走红,随后被分享到牛客网等国内技术社区,成为众多Java开发者面试准备的必备资料。作为一位经历过数十次技术面试的Java开发者,我深知一份高质量的面试题对求职者的重要性。这份资料之所以…

2026/8/22 18:02:09 阅读更多 →
TCP协议报文结构详解:从核心字段到抓包实战

TCP协议报文结构详解:从核心字段到抓包实战

1. 从“管道”到“契约”:TCP到底是什么?如果你刚开始接触网络编程,或者只是好奇电脑之间是怎么“说话”的,那你一定听过TCP。它不像UDP那样,把数据包像扔飞镖一样扔出去就不管了,TCP更像是在两个程序之间建…

2026/8/22 18:02:09 阅读更多 →
Digital:从逻辑门到处理器,三步跑通的免费数字电路仿真器

Digital:从逻辑门到处理器,三步跑通的免费数字电路仿真器

Digital:从逻辑门到处理器,三步跑通的免费数字电路仿真器 【免费下载链接】Digital A digital logic designer and circuit simulator. 项目地址: https://gitcode.com/gh_mirrors/di/Digital Digital 是一款面向教学设计的免费数字逻辑设计器与数…

2026/8/22 18:02:09 阅读更多 →
10分钟让Mac上NTFS硬盘自由读写:Free-NTFS-for-Mac新手指南

10分钟让Mac上NTFS硬盘自由读写:Free-NTFS-for-Mac新手指南

10分钟让Mac上NTFS硬盘自由读写:Free-NTFS-for-Mac新手指南 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and manageme…

2026/8/22 18:02:09 阅读更多 →
Nginx Stream模块实战:构建安全高效的数据库端口转发代理

Nginx Stream模块实战:构建安全高效的数据库端口转发代理

1. 项目概述:为什么需要Nginx来做数据库端口转发?在分布式系统架构和日常运维中,数据库的访问管理是个绕不开的话题。直接暴露数据库的默认端口(比如MySQL的3306、PostgreSQL的5432)到公网,无异于敞开大门邀…

2026/8/22 18:02:08 阅读更多 →
连续相位旋转模型:让时序知识图谱与AI智能体记忆动态演化

连续相位旋转模型:让时序知识图谱与AI智能体记忆动态演化

1. 项目概述:当时间不再是标签“时间不是一个标签”——这句话乍一听有点哲学意味,但在处理时序数据和构建智能体记忆系统时,它却是一个极具颠覆性的技术视角。我们习惯了在知识图谱里给事实贴上一个“时间戳”标签,比如“张三在2…

2026/8/22 18:01:08 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →