From 44183a35436975b037fd362bc45bc1e6290444de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Tue, 14 Mar 2023 14:26:13 +0100 Subject: [PATCH] Add paperless-ngx --- .env | 4 ++- docker-compose.yml | 65 ++++++++++++++++++++++++++++++++++++++++++++++ paperless-ngx.env | 42 ++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 1 deletion(-) create mode 100755 paperless-ngx.env diff --git a/.env b/.env index 2b7e155..05c77ff 100644 --- a/.env +++ b/.env @@ -57,4 +57,6 @@ STASH_INTERNAL_PORT=9999 NAVIDROME_EXTERNAL_PORT=4533 NAVIDROME_INTERNAL_PORT=4533 MALOJA_EXTERNAL_PORT=42010 -MALOJA_INTERNAL_PORT=42010 \ No newline at end of file +MALOJA_INTERNAL_PORT=42010 +PAPERLESS_EXTERNAL_PORT=8004 +PAPERLESS_INTERNAL_PORT=8000 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 54f65e4..84ab0b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -502,6 +502,71 @@ services: - "${DOCKER_STORAGE_PATH}/maloja:/data" restart: unless-stopped + redis: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - "${DOCKER_STORAGE_PATH}/redis:/data" + + paperless-ngx: + container_name: paperless-ngx + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - redis + - gotenberg + - tika + ports: + - "${PAPERLESS_EXTERNAL_PORT}:${PAPERLESS_INTERNAL_PORT}" + networks: + - public + profiles: + - base + healthcheck: + test: + [ + "CMD", + "curl", + "-fs", + "-S", + "--max-time", + "2", + "http://localhost:8000" + ] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - "${DOCKER_STORAGE_PATH}/paperless-ngx/data:/usr/src/paperless/data" + - "${DOCKER_STORAGE_PATH}/paperless-ngx/media:/usr/src/paperless/media" + - "${DOCKER_STORAGE_PATH}/paperless-ngx/export:/usr/src/paperless/export" + - "${DOCKER_STORAGE_PATH}/paperless-ngx/consume:/usr/src/paperless/consume" + env_file: paperless-ngx.env + environment: + PAPERLESS_REDIS: redis://redis:6379 + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + + gotenberg: + image: docker.io/gotenberg/gotenberg:7.6 + 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. + profiles: + - base + command: + - "gotenberg" + - "--chromium-disable-javascript=true" + - "--chromium-allow-list=file:///tmp/.*" + + tika: + image: ghcr.io/paperless-ngx/tika:latest + profiles: + - base + restart: unless-stopped + networks: loki: caddy: diff --git a/paperless-ngx.env b/paperless-ngx.env new file mode 100755 index 0000000..6e5281d --- /dev/null +++ b/paperless-ngx.env @@ -0,0 +1,42 @@ +# The UID and GID of the user used to run paperless in the container. Set this +# to your UID and GID on the host so that you have write access to the +# consumption directory. +#USERMAP_UID=1000 +#USERMAP_GID=1000 + +# Additional languages to install for text recognition, separated by a +# whitespace. Note that this is +# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the +# language used for OCR. +# The container installs English, German, Italian, Spanish and French by +# default. +# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster +# for available languages. +PAPERLESS_OCR_LANGUAGES=ces chi-sim + +############################################################################### +# Paperless-specific settings # +############################################################################### + +# All settings defined in the paperless.conf.example can be used here. The +# Docker setup does not use the configuration file. +# A few commonly adjusted settings are provided below. + +# This is required if you will be exposing Paperless-ngx on a public domain +# (if doing so please consider security measures such as reverse proxy) +#PAPERLESS_URL=https://paperless.example.com + +# Adjust this key if you plan to make paperless available publicly. It should +# be a very long sequence of random characters. You don't need to remember it. +#PAPERLESS_SECRET_KEY=change-me + +# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC. +PAPERLESS_TIME_ZONE=Europe/Prague + +# The default language to use for OCR. Set this to the language most of your +# documents are written in. +PAPERLESS_OCR_LANGUAGE=eng+ces+chi_sim + +# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx +#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX +#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required