Direkt zum Hauptinhalt

Installation

Die Installation ist Dank Docker schnell und einfach erledigt.

Am besten zuerst einen neuen Ordner anlegen, in welchen dann eine docker-compose.yml sowie eine docker-compose.env angelegt werden.

Zuerst folgende Docker Compose Konfiguration anpassen und speichern.

services:
  paperless_redis:
    image: redis
    container_name: paperless_redis
    restart: unless-stopped
    volumes:
      - /pfad/zu/paperless-ngx/redis_data:/data
  paperless_db:
    image: mariadb
    container_name: paperless_db
    restart: unless-stopped
    volumes:
      - /pfad/zu/paperless-ngx/db_data:/var/lib/mysql
    environment:
      MARIADB_HOST: paperless
      MARIADB_DATABASE: paperless
      MARIADB_USER: paperless
      MARIADB_PASSWORD: paperless
      MARIADB_ROOT_PASSWORD: paperless
  paperless_gotenberg:
    image: docker.io/gotenberg/gotenberg
    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.
    command:
      - "gotenberg"
      - "--chromium-disable-javascript=true"
      - "--chromium-allow-list=file:///tmp/.*"
  paperless_tika:
    image: ghcr.io/paperless-ngx/tika:latest
    container_name: paperless_tika
    restart: unless-stopped
  paperless_web:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: paperless_web
    restart: unless-stopped
    depends_on:
      - paperless_db
      - paperless_redis
      - paperless_gotenberg
      - paperless_tika
    ports:
      - "8000:8000"
    volumes:
      - /pfad/zu/paperless-ngx/data:/usr/src/paperless/data
      - /pfad/zu/paperless-ngx/media:/usr/src/paperless/media
      - /pfad/zu/paperless-ngx/export:/usr/src/paperless/export
      - /pfad/zu/paperless-ngx/consume:/usr/src/paperless/consume
    env_file: /pfad/zu/paperless-ngx/docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://paperless_redis:6379
      PAPERLESS_DBENGINE: mariadb
      PAPERLESS_DBHOST: paperless_db
      PAPERLESS_DBUSER: paperless # only needed if non-default username
      PAPERLESS_DBPASS: paperless # only needed if non-default password
      PAPERLESS_DBPORT: 3306
      PAPERLESS_TIKA_ENABLED: 1
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless_gotenberg:3000
      PAPERLESS_TIKA_ENDPOINT: http://paperless_tika:9998

Anstelle einer MariaDB kann auch PostgreSQL oder SQLite (würde ich nicht empfehlen) verwendet werden. Weitere Informationen hierzu können in der offiziellen Dokumentation nachgelesen werden: GitHub Paperless-ngx

Nun kann die docker-compose.env erstellt werden, welche folgenden Inhalt erhält. Bitte auch hier ggf. die Einstellungen nach Wunsch anpassen z. B. die Sprache für die OCR-Erkennung.

# 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=deu eng

###############################################################################
# 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/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

Nachdem die beiden Dateien erstellt und angepasst worden sind, können die Container erstellt und gestartet werden.

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Der erste Start dauert mehrere Sekunden, da die Datenbanken, Verzeichnisse usw. automatisch initialisiert werden. Diese Zeit kann genutzt werden, um auf der Kommandozeile einen Superadmin zu erstellen. Hierfür bitte folgenden Befehl ausführen (ggf. den Namen des Containers anpassen.

sudo docker compose exec -it paperless_web python3 manage.py createsuperuser

Anschließend steht die Weboberfläche unter http://localhost:8000 zur Verfügung und der soeben erstelle Superuser kann zum Login verwendet werden.

grafik.png

Nach dem erfolgreichen Login wird eine Willkommensseite angezeigt.

Hier wird eine Tour vorgeschlagen, welche die wichtigsten Funktionen kurz zeigt und erklärt. Diese ist unbedingt zu empfehlen, wenn Paperless vorher noch nie verwendet wurde.

grafik.png