Paperless-NGX auf dem Rasperry PI 4,5 installieren

paperless beitrag

So! Aktuell sind meine Artikel sehr Rasperry Pi lastig und das liegt tatsächlich an Paperless NGX. Mein Kollege hatte es mir kürzlich vorgestellt und der Gedanke, meine Aktenordner zu digitalisieren und später noch alles ganz einfach wiederzufinden, motiviert mich sehr, mich mit Docker, Paperless-NGX und Co. auseinander zu setzen.

Paperless NGX ist ein freies Dokumentenmanagment System, welches wunderbar auf einem Rasperry PI 4,5 läuft. Auf einem Rasperry PI 3 würden auch noch alte Version vom Paperless NGX laufen. Das liegt daran, dass Paperless NGX in den aktuellen Versionen ARMv7 Systeme nicht mehr unterstützt und nur noch 64bit weiterentwickelt.

Das ist der Grund weshalb zwischen meinem Rasperry Pi 1,2,3 Zoo nun auch ein Rasperry PI 5 läuft. Final wird der Raspi5 mehrere ältere Raspis ersetzen.

Die Daten aus meiner Test-Instanz möchte ich nicht übernehmen, deshalb installiere ich Paperless noch mal von grundauf.

  • Dokumentation Paperless-NGX: https://docs.paperless-ngx.com/
  • Projectpage: https://github.com/paperless-ngx/paperless-ngx

Lange Rede kurze Sinn. Legen wir los.

Paperless-NGX via Docker Compose File installieren

Ich habe mich entschlossen Paperless-NGX mit SQL-Lite zu installieren, da meine Umgebung verhältnismäßig klein bleiben wird. Deshalb basiert meine docker-compose.yml auf der folgenden Datei: https://github.com/paperless-ngx/paperless-ngx/blob/main/docker/compose/docker-compose.sqlite.yml

Wer auch noch Portainer auf dem gleichen Pi zu laufen hat, muss entweder den Portainer auf einen anderen Port legen oder Paperless-NGX. Ich habe Paperless auf 8001 umgelegt.

cd docker-compose-data
mkdir paperless-ngx
sudo nano docker-compose.yml

meine docker-compose.yml

version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - broker
    ports:
      - "8001:8000"
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
volumes:
  data:
  media:
  redisdata:

Nach der docker-compose.yml benötigt ihr noch die docker-compose.env. In der Datei ist OCR für Deutsch und Englisch bereits konfiguriert. Du musst nur noch PAPERLESS_SECRET_KEY und PAPERLESS_URL anpassen. Die Datei basiert auf https://github.com/paperless-ngx/paperless-ngx/blob/main/docker/compose/docker-compose.env

sudo nano docker-compose.env
############################# docker-compose.env
# 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=http://192.168.178.142

# 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=6s6XXXXXjpischis

# 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

Anschließend könnt ihr den Container über „docker compose up“ starten. Diese mal ohne „-d“, damit ich mögliche Fehlermeldungen sehe. Läuft Paperless, wird es mit STRG+C beendet und noch mal über „docker-compose up -d“ endgültig gestartet.

den Ersten Nutzer in Paperless NGX anlegen

docker compose run --rm webserver createsuperuser

Ist das Paperless-NGX installiert, geht es an die Grundkonfiguration über die Webgui. Was es bei der Konfiguration in Paperless-NGX zu beachten gibt und wie ich es mit eingerichtet habe, könnt ihr unter dem folgenden Artikel nachlesen:

Paperless-NGX Grundeinstellung, Tags, Korrespondenten, Dokumententype, E-Mail-Abruf etc konfigurieren

weitere Beiträge zu Paperless-NGX und Rasperry PI