尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Papermerge 安装教程:Docker 部署从零开始,让扫描件支持全文搜索

Papermerge 安装教程:Docker 部署从零开始,让扫描件支持全文搜索 Papermerge 安装教程Docker 部署从零开始让扫描件支持全文搜索【免费下载链接】papermergeOpen Source Document Management System for Digital Archives (Scanned Documents)项目地址: https://gitcode.com/gh_mirrors/pa/papermergePapermerge 是面向扫描文档的开源文档管理系统DMS上传后它会自动对 PDF、TIFF 和图片文件做 OCR把文字建成索引支持全文搜索。这篇文章是一份 Papermerge 安装教程从一台干净的机器开始用 Docker 把整套服务跑起来改掉默认 OCR 语言再把一个文件夹的扫描件收进来。部署完成后的效果是这样的把一摞扫描 PDF 丢进去几分钟后在搜索栏输入发票号或公司名的几个字直接命中文档里的那一页。部署前先搞懂 4 个容器的分工看 docker/docker-compose.yml 里的四个角色后面的排障全围绕它们展开app容器名 papermerge_appWeb 服务浏览器里 8000 端口打开的页面负责登录、浏览、上传workerpapermerge_worker真正干 OCR 的后台任务进程文档识别和索引全靠它这个容器不跑文档会一直卡在待处理redis两者之间的消息队列app 提交任务、worker 领取任务dbpostgres_dbPostgreSQL 数据库存文档索引、文件夹和标签结构机器建议 4GB 内存OCR 比较吃资源、预留 20GB 左右存储。compose 文件直接引用官方现成镜像eugenci/papermerge:2.0.0和eugenci/papermerge-worker:v2.0.0不用自己构建docker/ 下的两个 Dockerfile 只给想从源码构建的人看。用仓库里的 compose 文件启动先拉取代码并进入部署目录git clone https://gitcode.com/gh_mirrors/pa/papermerge cd papermerge/docker仓库里数据库密码默认是dbpass写在 db、app、worker 三个服务的环境变量里。临时试用可以不改要长期用就同时把这三处改成同一个强密码。然后启动docker-compose up -d这条命令会拉取 4 个镜像、创建容器和命名卷在后台运行。过一两分钟后执行docker-compose ps看到 4 个容器都是 Up 状态就说明启动完成了。这里有个容易多此一举的细节app 容器启动时会自动做数据库迁移并创建默认管理员账号见 docker/app.startup.sh——它跑完migrate后执行 docker/scripts/create_user.py 创建admin用户。所以你不需要再手动执行 migrate 或 createsuperuser。容器启动后先做的 3 件事浏览器打开http://localhost:8000接下来依次处理登录、OCR 语言和一个状态检查。用 admin / admin 登录并改密码。默认账号由启动脚本创建密码也是 admin首次登录后必须改掉。万一以后忘了可以用命令重置docker exec papermerge_app python3 manage.py changepassword admin改 OCR 语言这是最容易踩的坑。官方配置默认 OCR 语言是德语docker/config/papermerge.config.py 里OCR_DEFAULT_LANGUAGE deu中文或英文文档识别出来不是空就是乱码。容器里的配置文件在/opt/etc/papermerge.conf.py启动脚本只在文件不存在时才从默认值复制所以可以直接编辑docker exec papermerge_app vi /opt/etc/papermerge.conf.py改两处OCR_DEFAULT_LANGUAGE eng OCR_LANGUAGES { eng: English, deu: Deutsch, }语言码是 ISO 639 三字母码eng表示英语。改之前先确认容器里实际装了哪些语言包只有列表里有的才可用docker exec papermerge_app tesseract --list-langs改完执行docker-compose restart app worker让配置生效。不想容器重建后配置丢失的话在 compose 的 app 服务 volumes 里把本地配置文件挂载到/opt/etc/papermerge.conf.py即可。确认 worker 在跑。docker-compose ps里 worker 应为 Updocker-compose logs worker无报错——它才是后面替你干活的角色。把一个文件夹的扫描件收进来网页上传最直接登录后把 PDF 或图片拖进页面上传的文档默认落在Inbox文件夹。导入目录适合批量在/opt/etc/papermerge.conf.py里设置IMPORTER_DIR默认不设置即关闭此功能指向容器内一个目录同时在 compose 的 worker 服务里把宿主机的扫描目录挂载到同一路径。文件拷贝进去、稳定 1 秒后FILES_MIN_UNMODIFIED_DURATION默认 1 秒就会被 worker 自动收进去 OCR 建索引Linux 上走 inotify 监听不轮询。扫描器输出到网络目录的场景走这条路最省事。邮箱附件在配置文件填 IMAP 账号IMPORT_MAIL_HOST等默认不设置即关闭Papermerge 会定期从指定邮箱拉附件入库。完整配置项说明见 papermerge.conf.py.example。上传后可以在文档详情页看 worker 的处理进度。想快速验证效果可以先拿仓库自带的示例 PDF 试试位置在 example_data/里面是按语言分好的多页文档。文档归位文件夹、标签与搜索落到 Inbox 的文档要归位靠两个维度文件夹按年份、按类型发票、合同、报告建多级目录把文档拖进去标签给文档或文件夹打颜色标记适合待处理已归档这类横向状态。量上来以后主要靠全文搜索输入几个字命中的是 OCR 提取的文档内文字这是它和普通网盘的本质区别。example_data 里的示例文档都是多页的适合顺手试一次跨页搜索。出问题时按 现象 → 原因 → 处理 自查现象常见原因处理8000 端口打不开页面app 容器没起来或端口被占用docker-compose ps看容器状态把 compose 里端口映射左边换成别的端口文档一直停在待处理worker 没在运行docker-compose restart worker再看docker-compose logs worker找报错OCR 后搜索不到内容语言包缺失或语言码不匹配tesseract --list-langs核对已装语言包把配置改成列表里存在的码忘了登录密码—用前面changepassword命令重置要迁移或备份数据分布在两个命名卷见下方两条导出命令备份要带走两样文档原文件和 OCR 结果在media_root卷数据库在postgres_data7卷。docker exec postgres_db pg_dump -U dbuser dbname db_backup.sql这条把整个数据库导出成一个 SQL 文件。docker run --rm --volumes-from papermerge_app -v $PWD/backup:/out alpine tar czf /out/media.tar.gz -C /opt/media .这条把 app 容器里的 media 目录打包输出到宿主机当前目录的backup/下。恢复时反过来挂回去、导入 SQL 即可。现在就打开网页界面在 Inbox 里拖进第一份你手头的真实扫描件等 OCR 完成后用它内容里的一个词搜一下——搜到了这套系统就算真正跑起来了。【免费下载链接】papermergeOpen Source Document Management System for Digital Archives (Scanned Documents)项目地址: https://gitcode.com/gh_mirrors/pa/papermerge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表