Nextcloud & Einbinden externe Speicher

Ben2013

Benutzer
Registriert
01. Nov. 2021
Beiträge
124
Reaktionspunkte
13
Punkte
18
Hallo,

im Nextcloud Forum habe ich das Anliegen bereits geschildert und diskutiert: https://help.nextcloud.com/t/externe-speicher-einbinden/214640/7
Da es beim Synology nicht um ein 100% kompatibles Linux-System handelt, konnte man mir da nicht weiterhelfe. So versuche ich es hier nochmals:

Es geht darum, dass im Nextcloud keine externe Speicher zur Verfügung gestellt werden können.

Nextcloud läuft als Docker-Container.Container-Image: nextcloud:latest

Wenn in nextcloud die verwaltungswebseeite von "externe Speicher" geöffnet wird, dann stürzt die Webseite ab:

1736614782063.png


Zusätzlich wird im Protokoll imme wieder ein Fehler Protokolliert:

Code:
Exception
No parameters in call to OC\DB\QueryBuilder\ExpressionBuilder\ExpressionBuilder::orX
Calling OCP\DB\QueryBuilder\IQueryBuilder::orX without parameters is deprecated and will throw soon.

Anwendung: workflowengine
Flow activation: rules were requested for operation Zugriff auf Datei verhindern

Weiß jemand, wie man diese Fehler beseitigen kann?
 
ich würde mal diesen Thread nutzten um meine Fragestellung mit dem externen Speicher zu stellen.
Dabei habe ich ja nach mariushosting´s Anleitung Nextcloud installiert, dies läuft auch soweit. Wie kann ich nun Dateien auf der Synology wo ja auch Nextcloud läuft darauf zugreifen? Muss ich im Stack den Pfad eingeben oder unter Portainer > Containers > Nextcloud > Volume mapping was eintragen?

Auf folgendes Beispiel würde ich Zugriff haben "/volume1/Public" wollen. Kann mir da jemand helfen?


services:
mariadb:
container_name: Nextcloud-DB
image: mariadb:11.4-noble #LTS Long Time Support Until May 29, 2029.
security_opt:
- no-new-privileges:false
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
volumes:
- /volume2/docker/nextcloud/db:/var/lib/mysql:rw
- /volume2/docker/nextcloud/db:/etc/mysql/conf.d:rw
environment:
- MYSQL_ROOT_PASSWORD=xxxxxxxxxxx
- MYSQL_PASSWORD=xxxxxxxxxxxxxxxxxxx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- TZ=Europe/Berlin
restart: on-failure:5

redis:
image: redis
container_name: Nextcloud-REDIS
hostname: nextcloudredis
user: 1029:100
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume2/docker/nextcloud/redis:/data:rw
environment:
TZ: Europe/Berlin
restart: on-failure:5

nextcloud:
container_name: Nextcloud
ports:
- 8082:80
depends_on:
mariadb:
condition: service_started
redis:
condition: service_healthy
environment:
- REDIS_HOST=nextcloudredis
- NEXTCLOUD_ADMIN_USER=xxxxxxxxxxx
- NEXTCLOUD_ADMIN_PASSWORD=xxxxxxxxxxxxxxxx
- NEXTCLOUD_TRUSTED_DOMAINS=nxxxxxxxxxxxxxxxxxxxxxxxnology.me 192.168.178.38
- TRUSTED_PROXIES=192.168.178.38
- OVERWRITEHOST=nextxxxxxxxxxx9.synology.me
- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxx
- MYSQL_DATABASE=xxxxxxxxx
- MYSQL_USER=xxxxxxxxxxxxxxxxxxxxxx
- MYSQL_HOST=mariadb
healthcheck:
test: curl -f http://localhost:80/ || exit 1
volumes:
- /volume2/docker/nextcloud/html:/var/www/html:rw
- /volume2/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw
- /volume2/docker/nextcloud/config:/var/www/html/config:rw
- /volume2/docker/nextcloud/data:/var/www/html/data:rw
- /volume2/docker/nextcloud/themes:/var/www/html/themes:rw
image: nextcloud
restart: on-failure:5

