Addon: Paperless-ngx

Hi, ich habe mich diese Woche auch mal in an die Installation von Libre Workspace gewagt. Super Projekt mit viel Potential.

Beim Einbinden von Parperless mit der hier angebotenen zip Datei habe ich ebenfalls diesen Fehler gehabt.

Der Fehler liegt in der Datei docker-composer.yaml beim JSON Eintrag von PAPERLESS_SOCIALACCOUNT_PROVIDERS. Dort muss in Zeile 47 das Komma entfernt werden, dann läuft die Installation problemlos.
Die Anmeldung über die Paperless-Anmeldung funktioniert, jedoch bekomme ich einen “Server Error (500)” wenn ich mich bei Paperless über “anmelden mit Libre Workspace” einloggen möchte.
docker-compose logs spuckt mir folgenden Fehler aus

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='portal.int.de', port=443): Max retries exceeded with url: /openid/.well-known/openid-configuration (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7fee88338290>: Failed to resolve 'portal.int.de' ([Errno -2] Name or service not known)"))

Konnte bisher leider keine Lösung dafür finden.

Bei mir hat es wie folgt funktioniert:

  1. In der docker-compose.yml habe ich die Verbindung wie folgt eingefügt:

PAPERLESS_APPS: “allauth.socialaccount.providers.openid_connect”
PAPERLESS_SOCIALACCOUNT_PROVIDERS: ‘{“openid_connect”: {“APPS”: [{“provider_id”: “libreworkspace”,“name”: “Libre Workspace”,“client_id”: “XXXX”,“secret”: “XXX”,“settings”: { “server_url”: “https://portal.XXX.tld/openid/.well-known/openid-configuration”}}]}}’

Die client_ID und secret der OpenIDConnect aus LibreWorkspace entnehmen.

  1. Danach mit admin “konventionell (Username/PW” in Paperless einloggen und dort BenutzerInnen mit den entsprechenden Berechtigungen anlegen, z.B. user1, user2 …

  2. Dann mit dem Benutzer/der Benutzerin (zB user1), der/die sich in Paperless via OpenID einloggen können soll, sich in Libre-Workspace anmelden, von dort aus (!) Paperless aufrufen und sich konventionell (user1, PW) einloggen und dann über Profil die Verbindung zu libreworkspace als OpenID-Anbieter genehmigen. Anschliessend kann sich user1 per OpenID anmelden.

1 „Gefällt mir“

Stimmt, mein Fehler. Zip ist aktualisiert :slight_smile:

2 „Gefällt mir“

Moin, erstmal 1000 Dank, für das Addon von Paperless. Leider habe ich ein kleines Problem mit der Persistenz der Daten - und zwar aller Daten in Paperless. Weder die Datenbank noch die Dokumente werden dauerhaft gespeichert :frowning:
Die Einträge in yml und env sehen so aus, wie sie das Script vorgibt. Im Gegensatz zur Original-Paperless.yml werden allerdings UID/GID gesetzt.
Meine Ordner sehen so aus:

drwxr-xr-x  2 www-data www-data 4096 19. Mai 15:39 consume
-rw-r--r--  1 root     root      339 19. Mai 15:31 docker-compose.env
-rw-r--r--  1 root     root     1579 19. Mai 15:27 docker-compose.yml
drwxr-xr-x  2 www-data www-data 4096 19. Mai 15:27 export
drwxr-xr-x  2 root     root     4096 19. Mai 15:27 pgdata

Der Datenordner sieht so aus:

drwxr-xr-x 2 root root 4096 19. Mai 15:33 data
drwxr-xr-x 2 root root 4096 19. Mai 15:33 media

Die eingescannten Ideen sind etwa hier gespeichert:
/var/lib/docker/volumes/b44e881e953093364d138e6d246ed724905e27148dfb42b3189a19437364f4a1/_data/documents/originals/0000001.pdf

Eigentlich habe ich “nur” das Addon installiert, die Ordner wurden manuell erzeugt.

Hat jemand eine Idee?
Viele Grüße
Marc

Was für eine Docker Version und was für eine Distribution hast Du?
Kannst Du mir mal den docker-compose File reinsenden, den Du verwendest?

Hi Jean,
vielen Dank für deine schnelle Reaktion. Ich habe den Libre-WS direkt von der ISO installiert.

> docker --version
Docker version 20.10.24+dfsg1, build 297e128
> uname -a
Linux la 6.1.0-35-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.137-1 (2025-05-07) x86_64 GNU/Linux

und docker-compose.yml sieht so aus:

services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - ./redisdata/data/paperless/data

  db:
    image: docker.io/library/postgres:16
    restart: unless-stopped
    volumes:
      - ./pgdata:/var/lib/postgresq/data/paperless/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: xyr
      POSTGRES_PASSWORD: xyz

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "13125:8000"
    volumes:
      - /data/paperless/data:/usr/src/paperles/data/paperless/data
      - /data/paperless/media:/usr/src/paperles/data/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_APPS: allauth.socialaccount.providers.openid_connect
      PAPERLESS_SOCIALACCOUNT_PROVIDERS: >
          {
            "openid_connect": {
              "APPS": [
                {
                  "provider_id": "libreworkspace",
                  "name": "Libre Workspace",
                  "client_id": "xyz",
                  "secret": "zyx",
                  "settings": {
                  "server_url": "https://portal.example.de/openid/.well-known/openid-configuration"
                  }
                }
              ],
              "OAUTH_PKCE_ENABLED": "True"
            }
          }

Die Daten und Dokumente müssten im Ordner /data/paperless/ gespeichert werden.
Hast Du da mal nachgesehen?

ja, der Ordner ist leider leer :frowning: Die Dokumente sind hier gespeichert:

/var/lib/docker/volumes/b44e881e953093364d138e6d246ed724905e27148dfb42b3189a19437364f4a1/_data/documents/originals/0000001.pdf

Und “natürlich” ist die VolumeID nach jedem Neustart eine andere. Ich habe gerade nochmal in die Logs geschaut. Bei jedem Neustart der Container werden die Ordner / Datenbank neu erzeugt. Unter anderem sehe ich dieses:

[init-user] Mapping GID for paperless to 33
[init-folders] Running with root privileges, adjusting directories and permissions
mkdir: created directory '/tmp/paperless'
mkdir: created directory '/usr/src/paperless/data/index'
mkdir: created directory '/usr/src/paperless/media/documents'
mkdir: created directory '/usr/src/paperless/media/documents/originals'
mkdir: created directory '/usr/src/paperless/media/documents/thumbnails'
changed ownership of '/usr/src/paperless/data' from www-data:1000 to paperless:paperless
changed ownership of '/usr/src/paperless/data/index' from root:root to paperless:paperless
changed ownership of '/usr/src/paperless/data/log' from www-data:1000 to paperless:paperless
changed ownership of '/usr/src/paperless/media' from www-data:1000 to paperless:paperless
changed ownership of '/usr/src/paperless/media/documents' from root:root to paperless:paperless
changed ownership of '/usr/src/paperless/media/documents/originals' from root:root to paperless:paperless
changed ownership of '/usr/src/paperless/media/documents/thumbnails' from root:root to paperless:paperless
changed ownership of '/tmp/paperless' from root:root to paperless:paperless
Connected to PostgreSQL

Irgendwie zieht die persistente Host-Zuordnung nicht

Mhm, aber der docker compose file sagt ja eigentlich was anderes. Eigentlich müsste da Docker entweder eine Fehlermeldung ausgeben, oder die Config fressen.
Ich schaue mir das mal auf einer Test-Maschine bei Gelegenheit an .

Ansonsten mal ein docker-compose down
und ein docker-compose up -d nochmal eingeben. Aber eigentlich sollte sich da nichts dran ändern.

sehr merkwürdig - die Docker-compose für Matrix, NocoDB etc. laufen ohne Probleme. Bei Paperless ist keines der Laufwerke persistent. Weder vom Webserver, aber auch nicht .pgdata und .redisdata.
Bei jedem compose down und compose up ist es wie eine Neuinstallation von Paperless.

ist dein user paperless in der gruppe docker?