services: redis: image: redis:8 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"] volumes: - /volume1/docker/paperlessngx/redis:/data:rw environment: TZ: Europe/Zurich restart: on-failure:5 db: image: postgres:18 container_name: PaperlessNGX-DB hostname: paper-db security_opt: - no-new-privileges:true healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "paperless", "-U", "paperlessuser"] timeout: 45s interval: 10s retries: 10 volumes: - /volume1/docker/paperlessngx/db:/var/lib/postgresql:rw environment: POSTGRES_DB: paperless POSTGRES_USER: paperlessuser POSTGRES_PASSWORD: paperlesspass restart: on-failure:5 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/data/docker/paperlessngx/data:/usr/src/paperless/data:rw - /volume1/data/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: paper-db PAPERLESS_DBNAME: paperless PAPERLESS_DBUSER: paperlessuser PAPERLESS_DBPASS: paperlesspass PAPERLESS_EMPTY_TRASH_DIR: ../trash PAPERLESS_FILENAME_FORMAT: '{{ created_year }}/{{ correspondent }}/{{ document_type }}/{{ title }}' PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6 PAPERLESS_TASK_WORKERS: 1 USERMAP_UID: 1026 USERMAP_GID: 100 PAPERLESS_TIME_ZONE: Europe/Zurich PAPERLESS_SECRET_KEY: pbasJHwKYTKIYOIBABKyEmKHvjSCrStEVUcRvPOcbJrrJddgrlbKQiSrUAOxZztO PAPERLESS_ADMIN_USER: michael PAPERLESS_ADMIN_PASSWORD: schwa-mi4Paperless PAPERLESS_URL: https://paperngx.mschwab.net PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paperngx.mschwab.net PAPERLESS_OCR_LANGUAGE: deu+eng PAPERLESS_CONSUMER_RECURSIVE: true PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS: true PAPERLESS_TIKA_ENABLED: 1 PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 PAPERLESS_TIKA_ENDPOINT: http://tika:9998 restart: on-failure:5 depends_on: db: condition: service_healthy redis: condition: service_healthy tika: condition: service_started gotenberg: condition: service_started gotenberg: image: docker.io/gotenberg/gotenberg:7.10 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 healthcheck: disable: false tika: image: docker.io/apache/tika:latest container_name: PaperlessNGX-TIKA hostname: tika security_opt: - no-new-privileges:true user: 1026:100 restart: on-failure:5 healthcheck: disable: false