cron:
image: nextcloud:apache
container_name: Nextcloud-CRON
restart: always
volumes:
- /volume2/docker/nextcloud/config:/var/www/html/config:rw
- /volume2/docker/nextcloud/html:/var/www/html:rw
- /volume2/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw
- /volume2/docker/nextcloud/data:/var/www/html/data:rw
entrypoint: /cron.sh
depends_on:
mariadb:
condition: service_started
redis:
condition: service_started
 

Anhänge

  • Screenshot 2025-03-25 203334.png
    Screenshot 2025-03-25 203334.png
    61,1 KB · Aufrufe: 11
  • volume1.png
    volume1.png
    208,8 KB · Aufrufe: 11
Zuletzt bearbeitet von einem Moderator:
Hallo Kenji,

standardmäßig werden alle Dateien im Pfad /var/www/html/data/[Benutzername]/files/ abgelegt.

Um Dateien allen Benutzern zugänglich machen zu können, kann man die App "Team Folders" in Nextcloud installieren.

Mit der Installation wird ein neuer Benutzer "__groupfolders" eingerichtet. Nach der Einrichtung eines Team Ordners wird eine fortlaufende Nummer als Ordner erstellt, in dem künftig alle Dateien angelegt werden.

Nun könnte man den Pfad /var/www/html/data/__groupfolders/[interneNummer]/ über eine Docker-Volumen-Eintrag auf einen anderen Pfad umleiten.

Wenn allerdings im neuen Pfad die Dateien direkt geändert werden, dann müssen die Änderungen mit einem scan-Vorgang in Nextcloud bekannt gemacht werden. Der Scan-Befehl kann allerdings auch das Erstellungsdatum von den Dateien in Nextcloud verändern. So war es zumindest noch vor etwa 2 Jahren gewesen.

Dieses Verfahren kann man anwenden, um intern eine "externen Speicher" in Nextcloud mit Einschränkungen zur Verfügung stellen zu können.
 
Gibts dafür noch einen Smarten Weg?
 
Folgendes habe ich mal ausprobiert. Was meinst du den mit "fortlaufende Nummer als Ordner erstellt"? Ich kann den Team Folder ja bennen wie ich will.

Bei keiner Option die ich derzeit eingestellt habe ist im Ordner was zu sehen > Storage is temporarily not available unter Externale Storage

Kannst du mir da helfen?


4.png5.png2.png
 
Was meinst du den mit "fortlaufende Nummer als Ordner erstellt"?
Damit meine Ich attsächlich die interne Nummer, die von der App "TeamFolders" vergeben wird, sobald ein neuer Team Ordner erstellt wrde. Der Team Ordner kann tatsächlich beliebig bezeichnet werden. Intern wird jedoch immer die Nummer verwendet.
 
okay, also habe nochmal einiges ausprobiert. Trotzdem komme ich nur an leere Ordner ran.
Was mache ich falsch?

Andere Frage noch, würde eine Verbindung zu FTP/WebDAV funktionieren? Habe mal alle ausprobiert aber nirgends eine Verbindung bekommen..


1743327895351.png
1743327932207.png
1743327992425.png
1743328152323.png
1743328215538.png
 

Anhänge

  • 1743327489554.png
    1743327489554.png
    32 KB · Aufrufe: 3
  • 1743327267735.png
    1743327267735.png
    17,1 KB · Aufrufe: 2
  • 1743327249892.png
    1743327249892.png
    64,7 KB · Aufrufe: 4
Um die Situation nachstellen zu können, wurde ein neuer Team One-Ordner über die Verwaltungseinstellungen erstellt:
Screenshot_20250330-132946_Chrome.jpg
Wichtig ist hierbei, das eine Gruppe oder Team angegeben wird.

Direkt nach dem Erstellen des Ordners wird im Dateisystem noch kein neuer leerer Ordner stellt:

Screenshot_20250330-133510_JuiceSSH.jpg

Erst nach dem Anlagen eines neuen Beispiel-Ordners "Test" wird der neue Team Ordner im Dateisystem angelegt:

Screenshot_20250330-133902_JuiceSSH.jpg

Die Docker Container werden in meinem Falle über Portainer verwaltet.

Damit die die Inhalte vom externen Speicher angezeigt werden können, muss im Docker-Container ein Volume-Eintrag unter Advanced Container settings angelegt werden:

Nextcloud-Test.png

