Skip to main content

Installation

YAML

Les lignes finissantes par un '#' sont les lignes où vous êtes susceptible de vouloir changer la valeur d'exemple.

version: "3.9"
services:

############# PAPERLESS-NGX ############## 
  paperless:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: PaperlessNGX
    hostname: paperless-ngx
    mem_limit: 6g
    cpu_shares: 1024
    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:
      - 8001:8000 #
    networks:
      - paperless-ngx-network
    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/scan/paperless:/usr/src/paperless/consume:rw #
      - /volume1/docker/paperlessngx/trash:/usr/src/paperless/trash:rw #
    environment:
      PAPERLESS_REDIS: redis://:redispass@paper-redis:6379
      PAPERLESS_DBENGINE: mariadb
      PAPERLESS_DBHOST: paper-db #
      PAPERLESS_DBNAME: paperless #
      PAPERLESS_DBUSER: paperlessuser #
      PAPERLESS_DBPASS: password*db #
      PAPERLESS_EMPTY_TRASH_DIR: ../trash
      PAPERLESS_FILENAME_FORMAT: '{{ created_year }}/{{ document_type }}/{{ created_month }}/{{ title }}' #
      PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD: 6
      PAPERLESS_TASK_WORKERS: 1
      USERMAP_UID: 1026 #
      USERMAP_GID: 100 #
      PAPERLESS_TIME_ZONE: Europe/Zurich #
      PAPERLESS_URL: https://paper.your-host.com #
      PAPERLESS_CSRF_TRUSTED_ORIGINS: https://paper.your-host.com #
      PAPERLESS_OCR_USER_ARGS: '{"continue_on_soft_render_error": true, "invalidate_digital_signatures": true}' #
      PAPERLESS_OCR_LANGUAGE: fra+eng #
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
      PAPERLESS_CONSUMER_ENABLE_BARCODES: true
      PAPERLESS_CONSUMER_BARCODE_DPI: 600
      PAPERLESS_CONSUMER_BARCODE_UPSCALE: 1.5
      PAPERLESS_CONSUMER_BARCODE_STRING: YOUR_DOC_SEPERATOR_TAG #
      PAPERLESS_CONSUMER_BARCODE_SCANNER: PYZBAR
    restart: on-failure:5
    depends_on:
      db:
        condition: service_started
      redis:
        condition: service_healthy
      tika:
        condition: service_started
      gotenberg:
        condition: service_started

############# REDIS ##############
  redis:
    image: redis:7
    command:
      - /bin/sh
      - -c
      - redis-server --requirepass redispass
    container_name: PaperlessNGX-REDIS
    hostname: paper-redis
    networks:
      - paperless-ngx-network
    mem_limit: 512m
    mem_reservation: 256m
    cpu_shares: 768
    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

############# MARIADB ##############  
  db:
    image: mariadb:11
    container_name: PaperlessNGX-DB
    security_opt:
      - no-new-privileges:true
    hostname: paper-db
    environment:
      MYSQL_DATABASE: paperless #
      MYSQL_USER: paperlessuser #
      MYSQL_PASSWORD: password*db #
      MYSQL_ROOT_PASSWORD: password*db*root #
      TZ: Europe/Zurich #
    ports:
      - 3306:3306 #
    networks:
      - paperless-ngx-network
    volumes:
      - /volume1/docker/paperlessngx/db:/var/lib/mysql:rw #
    restart: on-failure:5

############# PHPMYADMIN ##############     
#  phpmyadmin:
#    image: phpmyadmin
#    hostname: paperlessngx-phpmyadmin
#    healthcheck:
#     test: curl -f http://localhost:80/ || exit 1
#    container_name: PaperlessNGX-phpMyAdmin
#    ports:
#      - 2980:80
#    networks:
#      - paperless-ngx-network
#    environment:
#     PMA_HOST: paper-db
#     PMA_PORT: 6025
#    restart: on-failure:5

############# GOTENBERG ##############    
  gotenberg:
    image: gotenberg/gotenberg:8.7
    container_name: PaperlessNGX-GOTENBERG
    hostname: gotenberg
    networks:
      - paperless-ngx-network
    security_opt:
      - no-new-privileges:true
    user: 1026:100 #
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"
      - "--api-timeout=900s"
    restart: on-failure:5

############# TIKA ############## 
  tika:
    image: ghcr.io/paperless-ngx/tika:latest
    container_name: PaperlessNGX-TIKA
    hostname: tika
    networks:
      - paperless-ngx-network
    security_opt:
      - no-new-privileges:true
    user: 1026:100 #
    restart: on-failure:5

############# NETWORKS ##############         
networks:
  paperless-ngx-network:
    name: bridge-paperless-ngx
    driver: bridge