From 76b061dd83d3bd6ae27861f670e385319a601529 Mon Sep 17 00:00:00 2001 From: chris Date: Fri, 21 Oct 2022 09:52:04 +0200 Subject: [PATCH] Introduce paperless for document management. --- paperless/.env | 1 + paperless/docker-compose.env | 6 ++ paperless/docker-compose.yml | 126 +++++++++++++++++++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 paperless/.env create mode 100644 paperless/docker-compose.env create mode 100644 paperless/docker-compose.yml diff --git a/paperless/.env b/paperless/.env new file mode 100644 index 0000000..0bd5be6 --- /dev/null +++ b/paperless/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=paperless diff --git a/paperless/docker-compose.env b/paperless/docker-compose.env new file mode 100644 index 0000000..24eb3a4 --- /dev/null +++ b/paperless/docker-compose.env @@ -0,0 +1,6 @@ +PAPERLESS_URL=https://paperless.fam-steinle.de +PAPERLESS_TIME_ZONE=Europe/Berlin +PAPERLESS_OCR_LANGUAGE=deu +PAPERLESS_SECRET_KEY=nhiW0Lgxf1o3J2uDNLJaq6WJHv75hyL9SnA71UfRzNVSC5jTm02q9aggdyAdOqbI +PAPERLESS_ADMIN_USER=chris +PAPERLESS_ADMIN_PASSWORD=uKJpQK6qqm&VmygNKxn^4#gUH$&9pwJ! diff --git a/paperless/docker-compose.yml b/paperless/docker-compose.yml new file mode 100644 index 0000000..5d8ee2f --- /dev/null +++ b/paperless/docker-compose.yml @@ -0,0 +1,126 @@ +# 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: + - paperless-redis:/data + networks: + - paperless + + db: + image: docker.io/library/postgres:13 + restart: unless-stopped + volumes: + - paperless-db:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + networks: + - paperless + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - db + - broker + - gotenberg + - tika + healthcheck: + test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - paperless-data:/usr/src/paperless/data + - paperless-media:/usr/src/paperless/media + - paperless-export:/usr/src/paperless/export + - 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 + networks: + - proxy + - paperless + labels: + - "traefik.enable=true" + - "traefik.http.routers.paperless.entrypoints=web" + - "traefik.http.routers.paperless.rule=Host(`paperless.fam-steinle.de`)" + - "traefik.http.routers.paperless.middlewares=paperless" + - "traefik.http.middlewares.paperless.redirectscheme.scheme=https" + - "traefik.http.routers.paperless-secure.entrypoints=websecure" + - "traefik.http.routers.paperless-secure.rule=Host(`paperless.fam-steinle.de`)" + - "traefik.http.routers.paperless-secure.service=paperless-secure" + - "traefik.http.routers.paperless-secure.tls=true" + - "traefik.http.routers.paperless-secure.tls.certresolver=myresolver" + - "traefik.http.services.paperless-secure.loadbalancer.server.port=8000" + + + gotenberg: + image: docker.io/gotenberg/gotenberg:7.4 + restart: unless-stopped + command: + - "gotenberg" + - "--chromium-disable-routes=true" + networks: + - paperless + + tika: + image: ghcr.io/paperless-ngx/tika:latest + restart: unless-stopped + networks: + - paperless + +volumes: + paperless-redis: + paperless-db: + paperless-data: + paperless-media: + paperless-export: + paperless-consume: + + +networks: + proxy: + external: true + paperless: + external: false + name: paperless