In dieser Anleitung wurde Paperless auf einem Proxmox-Server installiert. Ich empfehle ausdrücklich die Installation als VM statt als LXC (Linux Container). Die Verwendung von Docker in einem LXC-Container kann zu Problemen führen, die bei einer VM-Installation nicht auftreten.
Paperless Systemvoraussetzungen
Hardware | Ressourcen |
---|---|
CPU | 4 Kerne |
RAM | 8192 MB |
Festplatte | 50GB |
Die Basis: Debian 12 oder Ubuntu 24.04, Docker, Docker Compose und Portainer
Zuerst müssen wir Docker, Docker Compose und Portainer installieren. Dies lässt sich ganz einfach mit den folgenden vier Schritten erledigen.
Linux aktualisieren und Curl installieren
apt update && apt upgrade -y && apt install curl -y
Docker installieren
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
Docker-Compose installieren
Überprüfe vor der Eingabe des Befehls, ob eine aktuellere Version von Docker Compose verfügbar ist, und passe dann die Versionsnummer v2.32.4 im Befehl entsprechend an. Den neuesten Release findest du auf GitHub: Docker Compose Releases.
curl -SL https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Portainer installieren
docker run -d -p 18510:8000 -p 19510:9000 --name portainer --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer-ce:latest
Portainer öffnen und einrichten
http://DeineIP:19510
Anschließend einen Stack anlegen
Folgende .yml einbinden und anpassen
In der .yml Datei müssen einige Parameter angepasst werden die sind gegenzeichnet mit Eingabe…:
version: "3.4" services: broker: image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data db: image: docker.io/library/postgres:13 restart: unless-stopped volumes: - pgdata:/var/lib/postgresql/data environment: POSTGRES_DB: paperless POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: unless-stopped depends_on: - db - broker ports: - 8010:8000 healthcheck: test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 volumes: - data:/usr/src/paperless/data - media:/usr/src/paperless/media - ./export:/usr/src/paperless/export - ./consume:/usr/src/paperless/consume environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_SECRET_KEY: #Eingabe dein Secretkey PAPERLESS_ADMIN_USER: #Eingabe dein AdminUser PAPERLESS_ADMIN_PASSWORD: #Eingabe dein AdminPassword PAPERLESS_OCR_LANGUAGE: deu USERMAP_UID: 1000 USERMAP_GID: 100 volumes: data: media: pgdata: redisdata:
Anschließend den Stack starten
Samba installieren und einrichten
Wir werden dem Linux Benutzer den Zugriff mit einem separaten SMB Passwort ermöglichen.
sudo apt update && sudo apt upgrade -y && sudo apt install samba -y
cd /etc/samba
Jetzt sichern wir die Standard smb.conf
, indem wir sie umbenennen, und erstellen anschließend eine neue, leere smb.conf
.
mv smb.conf smb.bak
nano smb.conf
Dort binden wir jetzt folgendes ein.
[global] workgroup = WORKGROUP #Arbeitsgruppenname server string = Samba Server #Beschreibung des Servers. netbios name = paperless #Name des Samba-Servers im Netzwerk. security = user #user, Benutzer Anmeldung erforderlich. map to guest = bad user #bad user, unbekannte Benutzer sind Gast. dns proxy = no #Sollen DNS-Abfragen weitergeleitet werden. [Data] path = /data #Pfad freigabe Ordner browsable = yes #Ordner durchsuchbar. writable = yes #Ordner schreibrechte. valid users = linuxer #Benutzer, die auf diesen Ordner zugreifen dürfen. guest ok = no #Gäste zugriff erlauben. read only = no #Schreibgeschützt. create mask = 0775 #Berechtigungen für Dateien und Verzeichnisse. directory mask = 0775
Damit alle Änderungen übernommen werden, starten wir den SMB-Service neu.
sudo systemctl restart smbd
sudo smbpasswd -a DeinLinuxBenutzername
sudo chown -R DeinLinuxBenutzername:DeinLinuxBenutzername /data && sudo chmod -R 775 /data
Im Explorer rechtsklick und auf „Eine benutzerdefinierte Netzwerkadresse auswählen“ klicken.
Folgende Internet- oder Netzwerkadresse eingeben: \\paperless\data\compose\1\consume und auf weiter klicken.
Benenne deinen Ordner ganz nach belieben bei mir heißt er PAPERLESS (Data)
Klicke auf „Fertig stellen“ 🙂
Der Paperless (Data) Ordner wird dir jetzt angezeigt!
Paperless öffnen und einrichten
http://DeineIP:8010
Die Besten Scanner für Paperless-ngx
Paperless-ngx updaten – So einfach geht es!
Log dich zuerst in das Portainer Backend ein.
- Klicke links in der Spalte auf Container
- Klick auf den Container paperless-webserver-1
- Klick im oberen Menü links neben Duplicate/Edit auf Recreate
- Wähle im Popup Re-pull image aus und Klick auf den roten Button „Recreate“
Mit Recreate wird der bestehende Docker Container gelöscht und ein neuer erstellt. Dabei wird dann das Aktuelle Image installiert. Das passiert aber auch nur dann wenn im Docker Compose File unter webserver wie in meiner Anleitung als image paperless-ngx:latest angegeben worden ist. Die Config bleibt bestehen und du kannst sofort mit der neuen Version weiterarbeiten.
61 Kommentare. Hinterlasse eine Antwort
Moin Patrick,
danke für die Anleitung. Läuft super seit einigen Wochen.
Ich frage mich mittlerweile, wie ich mein paperless-ngx up to date halten kann. ALso kurz und knapp die Frage, wie installiere ich Updates für eine paperless-ngx Instanz, die nach Deiner Anleitung installiert wurde.
1000Dank und LG
Sascha
Hallo Sascha,
das ist das schöne an Docker und geht ganz einfach. Stopp den Paperless Container in Portainer und starte ihn einfach neu. Beim Neustart werden dann die Aktuellen Paketdaten installiert :). Ich meine ein Restart würde es auch tun.
Hi Patrick, das funktioniert bei mir leider nicht. Als ich Paperless aufgesetzt habe war die Version 2.13.5 aktuell. Nach dem Neustart in Docker ists weiterhin die Version 2.13.5, obwohl es mittlerweile eine 2.14.3 gibt.
Ich Checke das mal für dich.
ok mein Fehler, mach folgendes im Portainer Backend.
-> Klick auf Container
-> Klick auf den Container paperless-webserver-1
-> Klick auf Recreate
-> Wähle im Popup Re-pull image aus und Klick auf Recreate
Meine Paperless Instanz habe ich grade genau so von 2.13 auf 2.14.3 Aktualisiert.
Mit Recreate löscht du den Aktuellen Docker Container und erstellst einen neuen. Dabei wird dann das Aktuelle Image installiert.
Perfekt! Hat super geklappt. Danke Dir!
Gerne ein schönes Weekend wünsche ich dir 🙂
Hallo Patrick,
echt super Anleitung, die du da gezaubert hast. Danke dafür !
Hat auf Anhieb funktioniert.
Ich verwende paperless mit einem PI 5 und Portainer.
Wie du ja bereits geschrieben hast folgt ne überarbeitete Anleitung noch zur Einbindung via Windows bzw. Linux.
Meine Frage/Vorschlag/Idee ist aber nun folgende:
Man kann im Portainer ja auch Volumes einbinden. Hier wäre dann das Volume zu meinen Dokumenten (Share) einzubinden. Kann man das als „read-only“ machen ?
so….nun hat man ja ein Volumen (mit seinen Dokumenten inkl. Unterverzeichnisse) auf dem Portainer erstellt….
Was mir jetzt nich ganz klar ist: Unter welchem Container mounte ich das ? broker, db oder webserver ?
Und…unter welchem Mountpoint im entsprechenden Container? /data oder /mnt ?
Wird das Scannen der (neuen, eingebundenen) Dokumente dann wieder automatisch angestoßen oder muss ich das händisch machen ?
Grund hierfür ist, daß ich mir bereits ne Ordnerstruktur angelegt habe und jetzt nicht jedes pdf einzeln hochladen möchte.
Für jemanden der das komplett neu aufsetzt ist sicherlich der von dir beschriebene Weg der bessere.
Hallo Peter,
Wenn du ein Shared Storage nutzen möchtest ist das generell kein Problem du musst dieses zuvor unter Portainer einbinden. Je nachdem wie du den Storage über das Netzwerk Freigegeben hast. Ich gehe mal von SMB aus da gehst du wie folgt vor.
Klicke auf Volumes –> Create the volume –> Gib dem Volume einen Namen z.B sharedStorage wähle für SMB CIFS (CIFS ist ein Dialekt von SMB) aus und gebe dort die Zugangsdaten zu deinem Storage bzw. zu deiner vorher konfigurierten SMB Freigabe ein.
Anschließend kannst du den Storage Pfad in die .yml File einbinden. Den ReadOnly Mode stellst du am Besten in deinem Storage unter Freigabe Option ein.
Ich bin mir aber nicht sicher ob du dadurch die Funktionen von Paperless behindern wirst. Nach dem einlesen der abgelegten Files im Ordner Compose Löscht bzw. verschiebt Paperless die Datei. Mit Read Only Wahrscheinlich nicht möglich.
VG Patrick 🙂
p.s Ich Versuche immer alle Anleitungen so Aktuell wie möglich zu halten und schnell zu Antworten. Leider schaffe ich das Zeitlich nicht immer so wie ich das gerne möchte 🙂
Hallo,
ich bin genau wie in der Anleitung vorgeschlagen durchgegangen, soweit klappt auch alles. Wenn ich den Ordner als Netzlaufwerk hinzufügen möchte, dann erscheint bei Windows aber eine Anmeldemaske. Egal welche Daten ich dort eintrage, diese sind falsch. Wie kann ich das korrigieren?
Grüße und guten Rutsch
Hallo Peter,
Ich erstelle die Tage eine Aktualisierte Anleitung die verständlicher sein wird.
Liebe Grüße und einen Guten Rutsch 🙂
Hallo,
besten Dank für die Anleitung, hat auf anhieb bei mir funktioniert. Bin ganz neu im Thema Docker, gibt es eine Möglichkeit das Media Verzeichnis genau so im Netzwerk bereitzustellen wie den Data Ordner?
Grüße Markus
Hallo Markus,
Ich erstelle die Tage eine Aktualisierte Anleitung, wo ich darauf eingehen werde.
Liebe Grüße und einen Guten Rutsch 🙂
Bekomme hier immer einen Fehler (ungülter Benutzer)
sudo chown -R DeinLinuxBenutzername:DeinLinuxBenutzername /data && sudo chmod -R 775 /data
owohl zuvor dieser Schritt klappte
sudo smbpasswd -a DeinLinuxBenutzername
Hallo Markus, Ist der Benutzer auch wirklich angelegt? Oder hat sich evtl. ein Tippfehler eingeschlichen? Das müsste man mal überprüfen.
Hallo Patrick
Ich habe es nun mittlerweile zig mal probiert und es funktioniert LEIDER NICHT.
Der Webserver von Paperless startet. Aber ich kann mich nicht anmelden.
Bei jedem Versuch eine neue Debian VM erstellt und exakt deiner Anleitung gefolgt.
Daraufhin habe ich diesen Weg genommen
(schreiners-it.de/proxmox/paperless-ngx-im-lxc-container-installieren/)
und es hat auf anhieb funktioniert. Ich bin also nicht zu blöd ein paar Zeilen zu kopieren 😉
Leider nur als Container.! Dabei hätte ich es gerne in einer VM.
Nach meinem Verständnis kann es nur an der .yml liegen. Ich habe auch versucht die Schreiners an deine .yml anzupassen. Aber da fehlt mir leider das Know-How.
Gruß Stefan
Hallöchen Stefan,
wenn das mit dem LXC-Container funktioniert hat dann würde ich dabei bleiben :). Du schonst damit die Ressourcen deines Servers und kannst bei bedarf die Festplattengröße super einfach erweitern. Das ist bei einer VM nicht so ohne weiteres möglich. Sorry für die späte Rückmeldung 🙂
Hallo Stefan, hast du Paperless ans laufen bekommen? Sonst kann ich dir gerne dabei helfen! Beide Varianten sind möglich VM und LXC. Stand heute würde ich die VM Empfehlen und zur Sicherheit mit LUKS verschlüsseln.
broker Pulling db Pulling webserver Pulling broker Error db Error no matching manifest for linux/arm/v8 in the manifest list entries
bekomme die Fehlermeldung bei start
Wenn ich auf deploy the stack klicke bekomme ich folgende Fehlermeldung in portainer:
broker Pulling db Pulling webserver Pulling broker Error db Error no matching manifest for linux/arm/v8 in the manifest list entries
Hallo Patrick
Erstmal Danke für deine Anleitung.
Aber ich komme nicht weiter bei
PAPERLESS_SECRET_KEY: deinSecretkey
PAPERLESS_ADMIN_USER: AdminUser
PAPERLESS_ADMIN_PASSWORD: deinPassword
Aus den Beiträgen habe ich entnommen das der Secretkey willkürlich gewählt werden kann.
Aber bei ADMIN_USER und PASSWORD komme ich nicht weiter.
Sind das zukünftige Daten für Paperless oder vorhandene Daten aus Portainer (also bereits für Portainer genutzte USER und PASSWORD) ?
Ich habe das Problem dass ich Paperless zwar starten kann, aber weder Benutzername noch Kennwort bei der Anmeldung passen.
Hallo Stefan, das sind die Admin Zugangsdaten um dich nach der Installation bei Paperless anzumelden. Da kannst du deine Wunschangaben machen. LG Patrick
Hallo,
ich habe jetzt die Anleitung zweimal durchgearbeitet, nachdem es mir beim ersten Mal nicht gelungen war, die Kommandos per Copy and Paste auszuführen und ich sie alle per Hand abgetippt hatte. Jedenfalls hat das mit der Samba-Freigabe nicht geklappt, ich habe keinen entsprechenden Eintrag im Netzwerk gesehen. Deshalb noch ein zweiter Versuch, diesmal mit Copy and Paste, aber auch jetzt wieder kein Netzlaufwerk zu sehen. Alles andere scheint soweit zu funktionieren. Hat jemand eventuell eine Idee, was ich falsch mache? Ich bin für jede Hilfe dankbar.
Lieber Gerald, vielen Dank für deinen Kommentar. Ich werde das am Wochenende testen. Ich habe zur Zeit leider nicht die Zeit sofort auf Kommentare zu reagieren aber ich tu mein bestes! Ich würde gerne jedem sofort helfen 🙂 Deshalb wird demnächst auch noch ein Video folgen. !!! WICHTIG !!! hast du die Installation auf einer VM oder einem LXC Container installiert?
Die Installation läuft auf einer VM, so wie empfohlen, auch mit den empfohlenen Einstellungen und Debian 12 als Basis, unter Proxmox.
Guten Morgen Gerald, das ist gut. Am Wochenende überprüfe ich woran es liegen kann und gebe dir dann ein Feedback. LG
Hey Gerlad, ich hab die smb Freigabe eben nochmal neu erstellt vielleicht hilft dir die erweiterte Anleitung bei der Einrichtung. Ein kurzes Video hab ich auch schnell erstellt uns am Ende angefügt. Schau sicherheitshalber auch mal nach ob deine Windows Arbeitsgruppe auch noch WORKGROUP heißt daran könnte es nämlich auch liegen. LG Patrick
Vielen Dank für deine Bemühungen, dann werde ich gleich nochmal mein Glück probieren
Gerne 🙂
Super, es hat geklappt. Nochmal vielen Dank für deine Hilfe.
Das höre ich doch gerne, dann viel Freude mit Paperless ein tolles Tool was einem die Arbeit enorm erleichtert 🙂
Leider ergeht es mir wie Selter in den Kommentaren und der Zugriff via Samba geht nicht. Komme zur Freigabe aber keine Schreibberechtigungen. LXC Container neugestartet, keine Besserung. Eine Idee?
Lieber Schmitt, ich habe im Einleitung Text geschrieben das für die Installation eine richtige VM installiert werden sollte. Die Installation in einem LXC-Container hat bei mir leider auch zu Problemen geführt.
Eine Frage ist hier noch offen !
Wie kann man Daten über die SMB Freigabe direkt ablegen ?
Man kann zwar in die komplette Ordnerstruktur schauen, aber nichts unter
\\IP_ADRESSE\data\compose\1\consume
ablegen !
KEINE BERECHTIGUNG ! Laut Windows !
Hallo baldur1956, das Netzlaufwerk sollte dir unter Windows sofort nach dem anlegen angezeigt werden. Ich habe beide Pfad Varianten ausprobiert Angabe unter dem Hostsnamen oder IP Adresse. Funktionieren beide.
Hallo
Fehler gefunden, das Passwort muss aus Buchstaben und Zahlen bestehen. Hatte zum testen erstmal nur Zahlen genommen.
Gruß
Hallo Josef, perfekt 🙂
Hallo, und wieder wach und das Portainer Passwort gefunden. Alles Grün.
Auf die Paperless Seite bekomme ich weiterhin Meldung das User und Passwort nicht übereinstimmen.
PAPERLESS_SECRET_KEY: deinSecretkey
PAPERLESS_ADMIN_USER: AdminUser
PAPERLESS_ADMIN_PASSWORD: deinPassword
Das habe ich entsprechend geändert und auch Fotografiert. Was habe ich falsch gemacht?
Hallo, sehr gute Anleitung. Jetzt wollte ich auf die Portainer Seite und werde nach User und Password gefragt, kann mich nicht erinnern wann ich die vergeben habe.
Bei der Paperless Seite genauso, gibt es da ein Standard Password?
Das ganze habe ich genau nach deiner Anleitung auf Proxmox VM installiert.
Danke und Gruß Josef
Beim ersten Aufruf von Portainer erstellst Du den Admin Zugang. Das sind nicht die Login Daten von Paperless. Du musst einen User und ein Passwort vergeben, mit dem du dich dann zukünftig bei Portainer anmelden kannst.
Vielen Dank für das Lob 🙂
Was ist der bzw. wo finde ich den PAPERLESS_SECRET_KEY: deinSecretkey
Lieber Wolfgang den kannst Du dir selbst erstellen. z.B: 54e8RZkfdflbjnö546gf#s! er sollte sicher sein.
Hallo Patrick,
danke für die tolle Anleitung 🙂
Der Data Ordner wird unter der Windows Netzwerkübersicht angezeigt:
\\PAPERLESS-VM\data\compose\1\consume
Aber wie kann ich in den Consume-Ordner Dateien ablegen? Mir fehlen dazu offenbar die Rechte …
Hallo Selter 🙂 Dateien solltest Du sofort ablegen können. Die nach der Anleitung eingerichtete Samba Freigabe ist öffentlich.
Hast du den Samba Dienst neugestartet: #sudo systemctl restart smbd
Liebe Grüße Patrick
Ja, ich habe sogar die VM neu gestartet. Die läuft bei mir unter Proxmox – liegt es vielleicht daran?
Wie gesagt, auf den Ordner kann ich zugreifen; kann aber nichts dort ablegen.
Hey Selter, ich hab Paperless auch als VM auf Proxmox laufen. Hast Du Portainer als VM oder als LXC installiert?
Hallo, hier möchte ich unbedingt anschließen.
Dank Deiner Anleitung hat die Installation endlich mal so funktioniert, wie beschrieben, KLASSE und Danke!
Aber ich habe exakt das selbe Problem.
Ich kann via Windows auf die Freigabe ohne Probleme zugreifen, aber ich kann nichts rein kopieren, da mir angeblich die Berechtigungen fehlen.
„Mit abweichendem Nutzer“ habe ich probiert (Daten vom Paperless User) hat das Problem auch nicht behoben.
QNAP NAS TS251D / VM Ubuntu Server frisch aufgesetzt und dann 1:1 an Deine Anleitung gehalten.
Wäre klasse, wenn wir das noch hinbekommen!
Ich nutze es nur lokal, nicht von unterwegs.
hatte den selben Fehler!
@Patrick: Den ersten Kommentar kannste löschen 😉
@Selter: Man muss dem Ordner „consume“ noch die Berechtigung fürs Schreiben geben (ich habe 777 gesetzt). Ich habe es via Putty erledigt.
Danach klappt es.
Nochmals @Patrick:
HERZLICHEN DANK für die geniale und einfache Anleitung!
Ich habe die letzten Tage X YouTune Videos/ Anleitungen gesehen, alle haben irgendwo gescheitert.
Hab dann (wieder einmal) mit dem neu Aufsetzen einer VM / Ubuntu gestartet und mich dann 1:1 an Deine Anleitung gehalten.
Funktioniert 1A -> DANKE !!!!!
Hey Frank, das höre ich doch gerne 🙂 Danke.
Hallo,
Habe die Installation versucht so umzusetzen aber…
Der Container Paperless Webserver erhält bei Start kurz die Ports, welche aber direkt wieder verschwinden. Somit komme ich aber nicht auf die Login Seite von Paperless. Ne Idee was ich fasch gemacht haben könnte? Vg Andreas
Hallo Andreas, leider nicht. Ich hab die Installation schon mehrmals nach dieser Anleitung ausgeführt und keine Probleme feststellen können.
Welche Basis nutzt Du denn? (LXC in Proxmox, etc…)
wow! DAS ist mal eine Anleitung – vielen herzlichen Dank! Hat auf anhieb super geklappt.
Ein kleiner Bug ist noch enthalten; zum starten von paperless ist der falsche Port (nämlich noch von Portainer) angegeben
Hey Leggalucci, Danke für das lob 🙂 du hast recht ich hab versehentlich den Portainer Port im Paperless Login angegeben. Das Hab ich grade angepasst Danke für deinen Hinweis 🙂
Hallo,
wo liegen denn die Ordner data und media?
Ich dachte auf der VM in /usr/src/paperless
aber /usr/src ist leer?
Fehler lautet: Deployment error
failed to deploy a stack: services.environment Additional property POSTGRES_DB is not allowed
Hallo Chris, Ich werde heute mal eine neue Installation aufsetzten. Paperless läuft bei mir nach genau nach dieser Anleitung absolut reibungslos. Es kann natürlich sein das je nach Version Anpassungen vorgenommen werden müssen. Ich check das Gleich und Schicke dir ne Info sobald ich fertig bin. Patrick im vorherigen Kommentar ist auch nicht weitergekommen. Danke für die info.
Hallo Chris, ich habe heute alles nochmal auf stand gebracht und die .yml angepasst. Die Installation Anleitung funktioniert es hatte sich ein kleiner Fehler eingeschlichen.
Funktioniert schon bei der yml implementierung nicht da das ganze Environment unter dem postgre nicht angenommen wird.
Hallo Patrick, Ich werde das die Tage überprüfen. Vielen Dank für den Hinweis.
Jetzt läuft es 🙂