Nextcloud und Paperless teilen sich eine SSD, möglich?

Hallo Zusammen!

Ich bin ganz neu in der Nextcloud und Paperless-Thematik. Trotzdem gebe ich mein bestes hier alle möglichen Infos zu geben und hoffe, dass ihr mir bei meinem Problem helfen könnt.
Folgendes habe ich mit meinem System gemacht:

Ich habe Docker und Portainer auf einem RPi 4 installiert. Hier laufen Nextcloud (nur lokal) und Paperless in zwei Containern unabhängig voneinander.
Nextcloud hat von mir eine externe SSD mit 2TB spendiert bekommen. Diese habe ich unter dem Pfad /mnt/ssd/ gemounted. Hier findet man die ncdata und ebenfalls auch die paperless-ordner.
Nextcloud erkennt die SSD auch und zeigt mir diese mit den vollen 2TB an. Nun möchte ich von der gleichen SSD aus den paperless-ordnern mit den “consume” und “archive” Ordnern arbeiten.

Ich bin davon ausgegangen, dass ich einfach über die Funktion “External Storage” über einen lokalen Ordner mit dem Pfad /mnt/ssd/paperless/consume darauf zugreifen kann. Das geht nicht, habe ich festgestellt. Bekomme nur den Fehler angezeigt, dass der Path nicht existiert.

Nun brauche ich etwas Hilfe, denn so gut kenne ich mich mit der Thematik nicht aus. Habe schon versucht über die Nextcloud-Dokumentation schlau zu werden, blicke aber nicht ganz durch.
Kann mir hier jemand den Fehler aufzeigen?

MfG

Hallo @mrcrashy, willkommen in den Foren der Anwender-Gemeinschaft von Nextcloud! :handshake:

dieses Tutorial dürfte ziemlich genau deinen Wunsch treffen

1 Like

Wenn das Video nicht hilft, melde dich nochmal.
Ich hab nahezu dein Aufbau bei mir produktiv laufen.

Hallo,
Ich habe nach diesem Video versucht zu arbeiten. Jedoch wird hier eine FTP Verbindung hergestellt, da hier zwei unterschiedliche Server verwendet werden.

Ich hatte trotzdem versucht mittels FTP Verbindung zu arbeiten. Muss jedoch sagen dass ich daran gescheitert bin. Ich habe proftpd installiert, bin aber beim erstellen der User gescheitert, da dies im video nicjt wirklich ersichtlich ist.

Wenn beides auf einer Maschine läuft brauchst du kein ftp, dass kannst du wieder runterschmeißen.
Könntest du deine config.php mal pasten und welche ordner unter /mnt/ssd liegen natürlich nur das pasten was für den fall hier relevant ist, falls noch andere ordner oder sonstiges dort liegt.

Was ich noch nicht verstanden habe ob nc jetzt lokal oder in einem container läuft, dass ist widersprüchlich von dir beschrieben.

Du musst die Option “Local” wählen. Auch muss die Berechtigung stimmen. Poste Screenshots deiner Konfiguration.

So, guten Morgen!
Ich habe mich wohl etwas unglücklich ausgedrückt. Beide, also Paperless und Nextcloud, laufen in Containern. Was ich mit “lokal” meinte, ist dass der Server nicht Online, also von außen, zu erreichen ist.
Das hat den Grund, dass ich hier leider keine Expertise habe und ich mir nicht irgendwelche Sicherheitslücken einbauen will, einfach weil ich Unwissend hier dran gegangen bin. Also “Lokal” = Nur übers eigene Netzwerk zu erreichen.

Also auf der /mnt/ssd liegen die Ordner ncdata und paperless. Im Paperless-Ordner sind die Ordner consume, data, export und media. Also unter dem Pfad /mnt/ssd/paperless/.

Die External Storages habe ich so versucht Anzulegen:
Ordnername: Paperless-Input - Externer Speicher: Lokal - Authentifizierung: Keine - Konfiguration: /mnt/ssd/paperless/consume - Für alle Personen

Config.php von Nextcloud:

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'upgrade.disable-web' => true,

Ok, hast du den in den Containern auch die Laufwerke entsprechend gemounted?
Wenn ich das richtig verstanden habe geht das bzgl. NC auf der SSD.
Den Paperlesspfad hast du auch eingebunden?

Sprich hier wäre die docker config wichtig zu sehen.

Wo kann ich die Config-Datei denn finden? Also unter welchem Pfad wird diese abgelegt?

Die docker compose Datei oder den docker run Befehl.
Je nach dem wie du die container startest

Paperless:

services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - /docker_data/paperless/redisdata:/data

  db:
    image: docker.io/library/postgres:16
    restart: unless-stopped
    volumes:
      - /docker_data/paperless/database:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ******
      POSTGRES_USER: ****
      POSTGRES_PASSWORD: ******

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "8010:8000"
    volumes:
      - /mnt/ssd/paperless/data:/usr/src/paperless/data
      - /mnt/ssd/paperless/media:/usr/src/paperless/media
      - /mnt/ssd/paperless/export:/usr/src/paperless/export
      - /mnt/ssd/paperless/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      
    env_file:
      - stack.env

volumes:
  data:
  media:
  pgdata:
  redisdata:

