diff --git a/paperlessngx.yaml b/paperlessngx.yaml new file mode 100644 index 0000000..117390b --- /dev/null +++ b/paperlessngx.yaml @@ -0,0 +1,124 @@ +# 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. + + +services: + paperless_webserver: + #The main Paperless-ngx service providing the web interface and document processing. + image: ghcr.io/paperless-ngx/paperless-ngx:latest + container_name: paperless_webserver + restart: unless-stopped + depends_on: + - paperless_db + - paperless_broker + - paperless_gotenberg + - paperless_tika + ports: + - "8010:8000" + volumes: + - /srv/docker/office/paperless-ngx/data:/usr/src/paperless/data + - /mnt/raid1/data/appdata/paperless-ngx/:/usr/src/paperless/media + - /srv/docker/office/paperless-ngx/export:/usr/src/paperless/export + - /srv/docker/office/paperless-ngx/consume:/usr/src/paperless/consume + environment: + TZ: America/Chicago + PAPERLESS_REDIS: redis://paperless_broker:6379 + PAPERLESS_DBHOST: paperless_db + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY} + PAPERLESS_URL: ${PAPERLESS_URL} + #The UID and GID of the user used to run paperless in the container. + USERMAP_GID: ${USERMAP_GID} + USERMAP_UID: ${USERMAP_UID} + labels: + - homepage.group=Office + - homepage.name=PaperlessNGX + - homepage.icon=paperlessngx.png + - homepage.href=${PAPERLESS_URL} + - homepage.description=Document Manager with OCR + - homepage.widget.type=paperlessngx + - homepage.widget.url=${PAPERLESS_URL} + - homepage.widget.key=${PAPERLESS_SECRET_KEY} + - homepage.widget.fields=["total", "inbox"] + - dockhand.url=${PAPERLESS_URL} + - rackpeek.tags=office + networks: + - proxy-net + + paperless_broker: + #Acts as the message broker for Paperless-ngx - processing scheduled tasks such as email fetching, index optimization and for training the automatic document matcher. + image: docker.io/library/redis:8 + container_name: paperless_broker_redis + restart: unless-stopped + #privileged: true + #sysctls: + # net.core.somaxconn : '511' + volumes: + - redisdata:/data + networks: + - proxy-net + labels: + - wud.watch=false + - rackpeek.name=paperless_broker + - rackpeek.tags=service + + paperless_db: + #The database server for storing Paperless-ngx data. + # Paperless-ngx is compatible with Django-supported versions of PostgreSQL and MariaDB and it is generally safe to update them to newer versions. + # However, you should always take a backup and follow the instructions from your database's documentation for how to upgrade between major versions + # Do not simply upgrade or downgrade the major version, as the database will not load anymore. See OneNote + image: postgres:18.4 #docker.io/library/postgres:18.3 + container_name: paperless_db_postgres + labels: + - rackpeek.name=paperless_db + - rackpeek.tags=database + restart: unless-stopped + volumes: + # IMPORTANT: As of v18, the PGDATA path is now version-specific in the official image (i.e just map to /var/lib/postgresql not /var/lib/postgresql/data) + - /srv/docker/office/paperless-ngx/postgresql:/var/lib/postgresql + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + TZ: America/Chicago + networks: + - proxy-net + + paperless_gotenberg: + #Provides document conversion services, enhancing Paperless-ngx's ability to consume various file formats. + image: docker.io/gotenberg/gotenberg:8.32.0 + container_name: paperless_gotenberg + 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. + labels: + - rackpeek.name=paperless_gotenberg + - rackpeek.tags=service + command: + - "gotenberg" + - "--chromium-disable-javascript=true" + - "--chromium-allow-list=file:///tmp/.*" + networks: + - proxy-net + + + paperless_tika: + # Offers content analysis and metadata extraction, further extending support for document types. + image: docker.io/apache/tika:latest + container_name: paperless_tika + restart: unless-stopped + labels: + - rackpeek.name=paperless_tika + - rackpeek.tags=service + networks: + - proxy-net + +volumes: + redisdata: + +networks: + proxy-net: + external: true \ No newline at end of file