Großes Update! paperless-ngx 3.0 (beta rc1) veröffentlicht. Online-Demo hier verfügbar!

Hallo zusammen,

es gibt das vermutlich bisher größte Update in der Entwicklung von paperless-ngx:
paperless-ngx 3.0 wurde gestern Abend auf GitHub veröffentlicht (zunächst noch in der beta-Version Release Candidate (rc) 1.

Die Liste an neuen Features, aber auch breaking changes ist lang, ich habe euch hier die wichtigsten Änderungen zusammengefasst (weiter unten auch der offizielle Changelog).

Wichtig: Alle wichtigen neuen Features werden auch in unseren umfangreichen Kurs zu paperless-ngx (paperless-ngx Masterclass) eingepflegt!

Neue Features (Auswahl)

Integrierte KI-Funktionen

Vermutlich mit eine der größten Neuerungen: Auf Wunsch (opt-in!) kann man jetzt paperless-ngx mit einem KI-Anbieter eurer Wahl (meine dringende Empfehlung: eure lokale KI! verbinden und Titel vorschlagen, Tags etc. vergeben, mit euren Dokumenten chatten und auch semantisch suchen (was das genau bedeutet, zeige ich bald bei YouTube).
Abgrenzung zu externen Tools wie paperless-ai oder auch meinem n8n-Workflow: Man muss es in paperless-ngx manuell antriggern, es passiert nicht automatisch.

Wer noch keine lokale KI am Laufen hat, dem lege ich unseren ausführlichen Kurs dazu wärmstens ans Herz: Videokurs: Eigenen KI-Server (LLM) selbst hosten und betreiben (KI-Mas — Digitalisierung mit Kopf

Datei-Versionen

Ab dieser Version unterstützt paperless-ngx endlich die Versionierung von Dokumenten. wie das genau aussieht, prüfen wir selbst noch genauer und bauen es natürlich in die Masterclass ein.

Share Link Bundles

Es ist nun möglich, mehr als nur ein Dokument per teilbarem Link zu versenden. Praktisch fürs Teilen mit dem Steuerberater etc, kein manuelles erstellen eines ZIP etc. mehr nötig

Schnellere Suche

Die Suche wurde massiv verbessert, da nun ein anderes Backend zum Einsatz kommt. Die genauen Performance-Vorteile werden wir uns natürlich noch genauer ansehen, aber erste Tests waren sehr positiv.

Parser Plugin-System

Ein Feature, das man so auf den ersten Blick vermutlich gar nicht beachten würde, das aber in meinen Augen mit den größten Einfluss haben wird. Es wird zukünftig möglich sein, Plugins zu bauen, mit denen man eigene Dokumenten-Parser implementieren kann.
Vermutlich wird es dadurch bald auch für andere Dateitypen Parser geben, ich hoffe vor allem auf x-Rechnung.

Gespeicherte Ansichten teilen

Bisher konnte man gespeicherte Ansichten nur selbst erstellen, in einer Firma mit 30 Mitarbeitern muss man also 30 mal eine Ansicht erstellen (oder über die API automatisieren, was wir bei Kunden gemacht haben). Jetzt sind diese Ansichten teilbar, was diesen Prozess deutlich vereinfacht.

Breaking Changes

Leider ergeben sich mit v3 auch einige Breaking Changes, also Änderungen, die mit vorigen Versionen nicht mehr kompatibel sind. Wir erstellen gerade eine genaue Liste, diese werde ich hier einpflegen.

Sobald das YouTube-Video zur Version 3 fertig ist, werde ich es hier noch integrieren.

Demo: Gleich ausprobieren

Ich habe unsere paperless-ngx-Demo auf die neuste Beta-Version gezogen, ihr könnt die neue Version direkt ausprobieren:

Offizieller Changelog

Siehe Release Paperless-ngx v3.0.0-beta.rc1 · paperless-ngx/paperless-ngx · GitHub

paperless-ngx 3.0.0-beta.rc1

Breaking Changes

Notable Changes

Features / Enhancements

Bug Fixes

  • Fix: avoid unnecessary close_old_connections in Celery task dispatch @stumpylog (#12701)
  • Fix: apply tag changes directly to document in db @shamoon (#12664)
  • Fix: use only allauth login/logout endpoints @shamoon (#12639)
  • Fix: Use FileResponse for file API responses @stumpylog (#12638)
  • Fix: correctly scope mail account enumeration @shamoon (#12636)
  • Fix: Changes bare metal webserver to use uvloop @stumpylog (#12626)
  • Fixhancement: Exact custom field monetary exact searching @stumpylog (#12592)
  • Fix: relative added date check visibility @shamoon (#12600)
  • Fix: prevent intermediate change event when CustomFieldQueryAtom operator changes type @ggouzi (#12597)
  • Fix: reject invalid requests to API notes endpoint @ggouzi (#12582)
  • Fix: do not submit permissions for non-owners @shamoon (#12571)
  • Fix: prevent duplicate parent tag IDs @shamoon (#12522)
  • Fixhancement: include sharelinks + bundles in export/import @shamoon (#12479)
  • Fix: dont defer tag change application in workflows @shamoon (#12478)
  • Fix: limit share link viewset actions @shamoon (#12461)
  • Fix: Respect workflow change_groups during consumption @stumpylog (#12431)
  • Fix: add fallback ordering for documents by id after created @shamoon (#12440)
  • Fix: validate date CF value in serializer @shamoon (#12410)
  • Fix: Scope the workflow saves to prevent clobbering filename/archive_filename @stumpylog (#12390)
  • Fix: don’t try to usermod/groupmod when non-root + update docs (#12365) @stumpylog (#12391)
  • Fix: avoid moving files if already moved @shamoon (#12389)
  • Fix: remove pagination from document notes api spec @shamoon (#12388)
  • Fix: fix file button hover color in dark mode @shamoon (#12367)
  • Fix: Don’t try to update the user when running as non-root @stumpylog (#12365)
  • Fixhancement: only offer basic auth for appropriate requests @shamoon (#12362)
  • Fix: correct dropdown list active color in dark mode @shamoon (#12328)
  • Fixhancement: clear descendant selections in dropdown when parent toggled @shamoon (#12326)
  • Fix: prevent wrapping with larger amounts of tags on small cards, reset moreTags setting to correct count @shamoon (#12302)
  • Fix: prevent stale db filename during workflow actions @shamoon (#12289)
  • Fix: support string coercion in filepath jinja templates @shamoon (#12244)
  • Fix: use maxsplit=1 in Redis URL parsing to handle URLs with multiple colons @cryptomilk (#12239)
  • Fix: apply ordering after annotating tag document count @shamoon (#12238)
  • Fix: enforce path limit for db filename fields @shamoon (#12235)
  • Fixhancement: show sequential + id version labels, fix padding @shamoon (#12196)
  • Fixhancement: config option reset @shamoon (#12176)
  • Fix: correct page count by separating display vs collection sizes for tags @shamoon (#12170)
  • Fix: correct user dropdown button icon styling @shamoon (#12092)
  • Fix: Handle an OOM kill of celery workers in the task handler @stumpylog (#12040)
  • Performance fix: use subqueries to improve object retrieval in large installs @shamoon (#11950)
  • Fix: re-run ASN check after barcode detection @shamoon (#11681)
  • Fix: prevent infinite loading crash in mail component @shamoon (#11978)
  • Fix: fix broken docker create_classifier command in 2.20.6 @shamoon (#11965)
  • Fix: extract all ids for nested tags @shamoon (#11888)
  • Fixhancement: change date calculation for ‚this year‘ to include future documents @shamoon (#11884)
  • Fix: Running management scripts under rootless could fail @stumpylog (#11870)
  • Fix: use correct field id for overrides @shamoon (#11869)
  • Fix: ensure css color-scheme for dark mode @shamoon (#11855)
  • Fix: fix tag list horizontal scroll, again @shamoon (#11839)
  • Fix: ensure horizontal scroll for long tag names in list, wrap tags without parent @shamoon (#11811)
  • Fix: use explicit order field for workflow actions @shamoon (#11781)

Documentation

Maintenance

Habe mein Testsystem auf die Beta Version aktuallisiert. Leider funktioniert bei mir nicht mehr der Emailabruf.

Wie schaut denn das Log dazu aus?

Ich weiß nicht, ob ich diesen Schritt mache weil bisher alles fein läuft….brauche privat keine KI und wie war das noch gleich….never change a running System

2 „Gefällt mir“

@Stefan Ich wünsche mir neben der Vorstellung der neuen Funktionen eine gute Anleitung zur Migration von Version 2 nach Version 3. Gerade für die Installation entsprechend Masterclass wär das super.

Dabei ist der Migration-Guide aus den Release notes von Paperless-NGX der beste Anlaufpunkt.
Siehe: [Beta] Paperless-ngx v3.0.0 Beta by shamoon · Pull Request #12713 · paperless-ngx/paperless-ngx · GitHub

Und der Guide: paperless-ngx/docs/migration-v3.md at beta · paperless-ngx/paperless-ngx · GitHub

Danke im Voraus.

Der Emailabruf lief in der 2.20.15 fehlerfrei durch. Habe dann die Version 3.0.0 eingespielt. Erst wenn ein neues Dokument gefunden wird dann bekomme ich diese Meldung. Das ganze läuft bei mir unter Proxmox und in einem LXC

Error while processing mail 278: Starting chords requires a result backend to be configured.

Note that a group chained with a task is also upgraded to be a chord,

as this pattern requires synchronization.

Result backends that supports chords: Redis, Database, Memcached, and more.

Traceback (most recent call last):

File „/usr/src/paperless/src/paperless_mail/mail.py“, line 700, in _handle_mail_rule

processed_files = self._handle_message(message, rule)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/src/paperless/src/paperless_mail/mail.py“, line 741, in _handle_message

processed_elements += self._process_eml(

^^^^^^^^^^^^^^^^^^

File „/usr/src/paperless/src/paperless_mail/mail.py“, line 1003, in _process_eml

queue_consumption_tasks(

File „/usr/src/paperless/src/paperless_mail/mail.py“, line 358, in queue_consumption_tasks

).delay()

^^^^^^^

File „/usr/local/lib/python3.12/site-packages/celery/canvas.py“, line 353, in delay

return self.apply_async(partial_args, partial_kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/celery/canvas.py“, line 2156, in apply_async

return self.run(tasks, body, args, task_id=task_id, kwargs=kwargs, **merged_options)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/celery/canvas.py“, line 2249, in run

app.backend.apply_chord(

File „/usr/local/lib/python3.12/site-packages/celery/backends/base.py“, line 811, in apply_chord

self.ensure_chords_allowed()

File „/usr/local/lib/python3.12/site-packages/celery/backends/base.py“, line 1202, in ensure_chords_allowed

raise NotImplementedError(E_CHORD_NO_BACKEND.strip())

NotImplementedError: Starting chords requires a result backend to be configured.

Note that a group chained with a task is also upgraded to be a chord,

as this pattern requires synchronization.

Result backends that supports chords: Redis, Database, Memcached, and more.

Sieht für mich so aus als wenn da jetzt ein redis oder ähnlich Pflicht ist. Hast Du sowas bei Dir konfiguriert?

Auf der Github Seite habe ich nicht wirklich neues gefunden. Das einzige was neu in der docker-compose.yml ist das die Zeile PAPERLESS_DBENGINE

 environment:
   PAPERLESS_REDIS: redis://broker:6379
   PAPERLESS_DBHOST: db
   PAPERLESS_DBENGINE: postgresql

Du hattest von einem LXC geschrieben, ich dachte Du hast Paperless von Hand aufgesetzt.
Du scheinst aber im LXC ein Docker am laufen zu haben und hast dann Paperless und Co als Docker Container ausgerollt. Korrekt?
Dann sollte eigentlich redis auch vorhanden sein.
Was sagt

docker container ls

bei Dir?

Hatte gerade paperless komplett neu installiert nach den vorgaben von github. paperless weiss das es eine neue email gibt kann sie aber nicht verarbeiten. Ist eben noch Beta-Status. Also alten container wieder zurückspielen und erstmal mit version 2.20.15 weiter arbeiten. Außerdem gibt es in der Version 3 einiges in den konfigurationen zu ändern (yml und env). Muss mir dann auch in Ruhe die MigrationV3 auf Docker Hub durchlesen. Danke erstmal für deine Hilfe

1 „Gefällt mir“