Paperless: Unterschied zwischen den Versionen

Aus Wiki - Jochen Hammann
Zur Navigation springen Zur Suche springen
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
__TOC__
__TOC__


= Installation von Paperless unter Xubuntu 18.04 =
= Installation von Paperless 2.5.0 unter Xubuntu 18.04 =


Paperless ist auf [https://github.com/danielquinn/paperless Github] unter folgenden Link zu finden.
Paperless ist auf [https://github.com/danielquinn/paperless Github] unter folgenden Link zu finden.


Die Installation bzw. das Setup von Paperless ist [https://paperless.readthedocs.io/en/latest/setup.html hier] beschrieben. Bevor dies jedoch durchgeführt werden kann, müssten die [[https://paperless.readthedocs.io/en/latest/requirements.html hier]] beschriebenen Voraussetzungen erfüllt sein.
Die Installation bzw. das Setup von Paperless ist [https://paperless.readthedocs.io/en/latest/setup.html hier] beschrieben. Bevor dies jedoch durchgeführt werden kann, müssten die [https://paperless.readthedocs.io/en/latest/requirements.html hier] beschriebenen Voraussetzungen erfüllt sein.
 
<br/>


== Voraussetzungen installieren ==
== Voraussetzungen installieren ==


Zur Installation der Voraussetzungen werden folgenden Commands ausgeführt.
Zur Installation der [https://paperless.readthedocs.io/en/latest/requirements.html Voraussetzungen] werden folgenden Commands ausgeführt.
 
<br/>
 
'''GNU Privacy Guard'''


  gnupg ist bei Xubuntu ab Version 17.10 vorinstalliert.
  gnupg ist bei Xubuntu ab Version 17.10 vorinstalliert.
<br/>
'''Tesseract'''


  sudo apt install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
  sudo apt install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
<br/>
'''ImageMagic'''


  sudo apt install imagemagick imagemagick-doc  
  sudo apt install imagemagick imagemagick-doc  
<br/>
'''Unpaper'''


  sudo apt install unpaper libtiff-tools netpbm  
  sudo apt install unpaper libtiff-tools netpbm  
<br/>
'''libpoppler-cpp-dev'''


  sudo apt install libpoppler-cpp-dev
  sudo apt install libpoppler-cpp-dev
<br/>
'''optipng'''
sudo apt install optipng
<br/>
'''Python Virtual Environment'''
sudo apt install python-virtualenv
<br/>
'''g++'''
sudo apt install g++
<br/>
'''Python3 Development'''
sudo apt install python3-dev
<br/>
== Setup ==
Zum Durchführen des [https://paperless.readthedocs.io/en/latest/setup.html Setups] werden folgenden Commands ausgeführt.
<br/>
'''Paperless installieren'''
Entpacken und nach /opt/paperless kopieren
sudo chown -R '''$$user$$''':'''$$group$$''' /opt/paperless/
Die Platzhalter <code>$$user$$</code> und <code>$$group$$</code> müssen entsprechend ersetzt werden.
<br/>
'''Python-specific Requirements: Virtualenv'''
mkdir ~/virtualenv
mkdir ~/virtualenv/paperless
virtualenv --python=/usr/bin/python3 ~/virtualenv/paperless
source ~/virtualenv/paperless/bin/activate
pip install --requirement /opt/paperless/requirements.txt
<br/>
'''/opt/paperless/src'''
cd /opt/paperless/src
cp ../paperless.conf.example /etc/paperless.conf
Anpassen folgender Variablen der Ziel-Konfigurationsdatei (paperless.conf):
* <code>PAPERLESS_CONSUMPTION_DIR</code> und/oder
* <code>PAPERLESS_OCR_THREADS</code> und/oder
* <code>PAPERLESS_PASSPHRASE</code>
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver --insecure
Der Development Server läuft nun unter [http://localhost:8000/ http://localhost:8000/].
Nun muss eine neue Shell geöffnet werden.
./manage.py document_consumer
<br/>
== Ausführen des Document Consumers als Daemon ==
Das Ausführen des Document Consumers als Daemon wird in der Paperless Dikumentation [https://paperless.readthedocs.io/en/latest/setup.html#standard-bare-metal-systemd hier] beschrieben.
cp /opt/paperless/scripts/paperless-consumer.service /etc/systemd/system/
Danach sollte die Datei wie folgt modifiziert werden. Die Platzhalter <code>$$user$$</code> und <code>$$group$$</code> müssen entsprechend ersetzt werden.
#[Unit]
Description=Paperless consumer
[Service]
User='''$$user$$'''
Group='''$$group$$'''
ExecStart=/home/'''$$user$$'''/virtualenv/paperless/bin/python3 /opt/paperless/src/manage.py document_consumer 
[Install]
WantedBy=multi-user.target
Nun wir der Service aktiviert und gestartet.
systemctl enable paperless-consumer
systemctl start paperless-consumer
<br/>
== Hosten der Web Site durch einen Apache Web Server ==
Die Paperless Dokumentation beschreibt das Hosten von Paperless durch einen Apache Web Server [https://paperless.readthedocs.io/en/latest/setup.html#apache hier].
Zuerst muss der Apache2 Web Server installiert werden.
sudo apt install apache2
Dieser ist nun unter [http://localhost/ http://localhost/] erreichbar.
Paperless benötig das mod_wsgi. Dies wird wie folgt installiert.
sudo apt install libapache2-mod-wsgi-py3
Weiterhin muss der Paperless Installation und allen darunter liegenden Verzeichnissen und Dateien das Ausführungsrecht gegeben werden.
chmod -R a+x /opt/paperless/
Bevor nun der Virtual Host des Apache Servers angepasst wird, müssen alle statischen Komponenten kopiert werden. Hierzu führt man folgendes Kommando im Verzeichnis <code>/opt/paperless/src</code> aus.
./manage.py collectstatic
Als nächstes muss die Datei (der Virtual Host) <code>/etc/apache2/sites-available/000-default.conf</code> modifiziert werden. Im Folgenden ist ein möglicher Virtual Host dargestellt, welcher zu der obigen Paperless Konfiguration passt. Die Platzhalter <code>$$user$$</code> und <code>$$group$$</code> müssen entsprechend ersetzt werden.
<VirtualHost *:80>
    ServerName example.com
    Alias /static/ /opt/paperless/static/
    <Directory /opt/paperless/static>
        Require all granted
    </Directory>
    WSGIScriptAlias / /opt/paperless/src/paperless/wsgi.py
    WSGIDaemonProcess example.com user='''$$user$$''' group='''$$group$$''' threads=5 python-home=/home/'''$$user$$'''/virtualenv/paperless/ python-path=/opt/paperless/src:/opt/paperless/.env/lib/python3.4/site-packages
    WSGIProcessGroup example.com
    <Directory /opt/paperless/src/paperless>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>
<br/>
= Logging =
Das Log von Paperless kann mit Hilfe des Ubuntu System Journals eingesehen werden.
journalctl -f
<br/>
= Probleme und Lösungen =
== Paperless Consumer: Probleme beim Lesen von PDF Dateien ==
Ist im Paperless Log (journalctl) beim Einlesen einer PDF Datei die folgende Fehlermeldung zu sehen, so liegt dies an den Policy Einstellungen von '''ImageMagick'''.
convert-im6.q16: not authorized...
Dieses Problem lässt sich lösen, indem die Policy Einstellungen des Programms '''ImageMagick''' teilweise oder komplett gelöscht werden. Detailliert wird dies [https://askubuntu.com/questions/1081895/trouble-with-batch-conversion-of-png-to-pdf-using-convert hier] beschrieben. Der folgende Befehl entfernt die Policy Einstellungen komplett.
sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout
<br/>

Aktuelle Version vom 28. April 2019, 16:08 Uhr

Installation von Paperless 2.5.0 unter Xubuntu 18.04

Paperless ist auf Github unter folgenden Link zu finden.

Die Installation bzw. das Setup von Paperless ist hier beschrieben. Bevor dies jedoch durchgeführt werden kann, müssten die hier beschriebenen Voraussetzungen erfüllt sein.


Voraussetzungen installieren

Zur Installation der Voraussetzungen werden folgenden Commands ausgeführt.


GNU Privacy Guard

gnupg ist bei Xubuntu ab Version 17.10 vorinstalliert.


Tesseract

sudo apt install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng


ImageMagic

sudo apt install imagemagick imagemagick-doc 


Unpaper

sudo apt install unpaper libtiff-tools netpbm 


libpoppler-cpp-dev

sudo apt install libpoppler-cpp-dev


optipng

sudo apt install optipng


Python Virtual Environment

sudo apt install python-virtualenv


g++

sudo apt install g++


Python3 Development

sudo apt install python3-dev


Setup

Zum Durchführen des Setups werden folgenden Commands ausgeführt.


Paperless installieren

Entpacken und nach /opt/paperless kopieren
sudo chown -R $$user$$:$$group$$ /opt/paperless/

Die Platzhalter $$user$$ und $$group$$ müssen entsprechend ersetzt werden.


Python-specific Requirements: Virtualenv

mkdir ~/virtualenv
mkdir ~/virtualenv/paperless
virtualenv --python=/usr/bin/python3 ~/virtualenv/paperless
source ~/virtualenv/paperless/bin/activate
pip install --requirement /opt/paperless/requirements.txt


/opt/paperless/src

cd /opt/paperless/src
cp ../paperless.conf.example /etc/paperless.conf

Anpassen folgender Variablen der Ziel-Konfigurationsdatei (paperless.conf):

  • PAPERLESS_CONSUMPTION_DIR und/oder
  • PAPERLESS_OCR_THREADS und/oder
  • PAPERLESS_PASSPHRASE
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver --insecure

Der Development Server läuft nun unter http://localhost:8000/.

Nun muss eine neue Shell geöffnet werden.

./manage.py document_consumer


Ausführen des Document Consumers als Daemon

Das Ausführen des Document Consumers als Daemon wird in der Paperless Dikumentation hier beschrieben.

cp /opt/paperless/scripts/paperless-consumer.service /etc/systemd/system/

Danach sollte die Datei wie folgt modifiziert werden. Die Platzhalter $$user$$ und $$group$$ müssen entsprechend ersetzt werden.

#[Unit]
Description=Paperless consumer

[Service]
User=$$user$$
Group=$$group$$
ExecStart=/home/$$user$$/virtualenv/paperless/bin/python3 /opt/paperless/src/manage.py document_consumer  

[Install]
WantedBy=multi-user.target

Nun wir der Service aktiviert und gestartet.

systemctl enable paperless-consumer
systemctl start paperless-consumer 


Hosten der Web Site durch einen Apache Web Server

Die Paperless Dokumentation beschreibt das Hosten von Paperless durch einen Apache Web Server hier.

Zuerst muss der Apache2 Web Server installiert werden.

sudo apt install apache2

Dieser ist nun unter http://localhost/ erreichbar.

Paperless benötig das mod_wsgi. Dies wird wie folgt installiert.

sudo apt install libapache2-mod-wsgi-py3 

Weiterhin muss der Paperless Installation und allen darunter liegenden Verzeichnissen und Dateien das Ausführungsrecht gegeben werden.

chmod -R a+x /opt/paperless/

Bevor nun der Virtual Host des Apache Servers angepasst wird, müssen alle statischen Komponenten kopiert werden. Hierzu führt man folgendes Kommando im Verzeichnis /opt/paperless/src aus.

./manage.py collectstatic

Als nächstes muss die Datei (der Virtual Host) /etc/apache2/sites-available/000-default.conf modifiziert werden. Im Folgenden ist ein möglicher Virtual Host dargestellt, welcher zu der obigen Paperless Konfiguration passt. Die Platzhalter $$user$$ und $$group$$ müssen entsprechend ersetzt werden.

<VirtualHost *:80>
    ServerName example.com

    Alias /static/ /opt/paperless/static/
    <Directory /opt/paperless/static>
        Require all granted
    </Directory>

    WSGIScriptAlias / /opt/paperless/src/paperless/wsgi.py
    WSGIDaemonProcess example.com user=$$user$$ group=$$group$$ threads=5 python-home=/home/$$user$$/virtualenv/paperless/ python-path=/opt/paperless/src:/opt/paperless/.env/lib/python3.4/site-packages
    WSGIProcessGroup example.com

    <Directory /opt/paperless/src/paperless>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>


Logging

Das Log von Paperless kann mit Hilfe des Ubuntu System Journals eingesehen werden.

journalctl -f


Probleme und Lösungen

Paperless Consumer: Probleme beim Lesen von PDF Dateien

Ist im Paperless Log (journalctl) beim Einlesen einer PDF Datei die folgende Fehlermeldung zu sehen, so liegt dies an den Policy Einstellungen von ImageMagick.

convert-im6.q16: not authorized...

Dieses Problem lässt sich lösen, indem die Policy Einstellungen des Programms ImageMagick teilweise oder komplett gelöscht werden. Detailliert wird dies hier beschrieben. Der folgende Befehl entfernt die Policy Einstellungen komplett.

sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout