Paperless-ngx Paperless-ngx – DMS via Docker auf dem NAS

surfer09

Benutzer
Mitglied seit
01. Dez 2022
Beiträge
26
Punkte für Reaktionen
1
Punkte
3
Ich habe es gerade versucht, aber irgendetwas ist noch falsch... Ich habe einen eigenen Config-Ordner angelegt und dort die docker-compose.env eingefügt. DDer Container zieht sich aber von dort die Einstellungen nicht.
Wahrscheinlich habe ich irgendwo noch einen Fehler... :confused:
 

Anhänge

  • 2023-06-04 16_03_16-Window.jpg
    2023-06-04 16_03_16-Window.jpg
    52,2 KB · Aufrufe: 20
  • 2023-06-04 16_02_59-Window.jpg
    2023-06-04 16_02_59-Window.jpg
    83,2 KB · Aufrufe: 18

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.145
Punkte für Reaktionen
730
Punkte
154
Ich glaube, du machst da einen Gedanken-Fehler. Die Paperless.conf, die in diesem Pfad gesucht wird, wird unter Docker nicht verwendet.

Siehe hier, gleich erster Absatz:
https://docs.paperless-ngx.com/configuration/

Unter Docker wird das alles mit den Variablen des Containers geregelt.
 
  • Like
Reaktionen: surfer09

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.195
Punkte für Reaktionen
1.022
Punkte
224
Entweder kommen die Parameter in die Container-Einstellungen unter Docker (≤ DSM 7.1) bzw. Container-Manager (≥ DSM 7.2) oder man verwendet im Ordner /docker/config/ die Dateien docker-compose.yml und docker-compose.env. Beispiele dazu finden sich auf GitHub (Datenbanktyp beachten), außerdem in meiner Anleitung zum Thema, wenn man das ganze über docker-compose nutzen und lösen möchte.
 
  • Like
Reaktionen: surfer09

surfer09

Benutzer
Mitglied seit
01. Dez 2022
Beiträge
26
Punkte für Reaktionen
1
Punkte
3
Alles klar danke für eure Rückmeldungen. Dann hatte ich da wohl einen Gedankenfehler. Ich dachte, ich könnte die Config-Datei einfach in einem eigenen Ordner unterbringen.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.195
Punkte für Reaktionen
1.022
Punkte
224
So pauschal kann man das nicht sagen, finde ich. Unterlagen vom Finanzamt würde ich auf jeden Fall länger aufbewahren in Papierform, genauso wie Handwerkerrechnungen, bei denen ist das sogar für zwei Jahre vorgeschrieben für Privatpersonen.

Ob und welche Versicherungsunterlagen du in Papierform aufbewahrst, musst du glaube ich eher selbst entscheiden, meine aktuelle Autoversicherung schickt mir beispielsweise gar keine Post mehr, andere Unterlagen von den Versicherungen, wie zum Beispiel Haftpflicht hebe ich aber trotzdem auf.

Ich würde an deiner Stelle so an diese Sache herangehen: nimm einmal an, dass deine Installation komplett flöten geht. Auf welche Dokumente könntest du dann ohne größere Probleme verzichten? Wenn du in dem Szenario auf ein Dokument nicht verzichten kannst, dann vernichte es auch nicht.
 
  • Like
Reaktionen: Kachelkaiser

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.145
Punkte für Reaktionen
730
Punkte
154
Du kannst auch MariaDB/MySQL als Datenbank nutzen. Da gab's - bei mir - bisher keine Sprünge bei Datenbank-Updates.
Ich hab heute ein Update für MariaDB angezeigt bekommen: 10.11.3 > 11.0.2

Im Gegensatz zu Postgresql lief die Datenbank einfach weiter, MariaDB macht wohl keine Änderungen in der Struktur.

Damit sind die ganzen Klimmzüge wie bei Postgresql unnötig.
 

win7x8664

Benutzer
Mitglied seit
16. Jun 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo.

Habe diesen Thread gefunden, weil ich gleiches Problem habe wie ein Vorredner. Leider funktioniert ein Löschen und Neubauen via Docker nicht.

Folgendes Szenario:
- DS218+
- 10 GB RAM
- 2x4 TB SHR RAID
- DSM 7.2

Benutzt wird der neue Containermanager und dessen "Projekt"-Funktion, die nun compose Dateien verarbeiten kann.

Die YAML Konfiguration ist diese:
services:
broker:
container_name: paperlessngx-redis
network_mode: bridge
image: docker.io/library/redis:latest
volumes:
- /volume1/docker/paperlessngx/redis:/redis
restart: unless-stopped

