From dd4ac1c72bf607ee2e42095647d63060b126e699 Mon Sep 17 00:00:00 2001 From: john Date: Thu, 27 Nov 2025 16:27:34 +0000 Subject: [PATCH] Add paperless-ngx/docker-compose.yml Add in the requirement for the POSTGRES database container to alwyas run on the same node --- paperless-ngx/docker-compose.yml | 96 ++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 paperless-ngx/docker-compose.yml diff --git a/paperless-ngx/docker-compose.yml b/paperless-ngx/docker-compose.yml new file mode 100644 index 0000000..3d15fd5 --- /dev/null +++ b/paperless-ngx/docker-compose.yml @@ -0,0 +1,96 @@ +# Docker Compose file for running paperless from the docker container registry. +# This file contains everything paperless needs to run. +# Paperless supports amd64, arm and arm64 hardware. +# +# All compose files of paperless configure paperless in the following way: +# +# - Paperless is (re)started on system boot, if it was running before shutdown. +# - Docker volumes for storing data are managed by Docker. +# - Folders for importing and exporting files are created in the same directory +# as this file and mounted to the correct folders inside the container. +# - Paperless listens on port 8000. +# +# In addition to that, this Docker Compose file adds the following optional +# configurations: +# +# - Instead of SQLite (default), PostgreSQL is used as the database server. +# - Apache Tika and Gotenberg servers are started with paperless and paperless +# is configured to use these services. These provide support for consuming +# Office documents (Word, Excel, Power Point and their LibreOffice counter- +# parts. +# +# To install and update paperless with this file, do the following: +# +# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env' +# and '.env' into a folder. +# - Run 'docker compose pull'. +# - Run 'docker compose run --rm webserver createsuperuser' to create a user. +# - Run 'docker compose up -d'. +# +# For more extensive installation and update instructions, refer to the +# documentation. + +services: + broker: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - /mnt/cephfs/docker/paperless-ngx/redisdata:/data + + db: + image: docker.io/library/postgres:16 + restart: unless-stopped + deploy: + placement: + constraints: + - node.labels.database == here + volumes: + - /mnt/cephfs/docker/paperless-ngx/pgdata:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - db + - broker + - gotenberg + - tika + ports: + - "8600:8000" + volumes: + - /mnt/cephfs/docker/paperless-ngx/data:/usr/src/paperless/data + - /mnt/cephfs/docker/paperless-ngx/media:/usr/src/paperless/media + - /mnt/cephfs/docker/paperless-ngx/export:/usr/src/paperless/export + - /mnt/cephfs/docker/paperless-ngx/consume:/usr/src/paperless/consume + environment: + PAPERLESS_REDIS: redis://broker:6379 + PAPERLESS_DBHOST: db + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 +# + USERMAP_UID: 1000 + USERMAP_GID: 1000 + PAPERLESS_TIME_ZONE: Europe/London + PAPERLESS_OCR_LANGUAGE: eng +# + PAPERLESS_URL: https://wastebin.johnsnexus.click +# + gotenberg: + image: docker.io/gotenberg/gotenberg:8.7 + 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/.*" + + tika: + image: docker.io/apache/tika:latest + restart: unless-stopped