Mit Deploy the Container werden die Änderungen übernommen und der Container neu gestartet. Dies kan je nach System eine gewisse Zeit in Anspruch nehmen.

Damit im Neuen Pfad /volume1/Test Nextcloud neue Inhalte erstellen kann, müssen die Berechtigungen angepasst werden:

In meinem Falle hat Nextcloud die Besitzer-ID und Gruppen-ID 33.

chown -R 33:33 /volume1/Test

Im Beispiel existiert ein Test-Ordner "Test neu" im neuen Pfad:
Screenshot_20250330-141623_JuiceSSH.jpg

Wenn Nextcloud die Inhalte des TeamOrdners "Team One" anzeigt, werden die Inhalte entsprechend aufgelistet:

nextcloud-TEst1.png

Neue Erkenntnis beim Test: Wenn außerhalb von Nextcloud eine neue Datei erstellt wird, dann erkennt Nextcloud dies nach einer gewissen Verzögerung und zeigt die neue Datei an:

Screenshot_20250330-142728_JuiceSSH.jpg
(Im Screenshot fehlt der Befehl chown 33:33 testdatei.txt - Daher wird der falsche Dateibesitzer angezeigt)

Voraussetzung: Die Neue Datei muss die gleichen Berechtigungen haben, wie die über Nextcloud erstellten Dateien.

In meinem Falle wird dann folgendes angezeigt werden
Screenshot_20250330-142912_Chrome.jpg

Auf diese Weise kann eine externer Speicher in Nextcloud eingebunden werden.
 

Anhänge

  • Screenshot_20250330-140241_Chrome.jpg
    Screenshot_20250330-140241_Chrome.jpg
    114,3 KB · Aufrufe: 2
  • Screenshot_20250330-142728_JuiceSSH.jpg
    Screenshot_20250330-142728_JuiceSSH.jpg
    117,8 KB · Aufrufe: 2
  • Screenshot_20250330-142728_JuiceSSH.jpg
    Screenshot_20250330-142728_JuiceSSH.jpg
    117,8 KB · Aufrufe: 2
  • Screenshot_20250330-141623_JuiceSSH.jpg
    Screenshot_20250330-141623_JuiceSSH.jpg
    25,7 KB · Aufrufe: 2
  • Screenshot_20250330-140340_Chrome.jpg
    Screenshot_20250330-140340_Chrome.jpg
    15,4 KB · Aufrufe: 2
  • Screenshot_20250330-133902_JuiceSSH.jpg
    Screenshot_20250330-133902_JuiceSSH.jpg
    55,4 KB · Aufrufe: 2
  • Screenshot_20250330-133510_JuiceSSH.jpg
    Screenshot_20250330-133510_JuiceSSH.jpg
    28,7 KB · Aufrufe: 3
  • Screenshot_20250330-132946_Chrome.jpg
    Screenshot_20250330-132946_Chrome.jpg
    21,5 KB · Aufrufe: 3
Zuletzt bearbeitet:
  • Like
Reaktionen: Kenji
Vielen Dank für die ausführliche Antwort. Ich habe dies nun hinbekommen.

Nun stellt sich aber eine Frage: wie kann ich die bestehenden Dateien sehen? Derzeit liegen bei mir unter "volume1/Public" zig Daten.

Wenn nun neue hinzukommen (außerhalb von nextcloud) wer diese dann doch nicht angezeigt oder,? Das wäre sonst schlecht..
 
Normalerweise müsste Nextcloud die neuen Dateien automatisch erkennen.

So war es in meinem Fall gewesen, als ich eine neue Datei außerhalb von Nextcloud erstellt habe. Wichtig ist nur die Berechtigung. Wenn die Berechtigung nicht vorhanden ist, kann Nextcloud diese nicht lesen.

Es müssen von allen Dateien die Berechtigungen angepasst werden. Dann sollten diese auch von Nextcloud erkennt werden.
 
  • Like
Reaktionen: Kenji
So nun hat alles geklappt. Musste aber die Ordnerberechtigungen auf Everybody umstellen. Kann ich dies noch ein wenig Eingrenzen? Woher weiß ich welcher Benutztername darauf zugreift?

Vielen dank erstmal!

1743447654191.png
 

Additional post fields

 

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