paperless-ngx: Bare-Metal Installation aktualisieren

01| Voraussetzungen

Paperless-ngx in einem Proxmox LXC-Container als Bare-Metal-Version mit einem eigenen Python Virtual Environment (venv) und Postgres im Verzeichnis /opt/paperless installiert.  

02| Backout Vorbereitungen

Falls bei der Installation was schief geht, soll der Betrieb möglichst schnell wieder hergestellt werden können. Daher wird zunächst ein für den Proxmox-Container in dem Paperless-ngx installiert ist ein aktueller Snapshot erstellt.

Innerhalb des Containers wird zusätzlich ein Backup der paperless.conf erstellt:

cp /opt/paperless/paperless.conf /opt/paperless/paperless.$(date +%Y%m%d).conf

03| Betriebssystem aktualisieren

apt update
apt upgrade

Falls erforderlich sollte ggf. auch ein Upgrade der Distribution durchgeführt werden. Anleitungen, wie das durchgeführt wird, finden sich im Internet.

03.1| Postgresql-Cluster aktualisieren

Sollte bei einem Upgrade der Distribution auch eine neue postgresql-Version installiert werden, so sollte der postgresql-Cluster jetzt auch direkt mit aktualisiert werden. Mit folgenden Kommandos kann beispielsweise von postgresql-13 auf postgresql-15 aktualisiert werden:

# 1. Backup der Datenbank
sudo -u postgres pg_dumpall --cluster 13/main > /tmp/dump_13_main_$(date +%Y%m%d).sql
mv  /tmp/dump_13_main_*.sql /opt/paperless/

# 2. Der bei der Installation angelegte Default-Cluster muss gelöscht werden
pg_dropcluster --stop 15 main

# 3. Cluster aktualisieren
pg_upgradecluster 13 main

Wenn sicher ist, dass alles funktioniert hat können die alte Postgresql-Pakete deinstalliert werden:

apt remove postgresql-13 postgresql-client-13

04| Download des aktuellen Paperless-ngx Release

# 1. Download des aktuellen Releases von https://github.com/paperless-ngx/paperless-ngx/releases
cd /tmp
wget https://github.com/paperless-ngx/paperless-ngx/releases/download/v2.5.3/paperless-ngx-v2.5.3.tar.xz

# 2. Archiv entpacken
tar -xf  paperless-ngx-v2.5.3.tar.xz

# 3. paperless.conf umbennen, um überschreiben von Konfigurationapassungen zu vermeiden
cp paperless-ngx/paperless.conf paperless-ngx/paperless.conf.release

# 4. Überprüfen ob neue Konfigurationsparameter in die Konfiguration übernommen 
#    werden sollten
diff /opt/paperless/paperless.conf paperless-ngx/paperless.conf.release

05| Dependencies im OS installieren

Die jeweils für das Release zu installierenden Pakete finden sich in der Installationsanleitung von Paperless-ngx

Ggf. muss auch noch Redis aktualisiert werden. Auch hier ist in der Installationsanleitung beschrieben, welche Version benötigt wird.

06| Dienste stoppen

systemctl stop paperless-*.service

07| Neue Dateien kopieren

Damit keine "Karteileichen" im Verzeichnis über bleiben, lösche ich zunächst die alten Dateien bevor die neue Version kopiert wird:

# 1. Lösche Dateien im Installations-Verzeichnis 
cd /tmp/paperless-ngx
for f in {.,}*; do
  rm -r "/opt/paperless/$f"
done

# 2. Berechtigungen anpassen
chown -R paperless:paperless {.,}*

#3. Dateien an den Installationsort verschieben
mv {.,}* /opt/paperless/

# 4. clean-up
cd ..
rm -r paperless--ngx*

08| Python Requirements installieren

cd /opt/paperless
source bin/activate
sudo -Hu paperless bin/pip3 install -r requirements.txt

09| Datenbank migrieren

cd /opt/paperless/src
sudo -Hu paperless ../bin/python3 manage.py migrate
deactivate

10| Services starten

systemctl start paperless*.service

 

 

 

 

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page