Paperless-ngx: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Chris (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Chris (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 5: | Zeile 5: | ||
* dpkg-reconfigure tzdata | * dpkg-reconfigure tzdata | ||
* dpkg-reconfigure locales | * dpkg-reconfigure locales | ||
* apt install python3 python3-pip python3-dev imagemagick fonts-liberation gnupg libpq-dev default-libmysqlclient-dev pkg-config libmagic-dev mime-support libzbar0 poppler-utils apt-transport-https man-db vim bash-completion openssh-server unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr redis tesseract-ocr-deu git locate curl wget python3.11-venv emacs-nox autoconf libtool libleptonica-dev curl wget vim | * apt install python3 python3-pip python3-dev imagemagick fonts-liberation gnupg libpq-dev default-libmysqlclient-dev pkg-config libmagic-dev mime-support libzbar0 poppler-utils apt-transport-https man-db vim bash-completion openssh-server unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr redis tesseract-ocr-deu git locate curl wget python3.11-venv emacs-nox autoconf libtool libleptonica-dev curl wget vim sudo mariadb-server | ||
* adduser paperless --system --home /opt/paperless-ngx --group | * adduser paperless --system --home /opt/paperless-ngx --group | ||
* curl -O -L https://github.com/paperless-ngx/paperless-ngx/releases/download/v2.1.3/paperless-ngx-v2.1.3.tar.xz | * curl -O -L https://github.com/paperless-ngx/paperless-ngx/releases/download/v2.1.3/paperless-ngx-v2.1.3.tar.xz | ||
| Zeile 13: | Zeile 13: | ||
* mkdir data | * mkdir data | ||
* mkdir consume | * mkdir consume | ||
* chown -R paperless:paperless . | |||
* chown paperless:paperless media | * chown paperless:paperless media | ||
* chown paperless:paperless data | * chown paperless:paperless data | ||
| Zeile 54: | Zeile 55: | ||
PAPERLESS_STATICDIR=../static | PAPERLESS_STATICDIR=../static | ||
#PAPERLESS_FILENAME_FORMAT= | #PAPERLESS_FILENAME_FORMAT= | ||
PAPERLESS_FILENAME_FORMAT={{owner_username}}/{{correspondent}}/{{document_type}}/{{created_year}}/{{title}} | |||
PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=true | PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=true | ||
| Zeile 98: | Zeile 100: | ||
#PAPERLESS_CONSUMER_IGNORE_PATTERNS=[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"] | #PAPERLESS_CONSUMER_IGNORE_PATTERNS=[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"] | ||
#PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=false | #PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=false | ||
PAPERLESS_CONSUMER_ENABLE_BARCODES=true | |||
#PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT | #PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT | ||
#PAPERLESS_CONSUMER_BARCODE_UPSCALE=0.0 | #PAPERLESS_CONSUMER_BARCODE_UPSCALE=0.0 | ||
| Zeile 158: | Zeile 160: | ||
* apt install docker-compose | * apt install docker-compose | ||
* docker run -d -p 127.0.0.1:9998:9998 apache/tika | * docker run -d -p 127.0.0.1:9998:9998 apache/tika | ||
* docker run -d -p 127.0.0.1:3000:3000 gotenberg/gotenberg: | * docker run -d -p 127.0.0.1:3000:3000 gotenberg/gotenberg:8 | ||
== Update == | == Update == | ||
* wget aktuellstes tar. | * wget aktuellstes tar.xz | ||
* systemctl stop paperless-* | * systemctl stop paperless-* | ||
* tar -xf <release.tar. | * tar -xf <release.tar.xz> -C/opt/ | ||
* cd /opt/paperless-ngx | * cd /opt/paperless-ngx | ||
* cp -av paperless.conf.keep paperless.conf | * cp -av paperless.conf.keep paperless.conf | ||
| Zeile 173: | Zeile 175: | ||
* cd src | * cd src | ||
* python3 manage.py migrate | * python3 manage.py migrate | ||
== Fixes == | |||
=== NLTK Fix === | |||
<pre> | |||
sudo -Hu paperless -s | |||
source /opt/paperless-ngx/venv-paperless-ngx/bin/activate | |||
cd src | |||
python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/mnt/storage/dms/nltk_data" punkt_tab | |||
</pre> | |||
=== Logs show "possible incompatible database column" when deleting documents === | |||
You may see errors when deleting documents like: | |||
<pre> | |||
Data too long for column 'transaction_id' at row 1 | |||
</pre> | |||
This error can occur in installations which have upgraded from a version of Paperless-ngx that used Django 4 (Paperless-ngx versions prior to v2.13.0) with a MariaDB/MySQL database. Due to the backawards-incompatible change in Django 5, the column "documents_document.transaction_id" will need to be re-created, which can be done with a one-time run of the following management command: | |||
<pre> | |||
sudo -Hu paperless -s | |||
source /opt/paperless-ngx/venv-paperless-ngx/bin/activate | |||
cd src | |||
python3 manage.py convert_mariadb_uuid | |||
</pre> | |||
== Komplette Neuinstallation inkl. Komplettrestore == | |||
* lxc init images:debian/12 paperless-ngx | |||
* lxc start papalass | |||
* lxc shell papalass | |||
* passwd | |||
Anschliessend vorgehen wie bei [[#Installation]] | |||
* die gesicherte ZIP-Datei des exports auf den neuen Paperless-Server kopieren und nach /temp entpacken | |||
* sudo -Hu paperless -s | |||
* source /opt/paperless-ngx/venv-paperless-ngx/bin/activate | |||
* cd src | |||
* python3 manage.py document_importer /temp/ | |||
Aktuelle Version vom 17. August 2025, 22:36 Uhr
Installation
- sudo lxc-create -n paperless-ngx -B zfs -t download -- --dist debian --release bookworm --arch amd64
- dpkg-reconfigure tzdata
- dpkg-reconfigure locales
- apt install python3 python3-pip python3-dev imagemagick fonts-liberation gnupg libpq-dev default-libmysqlclient-dev pkg-config libmagic-dev mime-support libzbar0 poppler-utils apt-transport-https man-db vim bash-completion openssh-server unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr redis tesseract-ocr-deu git locate curl wget python3.11-venv emacs-nox autoconf libtool libleptonica-dev curl wget vim sudo mariadb-server
- adduser paperless --system --home /opt/paperless-ngx --group
- curl -O -L https://github.com/paperless-ngx/paperless-ngx/releases/download/v2.1.3/paperless-ngx-v2.1.3.tar.xz
- tar -xf paperless-ngx-v2.1.3.tar.xz -C/opt/
- cd /opt/paperless-ngx
- mkdir media
- mkdir data
- mkdir consume
- chown -R paperless:paperless .
- chown paperless:paperless media
- chown paperless:paperless data
- chown paperless:paperless consume
- sudo -Hu paperless python3 -m venv venv-paperless-ngx
- sudo -Hu paperless -s
- . venv-paperless-ngx/bin/activate
- pip3 install -r requirements.txt
- cd src
- vim /opt/paperless-ngx/paperless.conf
# Have a look at the docs for documentation.
# https://docs.paperless-ngx.com/configuration/
# Debug. Only enable this for development.
#PAPERLESS_DEBUG=false
# Required services
PAPERLESS_REDIS=redis://localhost:6379
PAPERLESS_DBENGINE=mariadb
PAPERLESS_DBHOST=shodan.intern.darkrealm.dyndns.org
PAPERLESS_DBPORT=3306
PAPERLESS_DBNAME=paperless
PAPERLESS_DBUSER=paperless
PAPERLESS_DBPASS=paperless
PAPERLESS_DBSSLMODE=DISABLED
# Paths and folders
#PAPERLESS_CONSUMPTION_DIR=../consume
#PAPERLESS_DATA_DIR=../data
#PAPERLESS_TRASH_DIR=../trash
#PAPERLESS_MEDIA_ROOT=../media
PAPERLESS_CONSUMPTION_DIR=/mnt/storage/dms/consume
PAPERLESS_DATA_DIR=/mnt/storage/dms/data
PAPERLESS_TRASH_DIR=/mnt/storage/dms/trash
PAPERLESS_MEDIA_ROOT=/mnt/storage/dms/media
PAPERLESS_STATICDIR=../static
#PAPERLESS_FILENAME_FORMAT=
PAPERLESS_FILENAME_FORMAT={{owner_username}}/{{correspondent}}/{{document_type}}/{{created_year}}/{{title}}
PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=true
# Security and hosting
PAPERLESS_SECRET_KEY=Peem7AhD
PAPERLESS_URL=https://paperless.darkrealm.dyndns.org
#PAPERLESS_CSRF_TRUSTED_ORIGINS=https://example.com # can be set using PAPERLESS_URL
#PAPERLESS_ALLOWED_HOSTS=example.com,www.example.com # can be set using PAPERLESS_URL
#PAPERLESS_CORS_ALLOWED_HOSTS=https://localhost:8080,https://example.com # can be set using PAPERLESS_URL
#PAPERLESS_FORCE_SCRIPT_NAME=
#PAPERLESS_STATIC_URL=/static/
#PAPERLESS_AUTO_LOGIN_USERNAME=
#PAPERLESS_COOKIE_PREFIX=
#PAPERLESS_ENABLE_HTTP_REMOTE_USER=false
# OCR settings
PAPERLESS_OCR_LANGUAGE=eng+deu
#PAPERLESS_OCR_MODE=skip
#PAPERLESS_OCR_SKIP_ARCHIVE_FILE=never
#PAPERLESS_OCR_OUTPUT_TYPE=pdfa
#PAPERLESS_OCR_PAGES=1
#PAPERLESS_OCR_IMAGE_DPI=300
#PAPERLESS_OCR_CLEAN=clean
#PAPERLESS_OCR_DESKEW=true
#PAPERLESS_OCR_ROTATE_PAGES=true
#PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD=4
#PAPERLESS_OCR_USER_ARGS={}
#PAPERLESS_CONVERT_MEMORY_LIMIT=0
#PAPERLESS_CONVERT_TMPDIR=/var/tmp/paperless
PAPERLESS_ENABLE_NLTK=true
#PAPERLESS_NLTK_DIR=../nltk_data
PAPERLESS_NLTK_DIR=/mnt/storage/dms/nltk_data
# Software tweaks
#PAPERLESS_TASK_WORKERS=1
#PAPERLESS_THREADS_PER_WORKER=1
PAPERLESS_TIME_ZONE=Europe/Berlin
#PAPERLESS_CONSUMER_POLLING=10
#PAPERLESS_CONSUMER_DELETE_DUPLICATES=false
PAPERLESS_CONSUMER_RECURSIVE=true
#PAPERLESS_CONSUMER_IGNORE_PATTERNS=[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"]
#PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=false
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
#PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT
#PAPERLESS_CONSUMER_BARCODE_UPSCALE=0.0
#PAPERLESS_CONSUMER_BARCODE_DPI=300
#PAPERLESS_CONSUMER_ENABLE_COLLATE_DOUBLE_SIDED=false
#PAPERLESS_CONSUMER_COLLATE_DOUBLE_SIDED_SUBDIR_NAME=double-sided
#PAPERLESS_CONSUMER_COLLATE_DOUBLE_SIDED_TIFF_SUPPORT=false
#PAPERLESS_PRE_CONSUME_SCRIPT=/path/to/an/arbitrary/script.sh
#PAPERLESS_POST_CONSUME_SCRIPT=/path/to/an/arbitrary/script.sh
#PAPERLESS_FILENAME_DATE_ORDER=YMD
#PAPERLESS_FILENAME_PARSE_TRANSFORMS=[]
#PAPERLESS_NUMBER_OF_SUGGESTED_DATES=5
#PAPERLESS_THUMBNAIL_FONT_NAME=
#PAPERLESS_IGNORE_DATES=
#PAPERLESS_ENABLE_UPDATE_CHECK=
# Tika settings
PAPERLESS_TIKA_ENABLED=true
PAPERLESS_TIKA_ENDPOINT=http://localhost:9998
PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://localhost:3000
# Binaries
#PAPERLESS_CONVERT_BINARY=/usr/bin/convert
#PAPERLESS_GS_BINARY=/usr/bin/gs
- DB und User erstellen
- sudo -Hu paperless python3 manage.py migrate
- sudo -Hu paperless python3 manage.py createsuperuser
- cp -av ../scripts/*.service /etc/systemd/system/
- cp -av ../scripts/*.socket /etc/systemd/system/
- systemctl daemon-reload
ImageMagick Policy in /etc/ImageMagick-6/policy.xml anpassen:
<policy domain="coder" rights="read|write" pattern="PDF" />
JBIG2ENC compilen:
- git clone https://github.com/agl/jbig2enc
- cd jbig2enc
- ./autogen.sh
- ./configure
- make
- make install
NLTK installieren
- sudo -Hu paperless -s
- . venv-paperless-ngx/bin/activate
- python3
- import nltk
- nltk.download() (Nach /opt/paperless-ngx/nltk_data herunterladen)
- punkt, snowball_data und stopwords runterladen
Apache Tika und Gotenberg installieren (momentan über Docker)
- apt install docker-compose
- docker run -d -p 127.0.0.1:9998:9998 apache/tika
- docker run -d -p 127.0.0.1:3000:3000 gotenberg/gotenberg:8
Update
- wget aktuellstes tar.xz
- systemctl stop paperless-*
- tar -xf <release.tar.xz> -C/opt/
- cd /opt/paperless-ngx
- cp -av paperless.conf.keep paperless.conf
- chown paperless:paperless . -R
- sudo -Hu paperless -s
- source /opt/paperless-ngx/venv-paperless-ngx/bin/activate
- pip install -r requirements.txt
- cd src
- python3 manage.py migrate
Fixes
NLTK Fix
sudo -Hu paperless -s source /opt/paperless-ngx/venv-paperless-ngx/bin/activate cd src python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/mnt/storage/dms/nltk_data" punkt_tab
Logs show "possible incompatible database column" when deleting documents
You may see errors when deleting documents like:
Data too long for column 'transaction_id' at row 1
This error can occur in installations which have upgraded from a version of Paperless-ngx that used Django 4 (Paperless-ngx versions prior to v2.13.0) with a MariaDB/MySQL database. Due to the backawards-incompatible change in Django 5, the column "documents_document.transaction_id" will need to be re-created, which can be done with a one-time run of the following management command:
sudo -Hu paperless -s source /opt/paperless-ngx/venv-paperless-ngx/bin/activate cd src python3 manage.py convert_mariadb_uuid
Komplette Neuinstallation inkl. Komplettrestore
- lxc init images:debian/12 paperless-ngx
- lxc start papalass
- lxc shell papalass
- passwd
Anschliessend vorgehen wie bei #Installation
- die gesicherte ZIP-Datei des exports auf den neuen Paperless-Server kopieren und nach /temp entpacken
- sudo -Hu paperless -s
- source /opt/paperless-ngx/venv-paperless-ngx/bin/activate
- cd src
- python3 manage.py document_importer /temp/