services: broker: image: redis:${REDIS_VERSION} restart: unless-stopped networks: - paperless volumes: - ${VOLUMES_PATH}/paperless/redis:/data labels: - "docker.group=paperless" db: image: postgres:${POSTGRES_VERSION} restart: unless-stopped networks: - paperless volumes: - ${VOLUMES_PATH}/paperless/postgres:/var/lib/postgresql/data environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} labels: - "docker.group=paperless" paperless-ngx: image: ghcr.io/paperless-ngx/paperless-ngx:${PAPERLESS_NGX_VERSION} restart: unless-stopped networks: - paperless - web depends_on: - db - broker healthcheck: test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 volumes: - ${VOLUMES_PATH}/paperless/data:/usr/src/paperless/data - ${VOLUMES_PATH}/paperless/scripts:/usr/src/paperless/scripts - ${MEDIA_PATH}:/usr/src/paperless/media - ${EXPORT_PATH}:/usr/src/paperless/export - ${CONSUME_PATH}:/usr/src/paperless/consume environment: - PAPERLESS_REDIS=redis://broker:6379 - PAPERLESS_DBHOST=db - PAPERLESS_DBNAME=${POSTGRES_DB} - PAPERLESS_DBUSER=${POSTGRES_USER} - PAPERLESS_DBPASS=${POSTGRES_PASSWORD} - PAPERLESS_OCR_LANGUAGES=deu eng - PAPERLESS_URL=http://paperless.${DOMAIN} - PAPERLESS_OCR_LANGUAGE=deu - PAPERLESS_FILENAME_FORMAT={correspondent}/{created} {title} - PAPERLESS_CONSUMER_POLLING=60 - USERMAP_UID=1000 - USERMAP_GID=1000 - PAPERLESS_PRE_CONSUME_SCRIPT=/usr/src/paperless/scripts/removePdfPassword.py labels: - "traefik.enable=true" - "traefik.http.routers.paperless.rule=Host(`paperless.${DOMAIN}`)" - "traefik.http.routers.paperless.entrypoints=web" - "traefik.http.services.paperless.loadbalancer.server.port=8000" - "traefik.docker.network=web" - "docker.group=paperless" networks: paperless: web: external: true