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:
weitere Beiträge zu Paperless-NGX und Rasperry PI
- die richtigen Netzwerkeinstellungen für PiAlert im Docker
- Webseiten automatisch via FTP auf den Rasperry PI sichern (Backup)
- Welcher Rasperry PI ist der richtige für mich? 4er, 5,er mit 2GB, 4Gb,8GB Ram?
- Tipps beim Digitalisieren der Aktenordner mit Paperless-NGX (Papierloses Büro)
- Rasperry pi beim ersten Boot mit WLAN verbinden (headless / unattended firstboot)
- Troubleshooting Docker Container
- Rasperry Pi sicher betreiben
- Paperless-NGX auf dem Rasperry PI 4,5 installieren
- Paperless-NGX konfiguieren
- Docker auf dem Rasperry Pi installieren
- Portainer Agent installieren und mehrere Docker-Instanzen verbinden
- PiHole über Docker Compose auf dem RasperryPI installieren und Backup wiederherstellen