diff --git a/paperless/.env b/paperless/.env new file mode 100644 index 0000000..511a138 --- /dev/null +++ b/paperless/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=paperless \ No newline at end of file diff --git a/paperless/docker-compose.env b/paperless/docker-compose.env new file mode 100644 index 0000000..20a54fa --- /dev/null +++ b/paperless/docker-compose.env @@ -0,0 +1,47 @@ +# 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=1003 +USERMAP_GID=1003 + +# 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=deu + +############################################################################### +# 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.montana2000.freeddns.org + +# 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=JustSomeNonesenseSecretKeyIPutInHereForBeingSafe + +# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC. +PAPERLESS_TIME_ZONE=Europe/Berlin + +# The default language to use for OCR. Set this to the language most of your +# documents are written in. +PAPERLESS_OCR_LANGUAGE=deu + +# 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 + +PAPERLESS_CONSUMER_ASN_BARCODE_PREFIX=ASN +PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true +PAPERLESS_CONSUMER_ENABLE_BARCODES=true +PAPERLESS_CONSUMER_BARCODE_SCANNER=ZXING \ No newline at end of file diff --git a/paperless/docker-compose.yml b/paperless/docker-compose.yml new file mode 100644 index 0000000..1c9b03d --- /dev/null +++ b/paperless/docker-compose.yml @@ -0,0 +1,111 @@ +# 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. + +version: "3.4" +services: + broker: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - redisdata:/data + networks: + - traefik_web + + db: + image: docker.io/library/postgres:16 + restart: unless-stopped + volumes: + - pgdata:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + networks: + - traefik_web + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - db + - broker + - gotenberg + - tika + ports: + - "8010:8000" + volumes: + - data:/usr/src/paperless/data + - media:/usr/src/paperless/media + - /home/nils/paperless/export:/usr/src/paperless/export + - /home/nils/paperless/consume:/usr/src/paperless/consume + env_file: docker-compose.env + 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 + labels: + - "traefik.enable=true" + - "traefik.http.routers.paperless.rule=Host(`paperless.montana2000.freeddns.org`)" + - "traefik.docker.network=proxy" + networks: + - traefik_web + + gotenberg: + image: docker.io/gotenberg/gotenberg:7.10 + 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/.*" + networks: + - traefik_web + + tika: + image: ghcr.io/paperless-ngx/tika:latest + restart: unless-stopped + networks: + - traefik_web + +volumes: + data: + media: + pgdata: + redisdata: + +networks: + traefik_web: + external: true \ No newline at end of file