db:
container_name: paperlessngx-db
network_mode: bridge
image: docker.io/library/postgres:15.3
restart: unless-stopped
volumes:
- /volume1/docker/paperlessngx/db:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperlessngx
POSTGRES_USER: paperlessngx
POSTGRES_PASSWORD: xxxpasswordxxx

webserver:
container_name: paperlessngx
network_mode: bridge
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- /volume1/docker/paperlessngx/data:/usr/src/paperless/data
- /volume1/docker/paperlessngx/media:/usr/src/paperless/media
- /volume1/docker/paperlessngx/export:/usr/src/paperless/export
- /volume1/docker/paperlessngx/scaninput:/usr/src/paperless/consume
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_DBNAME: paperlessngx
PAPERLESS_DBUSER: paperlessngx
PAPERLESS_DBPASS: xxxpasswordxxx
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000/forms/libreoffice/convert#
USERMAP_UID: 4242539651
USERMAP_GID: 4242539009
PAPERLESS_OCR_LANGUAGES: deu eng
PAPERLESS_OCR_LANGUAGE: deu
PAPERLESS_TIME_ZONE: Europe/Berlin
PAPERLESS_FILENAME_FORMAT: '{created_year}/{correspondent}/{title}'
PAPERLESS_ADMIN_USER: plngxadmin
PAPERLESS_ADMIN_PASSWORD: yyypsswordyyy
PAPERLESS_ADMIN_MAIL: email@domain.tld