Nextcloud:

version: '2'
services:
  mariadb:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    ports:
      - 9022:3306
    volumes:
      - /docker_data/nextcloud/nextcloud_database:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=*
      - MYSQL_DATABASE=*
      - MYSQL_USER=*
  nextcloud:
    image: nextcloud
    restart: always
    ports:
      - 8081:80
    links:
      - mariadb:mysql
    volumes:
      - /docker_data/nextcloud/nextcloud_data:/var/www/html 
      - /docker_data/nextcloud/apps:/var/www/html/custom_apps 
      - /docker_data/nextcloud/config:/var/www/html/config 
      - /mnt/ssd/ncdata:/var/www/html/data 
    environment:
      - MYSQL_PASSWORD=*
      - MYSQL_DATABASE=*
      - MYSQL_USER=*
      - MYSQL_HOST=*

Ja du bindest das paperless in dem Fall gar nicht ein, daher kann er den Pfad natürlich nicht finden.
Ich habe keine Erfahrung mit der docker edition von nc daher weiß ich nicht ob folgendes möglich ist also ob der pfad existiert.

Nextcloud volumes ergänzen:
/mnt/ssd/paperless:/mnt/paperless

So würde aber ein mnt des paperless pfad eingebunden werden und solltest dann per lokal mnt in der nextcloud einbinden können

Vielen Dank!
Habe jetzt aber eine Frage, wie gesagt bin Anfänger und möchte gerne auch was lernen.
Ich binde doch hier folgenden Pfad ein:

- /mnt/ssd/paperless/consume:/usr/src/paperless/consume

Wieso kann ich denn dann nicht direkt auch den Pfad /mnt/ssd/paperless/consume verwenden?

klar hindert dich keiner, kannst du tun, nur dann hättest du den export ordner nicht bzw müsstest den auch nochmal einbinden daher war das wie alles nur ein Vorschlag?
Prinzipiell stelle ich mir die Frage deines Aufbaus, aber das kann einen guten Grund haben.

Welche Frage stellst du dir denn? Ist mein Vorhaben so außergewöhnlich? :sweat_smile:

wieso du die paperless Ordner in NC einbindest, wenn NC sowieso nicht aus dem Internet erreichbar ist.
Ich bin davon ausgegangen, dass du paperless nicht einfach öffentlich machen wolltest und daher die Ordner über NC bereitstellen willst, wenn das aber alles intern ist, wieso dann der Weg?

Ist von mir eventuell etwas kompliziert gedacht.
Es kann aber jedoch mal vorkommen, dass ich per Tunnel auf Nextcloud zugreife um von der Arbeit Dateien direkt hochzuladen.
Jetzt ist es wie gesagt so, dass ich nicht viel Ahnung davon habe, wie ich Nextcloud SICHER online bringe. Da ist mir die Verbindung via WireGuard wesentlich sicherer.

Oder habe ich etwas übersehen?

ok jetzt wird das Thema dann aber sehr groß und bezieht sich auf andere Topics.
Was meinst du mit “sicher” dahinter versteckt sich sehr sehr viel.
Im Forum/ Internet findest einige Themen was man bzgl. konkreter Themen umsetzen kann.
Wenn du per VPN zugreifst, kannst du ja auch direkt auf paperless zugreifen.
Weiterhin würdest du in dem Fall auch die Dokumente sehen, wenn du nur die Ordner einbindest siehst du die Dokumente nicht und kannst nur Daten hochladen, dass könntest du auch via Mail machen und bräuchtest die NC dafür nicht.
Auch musst du in dem Fall ja ein Job einbauen der die Files entsprechend prüft
occ files: scan --path
da Paperless ja die Dateien aus dem consume Ordner entfernt, dass passiert aber auf Verzeichnisebene, also bekommt die NC das nicht mit und muss getriggerd werden, dass die Daten dann weg sind.

Hast du Recht. Eigentlich ist das über drei Ecken gedacht.
Ich nutze NC halt auch für Fotos, Videos und Dateien, welche nicht auf Paperless sollen. Daher dachte ich, dass es Sinnvoll ist NC mit Paperless zu verbinden.

Irgendwas läuft hier bei mir eh richtig verkehrt.
Ich habe gerade versucht manuell eine Datei bei Paperless hochzuladen. Habe den Fehler bekommen, dass es keine Zugrifsrechte auf die Ordner hat. Also habe ich mit *chown -R 1000:1000 /mnt/ssd/paperless
** die Rechte gesetzt.
Jetzt kann Nextcloud wieder nicht drauf zugreifen. Sagt dass der Pfad nicht existiert.

Also ich verwende Paperless nicht. Aber insgesamt gesehen macht maximal ein lesender Zugriff auf den Ordner Sinn. Ob in dem Ordner überhaupt Dokumente sind, die die Nextcloud anzeigen kann wie z. B. PDF, weiß ich nicht.

Der Zugriff über einen VPN-Tunnel ist im Übrigen anzusehen wie ein lokaler Zugriff. Bzgl. Sicherheit muss natürlich der VPN-Tunnel sicher sein. Die Anwendung selbst verhält sich wie lokal und braucht auch nicht extra abgesichert werden.