DMS Paperless-ngx Windows Docker Desktop Umsetzung
Hallo,
wollte mal mein Chaos neu sortieren und DMS einsetzen. Sagte mir alles nicht so zu. Nun bin ich bei Paperless-ngx auf Docker hängen geblieben. Mit Docker hatte ich leider in der letzten Zeit weniger zu tun.
Da ich kein NAS hab, wollte ich es zunächst unter Windows 10 testen. Docker Desktop + WSL. Idee war es später bei Problemen, den Container auf anderen Host einfach einzuhängen - ESXi 8 mit Photon-OS z.B.
Im ersten Schnellversuch mit linuxserver/paperless-ngx:latest rasch Erfolg gehabt. Nur ist das schon wieder deprecated. Die Möglichkeiten sind ja vielfältig. Wie gehe ich am besten vor?
Habe aktuell die offizielle paperlessngx/paperless-ngx:latest geladen. Die läuft aber auf Anhieb nicht, da redis fehlt. Habe redis beim Überfliegen nicht finden können und es in einen 2. Container gepackt.
Localhost war schon die 1. Herausforderung. Habe es nun über das Container-Netzwerk gelöst. Redis wird gefunden und Paperless-ngx läuft nach anlegen des Superusers sofort.
Hier die Frage: So OK oder sollte man besser einen Proxy mit installieren, um später die Ports frei ändern zu können ohne einen Container mit commit zu clonen oder anders einzugreifen? Für das "localhost Problem" fiel mir hier auch nichts besseres ein. Gibt es da noch eine andere Methode? Redis URL als Parameter hat es nicht gefressen. Im Startscript steht auch hart "localhost:6379" für redis drin. Ohne das zu ändern denke ich ist es zwecklos.
Die oben angesrprochene Linuxserver Version besteht nur aus einen Container. Bei jetzigen Setup fehlt noch DOCX Support - Gotenberg und tika.
Hab auch vor ggf. mal zu schauen, ob sich einige Operationen mit DB Manipulation bewerkstelligen lassen. Hätte also gerne Zugriff auf die MariaDB?!? - Das ? da man leider im ersten Moment unter Windows und ohne Yaml fast blind ist. Docker Desktop macht den Pull und zack liegt es schon da.
Kann man Eurer Meinung nach mit Windows Docker Desktop vernünftig arbeiten oder lieber komplett zu Linux umschwenken? Gerade wenn es um Sonderlocken und Anpassungen geht.
mfg Crusher
wollte mal mein Chaos neu sortieren und DMS einsetzen. Sagte mir alles nicht so zu. Nun bin ich bei Paperless-ngx auf Docker hängen geblieben. Mit Docker hatte ich leider in der letzten Zeit weniger zu tun.
Da ich kein NAS hab, wollte ich es zunächst unter Windows 10 testen. Docker Desktop + WSL. Idee war es später bei Problemen, den Container auf anderen Host einfach einzuhängen - ESXi 8 mit Photon-OS z.B.
Im ersten Schnellversuch mit linuxserver/paperless-ngx:latest rasch Erfolg gehabt. Nur ist das schon wieder deprecated. Die Möglichkeiten sind ja vielfältig. Wie gehe ich am besten vor?
Habe aktuell die offizielle paperlessngx/paperless-ngx:latest geladen. Die läuft aber auf Anhieb nicht, da redis fehlt. Habe redis beim Überfliegen nicht finden können und es in einen 2. Container gepackt.
docker network create --driver=bridge --subnet=172.18.0.0/24 --ip-range=172.18.0.0/24 --gateway=172.18.0.254 br0
docker run -d -p 6379:6379 -p 8000:8000 --network br0 --network-alias redis --name myredis redis
docker run -d --name paperless --network "container:myredis" paperlessngx/paperless-ngx:latest
Localhost war schon die 1. Herausforderung. Habe es nun über das Container-Netzwerk gelöst. Redis wird gefunden und Paperless-ngx läuft nach anlegen des Superusers sofort.
Hier die Frage: So OK oder sollte man besser einen Proxy mit installieren, um später die Ports frei ändern zu können ohne einen Container mit commit zu clonen oder anders einzugreifen? Für das "localhost Problem" fiel mir hier auch nichts besseres ein. Gibt es da noch eine andere Methode? Redis URL als Parameter hat es nicht gefressen. Im Startscript steht auch hart "localhost:6379" für redis drin. Ohne das zu ändern denke ich ist es zwecklos.
Die oben angesrprochene Linuxserver Version besteht nur aus einen Container. Bei jetzigen Setup fehlt noch DOCX Support - Gotenberg und tika.
Hab auch vor ggf. mal zu schauen, ob sich einige Operationen mit DB Manipulation bewerkstelligen lassen. Hätte also gerne Zugriff auf die MariaDB?!? - Das ? da man leider im ersten Moment unter Windows und ohne Yaml fast blind ist. Docker Desktop macht den Pull und zack liegt es schon da.
Kann man Eurer Meinung nach mit Windows Docker Desktop vernünftig arbeiten oder lieber komplett zu Linux umschwenken? Gerade wenn es um Sonderlocken und Anpassungen geht.
mfg Crusher
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21219763280
Url: https://administrator.de/contentid/21219763280
Ausgedruckt am: 03.12.2024 um 17:12 Uhr
2 Kommentare
Neuester Kommentar
Hi,
Nein. Das war & ist in der Form schon immer Linux-Technologie, Windows kann das nicht. Deswegen frickeln Docker Dekstop, WSL & co auch mit GNU/Linux-VMs rum. Mit Windows bekommt man halt auch Windows-Probleme. Manche stehen darauf, ansonsten ist es eine schlechte Idee.
Sieht eher aus, als hättest du damit noch nie viel zu tun gehabt. Soll kein Vorwurf sein, sondern nur die nüchterne Feststellung, dass du die Grundlagen ausbauen solltest. Was du machst, ist auf diesem Hello World Level: https://u-labs.de/portal/raspberry-pi-einstieg-in-docker-container-fuer- ...
Für den ersten und zweiten Container ist das okay, spätestens produktiv gibt es bessere Wege mit Compose. Das kann auch vernünftig mit mehreren Containern umgehen, die zu einem Dienst gehören: https://u-labs.de/portal/einfuehrung-das-ist-docker-compose-und-so-insta ...
Das lädt er auch, was sich dank OSS im Code nachprüfen lässt:
https://github.com/paperless-ngx/paperless-ngx/blob/f695d4b9daa2a4a4ddc7 ...
Der Standardwert localhost:6379 ist dort ebenfalls dokumentiert und vmtl für manuelle Installationen gedacht. Dass du den mit Docker überschreiben musst, hast du prinzipiell also richtig erkannt. Nur vmtl. falsch umgesetzt. Oder vergessen zu machen/posten, in deinen 3 Befehlen sehe ich nirgendwo was dazu.
Übrigens steht in der Doku zur Konfiguration bzgl der DB:
Je nachdem von was für "Operationen" du reden und ob dich das betrifft, ist das ggf. relevant.
Nein. Das war & ist in der Form schon immer Linux-Technologie, Windows kann das nicht. Deswegen frickeln Docker Dekstop, WSL & co auch mit GNU/Linux-VMs rum. Mit Windows bekommt man halt auch Windows-Probleme. Manche stehen darauf, ansonsten ist es eine schlechte Idee.
Quote from @Crusher79:
oder lieber komplett zu Linux umschwenken? Gerade wenn es um Sonderlocken und Anpassungen geht.
Ja, würde ich nicht erst deswegen machen. Letztens erst wollte ein Kollege nicht darauf hören und hat sich gefreut, als MS mit kaputten Windows-Updates das ganze zerschossen hat. War technisch nix wildes, nur 3 Container, aber halt kritische. Backup-System hat es beim nächsten Start auch zerlegt oder lieber komplett zu Linux umschwenken? Gerade wenn es um Sonderlocken und Anpassungen geht.
Sieht eher aus, als hättest du damit noch nie viel zu tun gehabt. Soll kein Vorwurf sein, sondern nur die nüchterne Feststellung, dass du die Grundlagen ausbauen solltest. Was du machst, ist auf diesem Hello World Level: https://u-labs.de/portal/raspberry-pi-einstieg-in-docker-container-fuer- ...
Für den ersten und zweiten Container ist das okay, spätestens produktiv gibt es bessere Wege mit Compose. Das kann auch vernünftig mit mehreren Containern umgehen, die zu einem Dienst gehören: https://u-labs.de/portal/einfuehrung-das-ist-docker-compose-und-so-insta ...
Quote from @Crusher79:
Im ersten Schnellversuch mit linuxserver/paperless-ngx:latest rasch Erfolg gehabt. Nur ist das schon wieder deprecated. Die Möglichkeiten sind ja vielfältig. Wie gehe ich am besten vor?
Offizielle Images bevorzugen & Dokus lesen. Steht beim Linuserver Image drin, dass Paperless mittlerweile ein offizielles hat und sie ihres daher einstellen.Im ersten Schnellversuch mit linuxserver/paperless-ngx:latest rasch Erfolg gehabt. Nur ist das schon wieder deprecated. Die Möglichkeiten sind ja vielfältig. Wie gehe ich am besten vor?
Quote from @Crusher79:
Habe aktuell die offizielle paperlessngx/paperless-ngx:latest geladen. Die läuft aber auf Anhieb nicht, da redis fehlt. Habe redis beim Überfliegen nicht finden können und es in einen 2. Container gepackt.
Steht in der Doku und den Beispiel yamls drin, dass man Redis installieren soll. Vor allem wenn man neu in etwas einsteigt, ist es empfehlenswert, Dokus richtig zu lesen und nicht nur zu überfliegen.Habe aktuell die offizielle paperlessngx/paperless-ngx:latest geladen. Die läuft aber auf Anhieb nicht, da redis fehlt. Habe redis beim Überfliegen nicht finden können und es in einen 2. Container gepackt.
Quote from @Crusher79:
Localhost war schon die 1. Herausforderung. Habe es nun über das Container-Netzwerk gelöst.
Das solltest du vertiefen. Docker Netzerke zu verstehen gehört zu den Grundlagen. Spätestens beim zweiten Container braucht man das, wie du schon gemerkt hast. So lange du unter Windows fährst, bedenke zudem, dass zwischen Docker und deinem System außerdem noch eine VM steckt.Localhost war schon die 1. Herausforderung. Habe es nun über das Container-Netzwerk gelöst.
Quote from @Crusher79:
Hier die Frage: So OK oder sollte man besser einen Proxy mit installieren, um später die Ports frei ändern zu können ohne einen Container mit commit zu clonen oder anders einzugreifen?
Commit klonen? Du brauchst einen Reverse Proxy hauptsächlich, wenn mehrere Webserver vernünftig auf den Standardports erreichbar sein sollen. Oder du irgendwas dran bauen willst, was die Anwendung nicht hergibt bzw. das ins Internet stellen & per DMZ schützen willst. Meiner Erfahrung nach macht ein Reverse Proxy schon alleine deswegen Sinn, weil es selten bei einem einzelnen Dienst bleibt. Kann man theoretisch natürlich auch mit Ports machen, ist aber unkomfortabel und man muss sich ggf. an zig Stellen ums Zertifikate kümmern. Traefik integriert sich gut in Docker und kann einiges automatisieren: https://u-labs.de/portal/traefik-auf-server-raspberry-pi-installieren-un ...Hier die Frage: So OK oder sollte man besser einen Proxy mit installieren, um später die Ports frei ändern zu können ohne einen Container mit commit zu clonen oder anders einzugreifen?
Quote from @Crusher79:
Redis URL als Parameter hat es nicht gefressen. Im Startscript steht auch hart "localhost:6379" für redis drin. Ohne das zu ändern denke ich ist es zwecklos.
Der richtige Weg wäre, die PAPERLESS_REDIS Umgebungsvariable zu setzen. Steht in der Doku zu den benötigten Diensten: https://github.com/paperless-ngx/paperless-ngx/blob/f695d4b9daa2a4a4ddc7 ...Redis URL als Parameter hat es nicht gefressen. Im Startscript steht auch hart "localhost:6379" für redis drin. Ohne das zu ändern denke ich ist es zwecklos.
Das lädt er auch, was sich dank OSS im Code nachprüfen lässt:
https://github.com/paperless-ngx/paperless-ngx/blob/f695d4b9daa2a4a4ddc7 ...
_CELERY_REDIS_URL, _CHANNELS_REDIS_URL = _parse_redis_url(
os.getenv("PAPERLESS_REDIS", None),
)
Der Standardwert localhost:6379 ist dort ebenfalls dokumentiert und vmtl für manuelle Installationen gedacht. Dass du den mit Docker überschreiben musst, hast du prinzipiell also richtig erkannt. Nur vmtl. falsch umgesetzt. Oder vergessen zu machen/posten, in deinen 3 Befehlen sehe ich nirgendwo was dazu.
Quote from @Crusher79:
Hab auch vor ggf. mal zu schauen, ob sich einige Operationen mit DB Manipulation bewerkstelligen lassen. Hätte also gerne Zugriff auf die MariaDB?!?
Wo die DB läuft ist eine gute Frage, in deinem Post steht keine Info dazu. Wenn irgendwas nicht geht, wäre Basteln an der DB auf eigene Faust meine letzte Option. Außer du bist aktiver Entwickler an dem Projekt und kannst abschätzen, was das für Konsequenzen hat.Hab auch vor ggf. mal zu schauen, ob sich einige Operationen mit DB Manipulation bewerkstelligen lassen. Hätte also gerne Zugriff auf die MariaDB?!?
Übrigens steht in der Doku zur Konfiguration bzgl der DB:
Default is `postgresql`.
!!! warning
Using MariaDB comes with some caveats. See [MySQL Caveats](/advanced_usage#mysql-caveats).
Je nachdem von was für "Operationen" du reden und ob dich das betrifft, ist das ggf. relevant.