Zum Hauptinhalt springen
Diese Seite beschreibt die technische Einrichtung der Datenquelle Lokaler Ordner. Die allgemeine Beschreibung der Quellentypen finden Sie unter Wissensdatenbanken.

Wie funktioniert der Pfad?

Intern nutzt VARIOS AI das Basisverzeichnis /data/Data/KnowledgebaseDocuments im Container. Der Freigabeordner, den Sie in der UI angeben, ist ein relativer Unterordner innerhalb dieses Basisverzeichnisses. Der tatsächliche Pfad wird wie folgt zusammengesetzt:
/data/Data/KnowledgebaseDocuments + <Freigabeordner>
Beispiel: Wenn Sie als Freigabeordner /rechtstexte eintragen, sucht die Anwendung im Container unter:
/data/Data/KnowledgebaseDocuments/rechtstexte
Versteckte Dateien (mit . oder ~ beginnend) sowie Symlinks werden automatisch übersprungen. Die Pfadangabe .. (relative Pfade nach oben) ist aus Sicherheitsgründen nicht erlaubt.

Docker-Compose-Konfiguration

Damit der Container auf Ihre lokalen Dateien zugreifen kann, muss ein Volume in der docker-compose.yml konfiguriert werden. In der On-Premise-Konfiguration sieht das standardmäßig so aus:
services:
  php:
    volumes:
      # ... andere Volumes ...
      - "./KnowledgebaseDocuments:/data/Data/KnowledgebaseDocuments"
Das bedeutet: Der Ordner ./KnowledgebaseDocuments auf dem Host (relativ zum Verzeichnis der docker-compose.yml) wird im Container unter /data/Data/KnowledgebaseDocuments eingebunden.
1

Ordner auf dem Host erstellen

Erstellen Sie den Ordner, der als Volume eingebunden werden soll, und legen Sie darin bei Bedarf Unterordner an.
mkdir -p ./KnowledgebaseDocuments/rechtstexte
2

Dokumente ablegen

Kopieren oder verschieben Sie die gewünschten Dokumente in den Ordner.
cp /pfad/zu/dokument.pdf ./KnowledgebaseDocuments/rechtstexte/
3

Freigabeordner in der UI konfigurieren

Geben Sie in der Quelle als Freigabeordner den Unterordner an, z. B. /rechtstexte. Klicken Sie auf Verbindung testen, um zu prüfen, ob der Ordner erreichbar ist.
4

Synchronisierung einrichten

Wählen Sie ein Intervall (Manuell, jede Stunde, jeden Tag etc.) oder klicken Sie auf Jetzt synchronisieren, um die Dokumente sofort einzulesen.
Berechtigungen prüfen: Der Prozess im Container muss Lesezugriff auf die eingebundenen Dateien haben. Achten Sie auf die Dateirechte (insbesondere bei Linux-Systemen).

Eigene Ordner per Volume einbinden

Sie können auch einen anderen Host-Pfad als Volume einbinden, z. B. einen Netzwerk-Share oder ein beliebiges Verzeichnis auf dem Server:
services:
  php:
    volumes:
      # ... andere Volumes ...
      - "./KnowledgebaseDocuments:/data/Data/KnowledgebaseDocuments"
      # Eigenes Verzeichnis zusätzlich einbinden:
      - "/srv/firmen-dokumente:/data/Data/KnowledgebaseDocuments/firmen-dokumente:ro"
In diesem Beispiel wird /srv/firmen-dokumente auf dem Host unter /data/Data/KnowledgebaseDocuments/firmen-dokumente im Container verfügbar (read-only :ro). In der UI tragen Sie dann als Freigabeordner /firmen-dokumente ein.
Wenn Sie mit der Quelle nur lesen möchten, empfiehlt es sich, das Volume als read-only (:ro) einzubinden. So verhindern Sie versehentliche Änderungen durch den Container.

Netzwerk-Shares einbinden (SMB / NFS)

Häufig sollen Dokumente von einem Netzlaufwerk (z. B. Windows-Freigabe oder NAS) gelesen werden. Dafür mounten Sie den Netzwerk-Share zunächst auf dem Host und binden ihn dann per Volume in den Container ein.
1. Paket installieren
sudo apt update && sudo apt install -y cifs-utils
2. Mount-Punkt erstellen
sudo mkdir -p /mnt/smb-dokumente
3. Credentials-Datei anlegen (empfohlen, damit Passwörter nicht in /etc/fstab stehen)
sudo nano /etc/smbcredentials
Inhalt:
username=mein-benutzer
password=mein-passwort
domain=WORKGROUP
Rechte einschränken:
sudo chmod 600 /etc/smbcredentials
4. Dauerhaften Mount in /etc/fstab eintragen
//192.168.1.100/Dokumente /mnt/smb-dokumente cifs credentials=/etc/smbcredentials,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,iocharset=utf8 0 0
5. Mounten und prüfen
sudo mount -a
ls /mnt/smb-dokumente
6. In docker-compose.yml einbinden
services:
  php:
    volumes:
      # ... andere Volumes ...
      - "./KnowledgebaseDocuments:/data/Data/KnowledgebaseDocuments"
      - "/mnt/smb-dokumente:/data/Data/KnowledgebaseDocuments/smb-dokumente:ro"
In der UI als Freigabeordner /smb-dokumente eintragen.
Stellen Sie sicher, dass der Netzwerk-Share vor dem Start der Docker-Container gemountet ist. Andernfalls wird ein leerer Ordner in den Container eingebunden. Mit dem Eintrag in /etc/fstab geschieht das automatisch beim Systemstart.
Testen Sie nach dem Mount immer mit Verbindung testen in der UI, ob der Freigabeordner im Container erreichbar und lesbar ist.

Typische Fehler und Lösungen

FehlermeldungUrsacheLösung
„Freigabeordner konnte nicht gefunden werden”Ordner existiert nicht im ContainerVolume prüfen: Ist der Host-Pfad korrekt? Wurde der Ordner angelegt? Stimmt der Freigabeordner-Name?
„Freigabeordner konnte nicht gelesen werden”Fehlende LeseberechtigungenDateirechte auf dem Host prüfen (chmod/chown). Der Container-Prozess läuft typischerweise als bestimmter User.
Pfad mit .. wird abgelehntSicherheitsprüfung verhindert relative PfadeNur einfache Unterordnernamen verwenden (z. B. /docs), keine ../-Konstrukte.
SMB-Share wird nach Neustart nicht gemountetEintrag in /etc/fstab fehlt oder ist fehlerhaft/etc/fstab prüfen und mit sudo mount -a testen.
NFS-Mount hängt beim BootenNetzwerk ist beim Mount noch nicht bereitOption _netdev in /etc/fstab sicherstellen, damit der Mount erst nach Netzwerk-Initialisierung erfolgt.