db-backup:
container_name: paperless-db-backup
network_mode: bridge
image: docker.io/library/postgres:15.3
volumes:
- /volume1/docker/paperlessngx/db-backup:/dump
- /etc/localtime:/etc/localtime:ro
environment:
PGHOST: db
PGDATABASE: paperlessngx
PGUSER: paperlessngx
PGPASSWORD: xxxpasswordxxx
BACKUP_NUM_KEEP: 10
BACKUP_FREQUENCY: 7d
entrypoint: |
bash -c 'bash -s <<EOF
trap "break;exit" SIGHUP SIGINT SIGTERM
sleep 2m
while /bin/true; do
pg_dump -Fc > /dump/dump_\`date +%d-%m-%Y"_"%H_%M_%S\`.psql
(ls -t /dump/dump*.psql|head -n $$BACKUP_NUM_KEEP;ls /dump/dump*.psql)|sort|uniq -u|xargs rm -- {}
sleep $$BACKUP_FREQUENCY
done
EOF'

gotenberg:
container_name: paperlessngx-gotenberg
network_mode: bridge
image: docker.io/gotenberg/gotenberg:latest
restart: unless-stopped
environment:
CHROMIUM_DISABLE_ROUTES: 1
command:
- 'gotenberg'
- '--chromium-disable-javascript=true'
- '--chromium-allow-list=file:///tmp/.*'

tika:
container_name: paperlessngx-tika
network_mode: bridge
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped

Das Projekt wird gebaut, alle Container starten.
Nur der Hauptcontainer "paperlessngx" startet immer wieder neu. Im Log steht diese Meldung:

Error -2: connecting to broker:6379. Name or Service not known.
Failed to connect to redis using environment variable PAPERLESS_REDIS

Der Redis Container ist im Projekt vorhanden, läuft und zeigt folgende Meldung:

Ready to accept connections
Running mode=standalone, port=6379

Alle Container befinden sich im selben Netzwerk, im bridge mode.
Das Netzwerk ist auf 172.17.0.0/16 definiert. Alle meine Container haben Adressen im Bereich 172.17.0.x erhalten.
Den Redis Container kann man von einem anderen Container per IP Adresse pingen (172.17.0.xx), den Servicenamen allerdings nicht (broker).

Ich habe auch schon mal versucht:
- die Container alle in ein separates Netz umzuhängen
- die Imageversionen fest einzustellen auf etwas ältere (Postgres 13 etc)
- die Standardpasswörter zu belassen (paperless/paperless)
- den Host per hostname: broker festzulegen
Das Ergebnis war immer das gleiche.


So langsam gehen mir die Ideen aus.
Habt ihr vielleicht noch eine?

Gruß

win7x8664​

 

Amigamaverik

Benutzer
Mitglied seit
19. Mai 2022
Beiträge
87
Punkte für Reaktionen
15
Punkte
14
bei mir ist paperless immer neu gestartet weil eine Berechtigung für den Ordner nicht gepasst hatte. Als ich das gefunden hatte lief es.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.195
Punkte für Reaktionen
1.022
Punkte
224

Paperless-ngx v1.16.0

Repository: paperless-ngx/paperless-ngx · Tag: v1.16.0 · Commit: b86842b · Released by: github-actions[bot]

paperless-ngx 1.16.0​

Notable Changes​

Features​

Bug Fixes​

  • Fix: return user first / last name from backend @shamoon (#3579)
  • Fix use of PAPERLESS_DB_TIMEOUT for all db types @shamoon (#3576)
  • Fix: handle mail rules with no filters on some imap servers @shamoon (#3554)

Dependencies​

  • Chore: Python dependency updates (celery 5.3.0 in particular) @stumpylog(#3584)
 
  • Like
Reaktionen: Tuxnet

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.195
Punkte für Reaktionen
1.022
Punkte
224
  • Like
Reaktionen: peterhoffmann

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
@Dennso

Paperless_ngx und Vaultwarden sind von extern mit DynDNS (Synology) erreichbar.

Ich nutze:
- Reverse-Proxy (Synology)
- Blocklist von @geimist
- Fail2Ban für Paperless und Vaultwarden
- Firewall der DS1522+
- wo immer möglich 2FA
- Backup 3-2-1 plus Zusatz (siehe Signatur)

ausserdem schalte stets das Hirn ein und klicke nicht auf jedes noch so interessante, verlockende Mail, das sich Zugang zu meinem LAN verschafft hat.

Aber ja, in meinem Router ist der Port 443 offen. Mir ist bewusst, dass das ein Loch in der Mauer ist, aber damit will ich leben.

ich würde gerne paperless ngx per fail2ban absichern. Macht das Sinn?

Nach meinem Verständnis schützt die Synology Funktion Automatische Blockierung von IP-Adressen nur DSM der NAS selbst. Nicht aber die Container von Portainer/Docker. Verstehe ich das so richtig?

Ich habe Installationen für fail2ban gefunden, die beziehen sich aber immer auf Bitwarden oder Vaultwarden. Für meine Anwendungen benötige ich keine weiteren Serverfunktionen, als die der Synology NAS. Oder ist Vaultwarden unbedingt erforderlich?

So wie ich das kapiere, müsste fail2ban die jeweiligen logfiles der container respektive der Programme in den Containern, welche die login versuche protokollieren, auslesen. Diese logfiles müssten auf dem Filesystem der Syn NAS liegen um von fail2ban gelesen werden zu können. Ist das richtig so?

Demnach müssten die Programme in den Containern jeweils entsprechende Logfiles schreiben. Tut das bspw. paperless NGX?


Mein Setup:

Hardware: Syn DS220+, DSM 7.2, RAM 16GB

Software: Portainer, Watchtower, Paperless NGX, Stirling PDF, Obsidian

Sicherheitseinstellungen:
default admin account deaktiviert, guest account deaktiviert, 1 Admin und 2 User Accounts eingerichtet, Domain/LDAP nicht eingerichtet,
QuickConnect eingerichtet und läuft,
DDNS eingerichtet und läuft inkl. wildcard Zertifikat von Let's Encrypt,
DSM Standard Port nicht geändert,
2FA Authentifizierung eingerichtet und läuft,
Firewall eingerichtet und läuft mit Freigaben spezifisch für die internen Container IP-Adressen,
Automatische IP-Adressen Blockierung ohne Verfallszeit, Telnet und SSH nicht aktiviert,
Reverse Proxy für die container eingerichtet,
Portweiterleitung der FritzBox nur 443.

Use-Case: Synology NAS zu Hause, Scanner, lokaler Rechner MacOs alles im Heimnetzwerk. Zugriff aus dem Heimnetzwerk, aus der Pendlerwohnung via lokaler Rechner MacOS und FritzBox und außerdem von der Arbeit.

Das läuft alles soweit, aber ich würde mit Paperless nun auch sensible Dokumente verarbeiten und da wäre ein vernünftiges Sicherheit-Setup irgendwie beruhigend.

Gruß an alle im Threat.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.400
Punkte
564
Das siehst du richtig. Die DSM-interne Funktion schützt nur Synology Dienste.
Vaultwarden brauchst du dafür natürlich nicht. Das ist ein Passwortmanager und hat hiermit nix zu tun.
Wenn du eine direkte Freigabe nutzt (VPN wäre besser), macht Fail2Ban schon Sinn.
Es hat auch schon mal jemand hier im Forum etwas von paperless-ngx im Zusammenhang mit Fail2Ban gepostet. Ich finds aber gerade nicht. Vielleicht weiß @Monacum es noch
 

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
VPN wird nicht gut funktionieren, da zwei User auf ein und dieselben Container von unterschiedlichen Orten aus zugreifen und ich auf der Arbeit kein VPN einrichten/installieren kann.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.195
Punkte für Reaktionen
1.022
Punkte
224

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Die threats habe ich gesehen, auch über die suchfunktion gesucht. Aber so richtig habe ich noch keine Lösung.
 

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Die Installation von fail2ban via portainer bekomme ich schon hin, aber mir fehlt der entscheidende Punkt wo paperless logfiles speichert. Den Rest erarbeite ich mir dann.
 

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
jep, das habe ich schon probiert. Leider funktionieren die beiden Dateien nicht.
fail2ban container wird immer wieder runtergefahren. Und in der yaml fehlt das mapping von Host Laufwerksordner zum Container Ordner.
 

SaveTheSeas

Benutzer
Mitglied seit
30. Mai 2023
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
der log Eintrag des Containers mit der o.g. Installation:


Setting timezone to Europe/Berlin...
Setting SSMTP configuration...
WARNING: SSMTP_HOST must be defined if you want fail2ban to send emails
Initializing files and folders...
Setting Fail2ban configuration...
Checking for custom actions in /data/action.d...
WARNING: iptables-common.local already exists and will be overriden
Add custom action iptables-common.local...
WARNING: iptables.local already exists and will be overriden
Add custom action iptables.local...
Checking for custom filters in /data/filter.d...
WARNING: paperless.conf already exists and will be overriden
Add custom filter paperless.conf...
2023-06-18 16:12:52,517 fail2ban.configreader [1]: INFO Loading configs for fail2ban under /etc/fail2ban
2023-06-18 16:12:52,518 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/fail2ban.conf']
2023-06-18 16:12:52,519 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/fail2ban.conf']
2023-06-18 16:12:52,519 fail2ban [1]: INFO Using socket file /var/run/fail2ban/fail2ban.sock
2023-06-18 16:12:52,519 fail2ban [1]: INFO Using pid file /var/run/fail2ban/fail2ban.pid, [INFO] logging to /data/fail2ban.log
2023-06-18 16:12:52,521 fail2ban.configreader [1]: INFO Loading configs for jail under /etc/fail2ban
2023-06-18 16:12:52,522 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/jail.conf']
2023-06-18 16:12:52,531 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/paths-debian.conf']
2023-06-18 16:12:52,532 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/paths-common.conf']
2023-06-18 16:12:52,533 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/paths-overrides.local']
2023-06-18 16:12:52,533 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/jail.d/paperless.conf']
2023-06-18 16:12:52,534 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/paths-common.conf', '/etc/fail2ban/paths-debian.conf', '/etc/fail2ban/jail.conf', '/etc/fail2ban/jail.d/paperless.conf']
2023-06-18 16:12:52,534 fail2ban.configreader [1]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
2023-06-18 16:12:52,543 fail2ban.configreader [1]: INFO Loading configs for filter.d/paperless under /etc/fail2ban
2023-06-18 16:12:52,544 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/filter.d/paperless.conf']
2023-06-18 16:12:52,544 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/filter.d/paperless.conf']
2023-06-18 16:12:52,545 fail2ban.configreader [1]: INFO Loading configs for action.d/iptables-allports under /etc/fail2ban
2023-06-18 16:12:52,546 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/action.d/iptables-allports.conf']
2023-06-18 16:12:52,546 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/action.d/iptables.conf']
2023-06-18 16:12:52,548 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/action.d/iptables.local']
2023-06-18 16:12:52,548 fail2ban.configparserinc[1]: INFO Loading files: ['/etc/fail2ban/action.d/iptables.conf', '/etc/fail2ban/action.d/iptables.local', '/etc/fail2ban/action.d/iptables-allports.conf']
2023-06-18 16:12:52,549 fail2ban.jailreader [1]: NOTICE No file(s) found for glob /paperless-ngx/paperless.log
2023-06-18 16:12:52,549 fail2ban [1]: ERROR Failed during configuration: Have not found any log file for paperless jail
2023-06-18 16:12:52,549 fail2ban [1]: ERROR Async configuration of server failed
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/fail2ban/client/fail2banserver.py", line 193, in start
cli.configureServer(phase=phase)
File "/usr/lib/python3.10/site-packages/fail2ban/client/fail2banclient.py", line 243, in configureServer
raise ServerExecutionException('Async configuration of server failed')
fail2ban.client.fail2bancmdline.ServerExecutionException: Async configuration of server failed
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat