version: "3.8" services: paperless: image: ghcr.io/paperless-ngx/paperless-ngx:latest container_name: paperless restart: unless-stopped ports: - "8000:8000" environment: # 使用 SQLite 作为数据库(默认) PAPERLESS_DBENGINE: sqlite3 PAPERLESS_DBNAME: /usr/src/paperless/db/paperless.sqlite3 PAPERLESS_REDIS: redis://redis:6379 # 语言和时区设置 PAPERLESS_TIME_ZONE: Asia/Shanghai PAPERLESS_LANGUAGE: zh-cn # PDF 处理的目录 PAPERLESS_CONSUMPTION_DIR: /usr/src/paperless/consume PAPERLESS_DATA_DIR: /usr/src/paperless/data PAPERLESS_MEDIA_ROOT: /usr/src/paperless/media PAPERLESS_EXPORT_DIR: /usr/src/paperless/export # 定义文件命名规则和存储路径 # 作用不大,主要还是用消费后脚本,以及工作流来指定存储路径。 # 工作流先于消费后脚本运行,因此消费后脚本里解析的document_type在工作流里无效。所以使用了文件名关键词匹配 PAPERLESS_FILENAME_FORMAT: "{{created}}_{{document_type}}_{{correspondent}}_{{title}}" # 解析文件里的关键信息,并更新。但无法更新strorage path。这个字段要靠工作流才行。 PAPERLESS_POST_CONSUME_SCRIPT: "/usr/src/paperless/scripts/parse_filename.py" # 自动删除重复文件 PAPERLESS_CONSUMER_DELETE_DUPLICATES: true # 支持消费目录递归检索,即子目录。这样可以支持多个宿主机的目录映射到docker中 PAPERLESS_CONSUMER_RECURSIVE: true PAPERLESS_OCR_LANGUAGES: "" # 跳过OCR,并不会,只会用默认的eng来执行 PAPERLESS_OCR_SKIP_ARCHIVE_FILE: "always" # 跳过创建文档存档版本的时间 PAPERLESS_OCR_OUTPUT_TYPE: "pdf" # 尽量少修改PDF文档 PAPERLESS_CONSUMER_POLLING: "5" # 指定轮询间隔(以秒为单位),这将导致 paperless 定期检查消费目录中的更改 #PAPERLESS_CONSUMER_INOTIFY_DELAY: "2" # 设置消费者等待 inotify 发出的其他事件的时间(以秒为单位) # 运行用户 USERMAP_UID: 1000 USERMAP_GID: 1000 volumes: # 存储所有数据(搜索索引、SQLite 数据库、分类模型等)的地方 - ~/dockers/paperless/data:/usr/src/paperless/data # 挂载文件导入目录,可以把多个宿主机的目录,挂到docker中,以子目录的形式存在 - ~/dockers/paperless/consume:/usr/src/paperless/consume - ~/dockers/sharedata/consume:/usr/src/paperless/consume/subdir # 挂载文件导出目录 - ~/dockers/paperless/export:/usr/src/paperless/export # 存储您的文档和缩略图的地方 - ~/dockers/paperless/media:/usr/src/paperless/media # 挂载脚本,比如 PAPERLESS_POST_CONSUME_SCRIPT - ~/dockers/paperless/scripts:/usr/src/paperless/scripts networks: - devops networks: devops: external: true