Docker Paperless installieren

Tags: linux docker paperless

Inhaltsverzeichnis

Installation und Einrichtung von Paperless-NGX mit Docker Compose

In diesem Beitrag zeige ich dir, wie du Paperless-NGX, eine Lösung für das digitale Dokumentenmanagement, mit Docker Compose einrichtest. Dabei legen wir den Fokus auf eine saubere Konfiguration, die leicht zu verwalten und sicher ist.

Ordnerstruktur vorbereiten

Als Erstes benötigst du einen Ordner, in dem alle Daten und Konfigurationsdateien des Containers gespeichert werden. Achte darauf, dass deine Festplatte genügend freien Speicherplatz bietet. Den Ordner legst du mit folgendem Befehl an:

mkdir -p /daten/docker/paperless

Docker Compose-Datei erstellen

Wechsle in den gerade erstellten Ordner und erstelle eine Datei namens docker-compose.yml. Diese Datei enthält die Konfiguration für die Container und deren Umgebung. Achte darauf, die Variablen wie Benutzername, Passwort und URL an deine Bedürfnisse anzupassen. Auch die Umgebungsdateien (.env und docker-compose.env) müssen im gleichen Ordner wie die docker-compose.yml liegen, damit alles korrekt funktioniert.

docker-compose.yml

# Docker Compose für Paperless-NGX
services:
  broker:
    image: docker.io/library/redis:7
    container_name: paperless-redis
    restart: unless-stopped
    volumes:
      - /daten/docker/paperless/redis:/data

  db:
    image: docker.io/library/postgres:15
    container_name: paperless-db
    restart: unless-stopped
    volumes:
      - /daten/docker/paperless/pgdata:/var/lib/postgresql/data
    env_file: .env
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: ${paperless_user}
      POSTGRES_PASSWORD: ${paperless_password}

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    container_name: paperless-webserver
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8085:8000"
    volumes:
      - /daten/docker/paperless/data:/usr/src/paperless/data
      - /daten/docker/paperless/media:/usr/src/paperless/media
      - /daten/docker/paperless/export:/usr/src/paperless/export
      - /daten/docker/paperless/consume:/usr/src/paperless/consume
    env_file: 
      - docker-compose.env
      - .env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_DBUSER: ${paperless_user}
      PAPERLESS_DBPASS: ${paperless_password}

Environment-Dateien

docker-compose.env

In der Datei docker-compose.env definierst du Paperless-spezifische Einstellungen. Diese Datei könnte wie folgt aussehen:

# Paperless-Einstellungen
PAPERLESS_URL=https://paperless.lan.reish.de
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=deu

# Eigene Einstellungen
PAPERLESS_APP_TITLE=DMS
PAPERLESS_FILENAME_FORMAT={correspondent}/{created_year}/{title}
PAPERLESS_OCR_MODE=redo
PAPERLESS_OCR_CLEAN=clean

.env

Hier speicherst du sensible Daten wie Benutzername und Passwort, um diese aus der Hauptkonfiguration auszulagern. So schützt du deine Daten vor ungewolltem Zugriff oder versehentlichen Leaks. Der Inhalt könnte so aussehen:

paperless_user=<dein-Benutzer>
paperless_password=<dein-Passwort>
paperless_db=<dein-Datenbankname>

Ersetze <dein-Benutzer>, <dein-Passwort> und <dein-Datenbankname> durch deine eigenen Werte.

Container starten

Nachdem du die Dateien erstellt und angepasst hast, kannst du die Container starten:

  1. Erstelle die Container und starte sie im Hintergrund:

    docker compose up -d
    
  2. Lege einen Superuser für die Anmeldung in Paperless-NGX an:

     docker exec -it paperless-webserver /bin/bash
     python3 manage.py createsuperuser
    

    Gib hier deinen Benutzernamen, deine E-Mail-Adresse und dein Passwort ein, um den Zugang zu erstellen.

Nun kannst du dich über die Web Oberfläche mit den eben erstellten Anmeldeinformationen einloggen. Falls du eine visuelle Anleitung bevorzugst findest du hier ein hilfreiches Video