diff --git a/.archived/paperless-ngx/docker-compose.yml b/.archived/paperless-ngx/docker-compose.yml index c0276a7..e4a4ff2 100644 --- a/.archived/paperless-ngx/docker-compose.yml +++ b/.archived/paperless-ngx/docker-compose.yml @@ -1,36 +1,82 @@ services: - paperless_ngx_valkey: - container_name: paperless_ngx_valkey - image: docker.io/valkey/valkey:8.1.3 + paperless-ngx-db: + container_name: paperless-ngx-db + image: docker.io/library/postgres:17.5 restart: unless-stopped - command: valkey-server --save 60 1 --requirepass ${VALKEY_PASSWORD} + environment: + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} volumes: - - ${APPDATA_PATH}/paperless-ngx/valkey:/data - ports: - - ${VALKEY_PORT}:6379 - networks: - - backend + - ${APPDATA_PATH}/paperless-ngx/db:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "echo 'auth ${VALKEY_PASSWORD}\nping' | valkey-cli | grep PONG"] + test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] interval: 10s timeout: 5s retries: 3 start_period: 10s - paperless_ngx_server: - container_name: paperless_ngx_server + paperless-ngx-valkey: + container_name: paperless-ngx-valkey + image: docker.io/valkey/valkey:8.1.3 + restart: unless-stopped + volumes: + - ${APPDATA_PATH}/paperless-ngx/valkey:/data + networks: + - backend + healthcheck: + test: ["CMD-SHELL", "valkey-cli ping | grep PONG"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 10s + + paperless-ngx-tika: + container_name: paperless-ngx-tika + image: docker.io/apache/tika:3.2.2.0 + restart: unless-stopped + + paperless-ngx-gotenberg: + container_name: paperless-ngx-gotenberg + image: docker.io/gotenberg/gotenberg:8.21.1 + restart: unless-stopped + # The gotenberg chromium route is used to convert .eml files. We do not + # want to allow external content like tracking pixels or even javascript. + command: + - "gotenberg" + - "--chromium-disable-javascript=true" + - "--chromium-allow-list=file:///tmp/.*" + + paperless-ngx: + container_name: paperless-ngx image: ghcr.io/paperless-ngx/paperless-ngx:2.17.1 restart: unless-stopped depends_on: - paperless_ngx_valkey: + paperless-ngx-db: + condition: service_healthy + paperless-ngx-valkey: + condition: service_healthy + paperless-ngx-tika: + condition: service_healthy + paperless-ngx-gotenberg: condition: service_healthy environment: + - PAPERLESS_DBHOST=paperless-ngx-db + - PAPERLESS_DBENGINE=postgresql + - PAPERLESS_DBPORT=5432 + - PAPERLESS_DBNAME=${POSTGRES_DB} + - PAPERLESS_DBUSER=${POSTGRES_USER} + - PAPERLESS_DBPASS=${POSTGRES_PASSWORD} + - PAPERLESS_REDIS=redis://paperless-ngx-valkey:6379 + - PAPERLESS_TIKA_ENABLED=1 + - PAPERLESS_TIKA_ENDPOINT=http://paperless-ngx-tika:9998 + - PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://paperless-ngx-gotenberg:3000 - USERMAP_UID=${PUID} - USERMAP_GID=${PGID} - - PAPERLESS_TIME_ZONE=${TZ} + - PAPERLESS_URL=${PAPERLESS_URL} - PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY} - - PAPERLESS_URL=https://${TRAEFIK_DOMAIN} - - PAPERLESS_REDIS=redis://paperless_ngx_valkey:6379 + - PAPERLESS_TIME_ZONE=${TZ} + - PAPERLESS_OCR_LANGUAGE=${PAPERLESS_OCR_LANGUAGE} - PAPERLESS_FILENAME_FORMAT={correspondent}/{created_year}/{title} - PAPERLESS_OCR_DESKEW=false volumes: