B03-PaperLess-ngx(文档无纸化)

当你写论文时,会发现她的好!

B03-PaperLess-ngx(文档无纸化)
💡
弱水三千,我只取一瓢,真正好用的Dokcer项目推荐,特别适合于文档众多,却不知如何整理的您!

1-项目介绍

项目地址: Star:15.1K

  • Paperless-ngx是一个社区支持的开源文档管理系统,它可以将你的物理文档转换成可搜索的在线存档,这样你就可以少用纸了
  • 部署无纸化的最简单方法是 docker compose
  • 使用标签、对应项、类型等组织扫描文档并为其编制索引
  • 对您的文档执行OCR,添加可搜索和可选择的文本,甚至对仅扫描图像的文档也是如此
  • 利用开源Tesseract引擎识别100多种语言
  • 支持PDF文档、图像、纯文本文件、Office文档(Word、Excel、Powerpoint和LibreOffice等效文件) 1 等
  • 全文搜索可以帮助您找到所需的内容
  • 电子邮件处理 1 :从您的电子邮件帐户导入文档
  • 针对多核系统优化:Paperless-ngx并行处理多个文档
  • 支持移动的设备

1.1 项目效果

0:00
/1:08

2-搭建环境

Docker环境:由于使用Docker-compose是最方便的模式,故在群晖7.1X的Docker环境下,
添加了Portainer容器,以使用Docker-compose模式部署,如果读者使用的是群晖7.2X,
则可以直接使用官方的Container Manager,如果是使用其他环境,各位请自行了解支持
Docker-compose部署的模式,此处不在赘述。
以下是我使用的环境,各位可自行参考:
A-01 PVE安装指南
A01-PVE 详细安装手册
A03-PVE_DSM(群晖-ARPL引导) 安装指南
PVE_DSM(群晖-ARPL引导)
B03-Portainer
Portainer-图形化Docker管理工具

3-搭建过程:

3.1 新建 paperless 文件夹

登录群晖->File station->docker->paperless,在此文件夹中新建6个空文件夹,并在空文件夹点击右键->查看属性,确定物理路径,比如“/volume1/docker/paperless/data”,如果你有多个存储卷,此处可能是volume2或volumeX,物理路径需要绝对正确,并确保与你的环境一致,有差异请修正docker-compose命令相应的语句。

redisdata
pgdata
data
media
export
consume

3.2 准备好docker-compose命令


version: "3.4"
services:
  broker:
    image: library/redis:7
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless/redisdata:/data
  db:
    image: library/postgres:15
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
  webserver:
    image: paperlessngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
      - gotenberg
      - tika
    ports:
      - "38000:8000"  # 任意端口号,确保与本地服务无冲突即可
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /volume1/docker/paperless/data:/usr/src/paperless/data
      - /volume1/docker/paperless/media:/usr/src/paperless/media
      - /volume1/docker/paperless/export:/usr/src/paperless/export
      - /volume1/docker/paperless/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_OCR_LANGUAGES: chi-sim chi-tra  # OCR语言,可在WEB界面修改
      PAPERLESS_OCR_LANGUAGE: eng+chi_sim  # OCR语言,后续可在WEB界面修改
      USERMAP_UID: 0
      USERMAP_GID: 0
      PAPERLESS_TIME_ZONE: Asia/Shanghai  # 时区设置
      # PAPERLESS_OCR_USER_ARGS: {"invalidate_digital_signatures": true} #安装前无法使用,需安装后使用
    dns:
      - 8.8.8.8
      - 8.8.4.4
  gotenberg:
    image: gotenberg/gotenberg:latest
    restart: unless-stopped
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"
      - "--api-timeout=300s"
  tika:
    image: apache/tika:latest
    restart: unless-stopped

3.3 通过Portainer 执行docker-compose语句

此处需要确保能科学上网并能从Docker拉取镜像,因为镜像很大,拉取的时间约0.5-1H。

65b6fae4eab4a.jpg

拉取成功后出现以下5个容器

65b6fae37123c.jpg

3.4 建立超管用户

选择webserver的容器,打开终端,输入命令:
python3 manage.py createsuperuser,依提示设置usr,email,password

65b6fae35304f.jpg

3.5 登录并设置OCR支持语言

使用IP+端口方式登录,如192.168.41.7:38000,登录后至configration界面
可以看到docker-compose命令有设置但未带入,设置后可解决部分导入文件乱码的问题。

65b6fae49c5c2.jpg
65b6faea4b8e7.jpg
65b6faeb69bd2.jpg

4-视频教程

0:00
/1:52

5-部署及使用经验总结及问题讨论