Files
komodo/stacks/paperless-ngx.compose.yml

147 lines
4.2 KiB
YAML

services:
redis:
image: redis:7
command:
- /bin/sh
- -c
- redis-server --requirepass redispass
container_name: PaperlessNGX-REDIS
hostname: paper-redis
security_opt:
- no-new-privileges:true
read_only: true
user: 1026:100
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
interval: 30s
timeout: 10s
retries: 3
volumes:
- /volume1/docker/paperlessngx/redis:/data:rw
environment:
TZ: America/Los_Angeles
restart: on-failure:5
networks:
- paperless-ngx_default
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
gotenberg:
image: gotenberg/gotenberg:latest
container_name: PaperlessNGX-GOTENBERG
hostname: gotenberg
security_opt:
- no-new-privileges:true
user: 1026:100
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
restart: on-failure:5
networks:
- paperless-ngx_default
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1G
tika:
image: ghcr.io/paperless-ngx/tika:latest
container_name: PaperlessNGX-TIKA
hostname: tika
security_opt:
- no-new-privileges:true
user: 1026:100
restart: on-failure:5
environment:
JAVA_OPTS: "-Xmx2g -Xms1g"
networks:
- paperless-ngx_default
deploy:
resources:
limits:
memory: 3G
reservations:
memory: 1.5G
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: PaperlessNGX
hostname: paperless-ngx
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
ports:
- 8777:8000
volumes:
- /volume1/docker/paperlessngx/data:/usr/src/paperless/data:rw
- /volume1/docker/paperlessngx/media:/usr/src/paperless/media:rw
- /volume1/docker/paperlessngx/export:/usr/src/paperless/export:rw
- /volume1/docker/paperlessngx/consume:/usr/src/paperless/consume:rw
- /volume1/docker/paperlessngx/trash:/usr/src/paperless/trash:rw
environment:
PAPERLESS_REDIS: redis://:redispass@paper-redis:6379
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: PgBouncer
PAPERLESS_DBPORT: 6432
PAPERLESS_DBNAME: paperless
PAPERLESS_DBUSER: paperless
PAPERLESS_DBPASS: ${PAPERLESS_DBPASS}
PAPERLESS_EMPTY_TRASH_DIR: ../trash
PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{document_type}/{title}'
PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
PAPERLESS_OCR_PAGES: 0 # Process all pages (current default)
PAPERLESS_OCR_MODE: skip # Skip OCR on already-OCRed docs (current default)
PAPERLESS_TASK_WORKERS: 2
PAPERLESS_THREADS_PER_WORKER: 2 # For OCR parallelization
PAPERLESS_WEBSERVER_WORKERS: 1 # Keep at 1 for 4-core system
USERMAP_UID: 1026
USERMAP_GID: 100
PAPERLESS_TIME_ZONE: America/Los_Angeles
PAPERLESS_ADMIN_USER: stray
PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD}
PAPERLESS_URL: https://paperlessngx.straymoog.xyz
PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperlessngx.straymoog.xyz
PAPERLESS_OCR_LANGUAGE: eng
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true}'
PAPERLESS_DB_READ_CACHE_ENABLED: true
PAPERLESS_READ_CACHE_TTL: 3600 # 1 hour cache
PAPERLESS_DB_POOLSIZE: 4
restart: on-failure:5
depends_on:
redis:
condition: service_healthy
tika:
condition: service_started
gotenberg:
condition: service_started
networks:
- paperless-ngx_default
- paperless_shared
deploy:
resources:
limits:
memory: 5G
reservations:
memory: 2.5G
networks:
paperless-ngx_default:
driver: bridge
paperless_shared:
external: true
name: paperless_shared