Wähle einen Artikel
Nextcloud mit Elasticsearch installieren
Nextcloud mit Elasticsearch installieren

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

0. Überblick

  • Verwendetes System: Debian 11 64 bit
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 15 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren ?
  • Besonderheiten:
  • Grundlage ist folgende Anleitung: /de/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren Diese Anleitung muss zuerst ausgeführt werden.
  • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Nextcloud mit Elasticsearch Installieren

1.1 Einleitung

Nextcloud ist eine open source Software welche es ermöglicht eine private Cloud zu betreiben. Der Vorteil von Nextcloud ist, dass es genauso einfach zu bedienen ist wie beispielsweise Dropbox, aber alle Daten auf dem eigenen Server gespeichert werden. So weiß man jederzeit wer Zugriff auf die eigenen Dateien hat und wo diese gespeichert sind. Nextcloud wird auch in einer kostenpflichtigen Enterprise Version angeboten, welche zusätzlichen Support bietet. Nextcloud kann über einen internen Store beliebig erweitert werden. So ist es zum Beispiel möglich OnlyOffice zu integrieren, Kalender oder Kontakte zu verwalten oder Videokonferenzen zu betreiben.

Elasticsearch ist eine Engine, welche viele Daten durchsuchen kann. Wir wollen Elasticsearch dazu nutzen, dass wir alle unsere Nextcloud Dateien durchsuchen können.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Du kannst den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Nextcloud werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation. Um Nextcloud neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu findest du hier: /de/vps/anwendungen/traefik-reverseproxy-auf-vps-installieren

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Nextcloud und Elasticsearch abspeichern. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/nextcloud/{database,app,daten,nextcloud-app,imagemagick}
mkdir -p /opt/containers/nextcloud/elasticsearch/data chmod 777 -R /opt/containers/nextcloud/elasticsearch/data

Du kannst t hier auch ein anderes Verzeichnis verwenden. Musst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Nextcloud und Elasticsearch beginnen. Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/docker-compose.yml

Nun kopierst du folgenden Code in die Datei. Dieser Code ist unser Bauplan für unser Projekt.

version: '3.3'
services:
  nextcloud-db:
    image: mariadb container_name: nextcloud-db command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF restart: unless-stopped volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /opt/containers/nextcloud/database:/var/lib/mysql environment:
      - MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben
      - MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben
      - MYSQL_DATABASE=nextcloud #Datenbank Name
      - MYSQL_USER=nextcloud #SQL Nutzername
      - MYSQL_INITDB_SKIP_TZINFO=1
    networks:
      - default nextcloud-redis:
    image: redis:alpine container_name: nextcloud-redis hostname: nextcloud-redis networks:
        - default restart: unless-stopped command: redis-server --requirepass test # Redis Passwort eingeben nextcloud-app:
    build: ./nextcloud-app container_name: nextcloud-app restart: unless-stopped depends_on:
      - nextcloud-db
      - nextcloud-redis environment:
        REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben volumes:
      - /opt/containers/nextcloud/app:/var/www/html
      - /opt/containers/nextcloud/daten:/var/www/html/data
      - /opt/containers/nextcloud/imagemagick/policy.xml:/etc/ImageMagick-6/policy.xml labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud-app.entrypoints=http"
      - "traefik.http.routers.nextcloud-app.rule=Host(`nextcloud.euredomain.de`)"
      - "traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect"
      - "traefik.http.routers.nextcloud-app-secure.entrypoints=https"
      - "traefik.http.routers.nextcloud-app-secure.rule=Host(`nextcloud.euredomain.de`)"
      - "traefik.http.routers.nextcloud-app-secure.tls=true"
      - "traefik.http.routers.nextcloud-app-secure.tls.certresolver=http"
      - "traefik.http.routers.nextcloud-app-secure.service=nextcloud-app"
      - "traefik.http.services.nextcloud-app.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"
    networks:
      - proxy
      - default elasticsearch:
    build: ./elasticsearch container_name: elasticsearch restart: unless-stopped environment:
      - discovery.type=single-node ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /opt/containers/nextcloud/elasticsearch/data:/usr/share/elasticsearch/data networks:
      - default networks:
  proxy:
    external: true

Nun müssen wir noch einiges anpassen.

1.3.3 Hostname anpassen

Nun musst du noch den Hostnamen anpassen, über welchen später Nextcloud erreichbar sein soll. Diese beiden Zeilen musst du anpassen.

    - "traefik.http.routers. nextcloud-app.rule=Host(`nextcloud.euredomain.de `)"
    - "traefik.http.routers. nextcloud-app -secure.rule=Host(`nextcloud.euredomain.de`)"

In meinem Fall also:

    - "traefik.http.routers. nextcloud-app.rule=Host(`nextcloud.testbereich.net`)"
    - "traefik.http.routers. nextcloud-app-secure.rule=Host(`nextcloud.testbereich.net`)"

Wenn du Nextcloud direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab:

"traefik.http.routers.nextcloud-app.rule=Host(`www.euredomain.de`,`euredomain.de`)"
"traefik.http.routers.nextcloud-app-secure.rule=Host(`www.euredomain.de`,`euredomain.de`)"

1.3.4 Passwörter anpassen

Nachdem du den Hostnamen angepasst hast, solltest / musst du noch die Passwörter anpassen. Vergib ein langes, sicheres Kennwort.

Folgende Zeilen musst du ändern:

- MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben
- MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben command: redis-server --requirepass test # Redis Passwort eingeben REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

- MYSQL_ROOT_PASSWORD=fjgz4Anfh!r4 #SQL root Passwort eingeben
- MYSQL_PASSWORD=uhk678!nfha3X #SQL Benutzer Passwort eingeben command: redis-server --requirepass ugh5212Gf # Redis Passwort eingeben REDIS_HOST_PASSWORD: ugh5212Gf # Redis Passwort von oben wieder eingeben

1.3.5 Anpassungen für ImageMagick

ImageMagick nutzen wir zum Umwandeln von PDFs in Fotos. Diese können wir dann später per OCR durchsuchen lassen. Hier müssen wir noch eine kleine Anpassung vornehmen.

Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/imagemagick/policy.xml

Kopiere nun folgendes in die Datei:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
  <!ELEMENT policymap (policy)+>
  <!ATTLIST policymap xmlns CDATA #FIXED ''>
  <!ELEMENT policy EMPTY>
  <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
]>
<policymap>
  <!-- <policy domain="system" name="shred" value="2"/> -->
  <!-- <policy domain="system" name="precision" value="6"/> -->
  <!-- <policy domain="system" name="memory-map" value="anonymous"/> -->
  <!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
  <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
  <policy domain="resource" name="memory" value="256MiB"/>
  <policy domain="resource" name="map" value="512MiB"/>
  <policy domain="resource" name="width" value="16KP"/>
  <policy domain="resource" name="height" value="16KP"/>
  <!-- <policy domain="resource" name="list-length" value="128"/> -->
  <policy domain="resource" name="area" value="128MB"/>
  <policy domain="resource" name="disk" value="1GiB"/>
  <!-- <policy domain="resource" name="file" value="768"/> -->
  <!-- <policy domain="resource" name="thread" value="4"/> -->
  <!-- <policy domain="resource" name="throttle" value="0"/> -->
  <!-- <policy domain="resource" name="time" value="3600"/> -->
  <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
  <!-- <policy domain="module" rights="none" pattern="{PS,PDF,XPS}" /> -->
  <!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
  <!-- <policy domain="path" rights="none" pattern="@*" /> -->
  <!-- <policy domain="cache" name="memory-map" value="anonymous"/> -->
  <!-- <policy domain="cache" name="synchronize" value="True"/> -->
  <!-- <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> -->
  <!-- <policy domain="system" name="pixel-cache-memory" value="anonymous"/> -->
  <!-- <policy domain="system" name="shred" value="2"/> -->
  <!-- <policy domain="system" name="precision" value="6"/> -->
  <!-- not needed due to the need to use explicitly by mvg: -->
  <!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
  <!-- use curl -->
  <policy domain="delegate" rights="none" pattern="URL" />
  <policy domain="delegate" rights="none" pattern="HTTPS" />
  <policy domain="delegate" rights="none" pattern="HTTP" />
  <!-- in order to avoid to get image with password text -->
  <policy domain="path" rights="none" pattern="@*"/>
  <!-- disable ghostscript format types -->
  <policy domain="coder" rights="none" pattern="PS" />
  <policy domain="coder" rights="none" pattern="PS2" />
  <policy domain="coder" rights="none" pattern="PS3" />
  <policy domain="coder" rights="none" pattern="EPS" />
  <policy domain="coder" rights="read | write" pattern="PDF" />
  <policy domain="coder" rights="none" pattern="XPS" />
</policymap>

1.3.6 Anpassungen für Nextcloud

Wir müssen unseren Nextcloud Container noch etwas erweitern, damit später alles korrekt funktioniert. Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/nextcloud-app/Dockerfile

Kopiere nun folgenden Code in die Datei:

FROM nextcloud RUN apt-get update RUN apt-get install -y ghostscript RUN apt install -y libmagickwand-dev --no-install-recommends RUN pecl install imagick; exit 0
RUN docker-php-ext-enable imagick RUN rm -rf /var/lib/apt/lists/*

Nun kannst du die Datei speichern.

1.3.7 Anpassungen für Elasticsearch

Wir müssen hier noch das Programm „Tesseract“ installieren, welches für uns die OCR Erkennung durchführt. Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/elasticsearch/Dockerfile

Gib hier nun folgendes ein:

FROM elasticsearch:7.16.2
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng

Nun wird eine OCR Erkennung für die beiden Sprachen „Deutsch“ und „Englisch“ installiert. Wer noch weiteren Sprachen benötigt, kann sich hier die Namen der entsprechenden Pakete anschauen und die obige Liste entsprechend erweitern.

1.3.8 Nextcloud / Elasticsearch Image erstellen

Nun lassen wir unsere Images „erstellen“. Dieser Vorgang kann einige Zeit (Minuten) dauern, da die einzelnen Pakete nun heruntergeladen und in die entsprechenden Container installiert werden müssen. Gib dazu folgenden Befehl ein:

cd /opt/containers/nextcloud docker compose build 

Nun sind wir fertig mit der Vorarbeit und können Nextcloud zum ersten Mal starten.

2. Nextcloud starten

Gib nun folgendes ein, um deinen Nextcloud Container zu starten:

docker compose -f /opt/containers/nextcloud/docker-compose.yml up -d 

Gehe nun mit deinem Webbrowser auf deine Webseite (z.B. nextcloud.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Blauer Bildschirm mit zentralem Login-Formular (Benutzername, Passwort) und weißem Logo oben; darunter eine dunkle Hinweisbox.

Nun legst du einen Namen / Passwort für deinen Administrator-Account fest.

Blaues Hintergrundbild mit weißem Login-Formular: Felder 'Benutzername' und 'Passwort' mit Augensymbol rechts.

Anschließend klickst du auf „Speicher & Datenbank“.

Blaues UI mit Login: Nutzer 'dogado', Passwort-Punkte, Eye-Icon; darunter Button 'Speicher & Datenbank' mit Pfeil.

Nun solltest du mehr Einstellungen sehen. Klicke dann auf „MySQL/MariaDB“.

Hier gibst du nun deine Daten ein. Alle diese Einstellungen stehen in der Datei von eben. Schau dort einfach nach, wenn du deinen Benutzer / Passwort nicht mehr weißt. Bei mir wäre das:

  • Datenbank-Benutzer: nextcloud
  • Datenbank-Passwort: uhk678!nfha3X
  • Datenbank-Name: nextcloud
  • Letzte Zeile: nextcloud-db
UI zur Datenbankerstellung mit rotem Rahmen; Felder zeigen: nextcloud, uhk678!nfha3X (Augen), nextcloud, nextcloud-db.

Nun kannst du noch wählen, ob die „empfohlenen Apps“ installiert werden sollen. Ich entferne hier den Haken, da du später einfach mit einem Klick die benötigten Apps selbst installieren kannst.

Blauer Bildschirm mit einer weißen, abgerundeten Schaltfläche Installation abschließen und Checkbox für empfohlene Apps.

Nun klickst du „Installation abschließen“. Nun wird Nextcloud installiert. Nach der Installation solltest du folgendes sehen.

Blaues, abgerundetes Rechteck mit Nextcloud Hub Logo und einer Symbolreihe darunter; unscharfer Hintergrund.
Blauer Hintergrund mit Nextcloud-Logo; weißes Fenster mit Optionen: Daten hosten, offene Standards, Open Source, Erfahre mehr

Nun bist du fertig mit der Installation und kannst Nextcloud nutzen.

3. Optimierung

Klicke nun oben rechts auf den „Kreis“ und wähle „Einstellungen“ aus.

Offenes Benutzer-Menü mit blauem Profilbild (D), Name dogado, grünem Status; hervorgehobene Option 'Einstellungen'.

Hier klickst du nun auf „Übersicht“.

Screenshot einer App-Seitenleiste mit Menüpunkten; hervorgehobene Übersicht unter Verwaltung.

Jetzt bekommst du einige Tipps, was du noch „verbessern“ kannst.

Screenshot einer Admin-Seite mit Sicherheits- und Einrichtungswarnungen; roter Rahmen um eine Meldung.

3.1 Reverse Proxy anpassen

Wir werden jetzt den Reverse Proxy noch anpassen, damit diese Warnung verschwindet. Dazu gibst du auf deiner Konsole folgendes ein:

docker inspect traefik

Ganz am Schluss der Ausgabe sollte es so aussehen:

Screenshot eines Code-Blocks mit JSON-Daten; IPAddress: 172.18.0.3 ist durch roten Rahmen hervorgehoben.

Bei mir ist die „IPAdress“ 172.18.0.2 und die „IPPrefixLen“ 16. Diese beiden Werte merken wir uns nun und passen unsere Nextcloud config.php an.

Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Füge nun folgende Zeile hinzu:

  'trusted_proxies' =>
  array (
    0 => '172.18.0.2/16',
  ),

Passe diese bitte an, falls die Werte von meinen Werten abweichen sollten.

Konfigurationszeile: 'trusted proxies' => 172.18.0.3/16,

Nun kannst du die Datei beenden und bist hier fertig. Wenn du nun die Prüfung wiederholst sollte die Zeile zum Reverse Proxy verschwunden sein.

Dialogfenster mit der Überschrift Sicherheits- & Einrichtungswarnungen; mehrzeiliger Text zur Sicherheit und Systemkonfiguration.

3.2 Nextcloud auf HTTPS umstellen

Um Fehler zu vermeiden, konfigurieren wir Nextcloud so um, dass es nur auf die HTTPS Adresse hört. Dazu öffnest du folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Hier passt du nun folgende Zeilen an. vorher:

'overwrite.cli.url' => 'http://nextcloud.euredomain.de',

nachher:

'overwrite.cli.url' => 'https://nextcloud.euredomain.de',

Zusätzlich fügst du noch folgende Zeilen hinzu:

'overwriteprotocol' => 'https',
'overwritehost' => 'nextcloud.euredomain.de',

Dies sieht dann bei mir so aus:

PHP-Konfigurationsdatei mit drei Einträgen: overwrite_uri, overwriteprotocol, overwritehost.

Nun kannst du die Datei speichern und beenden.

3.3 Standardtelefonregion festlegen

Die letzte Fehlermeldung in der Übersicht hat uns darüber informiert, dass wir keine Standardtelefonregion festgelegt haben. Dies tun wir jetzt. Öffne dazu folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Füge folgende Zeile hinzu:

'default_phone_region' => 'DE',

Bei mir sieht es so aus:

Code-Schnipsel eines PHP-Arrays; sichtbar ist die Zeile 'default_phone_region' => 'DE'.

Jetzt ist deine Standardregion Deutschland. Speichere nun ab und beende die Datei.

3.4 Sicherheitswarnungen anzeigen lassen

Wenn du nun wieder in die Nextcloud Übersicht gehst, sollten alle Fehlermeldungen verschwunden sein.

Nextcloud-Seite mit Sicherheits- und Einrichtungswarnungen, grünem Häkchen, Texten und Versionsangabe 22.1.0.

4. Nextcloud Sicherheits Scanner

Wir können nun noch überprüfen, ob unsere Nextcloud Installation „sicher“ ist. Dazu gehst du auf folgende Webseite: https://scan.nextcloud.com

Screenshot einer Nextcloud Security Scan-Seite mit blauem Kopfbereich, zentraler Überschrift und Scan-Eingabefeld.

Gib hier nun deine URL ein. Bei mir ist dies „nextcloud.testbereich.net“. Nach kurzer Zeit erhältst du dann dein Ergebnis. Bei mir sieht es so aus:

Screenshot der Nextcloud-Sicherheitsseite: blauer Kopfbereich, Check the security of your private cloud server, A+.

5. Elasticsearch nutzen

Nun wollen wir Elasticsearch integrieren. Dazu müssen wir lediglich noch einige Apps installieren.

5.1 Apps installieren

Klicke nun auf deinen „Buchstaben“ und wähle „Apps“ aus.

Mobile Screenshot: Blaues Kopfzeilen-Menü mit Profilbild D; Dropdown mit Status setzen, Einstellungen, + Apps, Über

Wähle nun auf der linken Seite „Suche“ aus.

Bildschirm mit blauer Kopfzeile; weiße Seitenleiste mit Symbolen und Einträgen wie Deine Apps, Aktive Apps, Suche, Sicherheit.

Installiere nun folgende Apps

  • Full text search
  • Full text Elasticsearch Platform
  • Full text search – Files
  • Full text search - Files – Tesseract OCR
Raster aus Vorschau-Kacheln mit Such-Icons, Überschriften wie Full text search, rote Buttons 'Herunterladen und aktivieren'.

5.2 Verbindung zu Elasticsearch herstellen

Nachdem du nun die Apps installiert hast, müssen wir diese noch Konfigurieren. Klicke dazu auf deinen „Buchstaben“ und wähle „Einstellungen“ aus.

Offenes Benutzer-Menü mit blauem Profilbild (D), Name dogado, grünem Status; hervorgehobene Option 'Einstellungen'.

Wähle nun auf der linken Seite „Volltextsuche“ aus.

Screenshot eines linken Seitenmenüs mit Symbolen und deutschen Bezeichnungen; Menüpunkt Volltextsuche rot umrandet.

Nun siehst du folgendes:

Screenshot einer Einstellungsseite: Allgemein, Suchplattform-Dropdown, Navigations-Symbol mit Checkbox, Hinweis zur Suche.

Nun wählst du folgende Einstellungen aus:

Allgemein: Suchplattform-Dropdown zeigt Elasticsearch; Navigations-Symbol-Checkbox ist aktiviert.
ElasticSearch-Benutzeroberfläche mit drei Feldern: Adresse 'elasticsearch:9200', Index 'cloud', Tokenizer 'standard'.
Seite Dateien: Lokale Dateien (Box), Externe Dateien (Dropdown), Maximale Dateigröße 20, PDF- und Office-Dateien indizieren.
Screenshot eines OCR-Fensters: Enable OCR, PDF aktiviert; Sprachen eng/de; Page Segmentation 4; Limit PDF pages 0.

Nun hast du alles so weit eingerichtet. Jetzt musst du nur noch dafür sorgen, dass deine Dateien indexiert werden.

5.3 Volltextsuche initialisieren

Jetzt starten wir die Indexierung aller Dateien. Dazu gibst du folgenden Befehl ein:

docker exec --user www-data nextcloud-app php occ fulltextsearch:index

Dieser Vorgang kann einige Zeit dauern, da nun alle Dateien durchsucht werden.

Schwarzes Terminalfenster mit Dateiname: Nexcloud Manual.pdf, Info: application/pdf, Progress 0/1, Status ok, Errors 0/0.

Warte einfach, bis du den Cursor / Eingabezeile wieder siehst. Dies kann einige Minuten dauern.

5.4 Neue Dateien initialisieren

Jetzt hast du alle Dateien indexiert, welche zu diesem Zeitpunkt existiert haben. Wenn du nun jedoch neue Dateien anlegst, sind diese nicht durchsuchbar. Daher musst du in regelmäßigen Abständen alle Dateien neu durchsuchen lassen. Dazu hast du 2 Möglichkeiten:

  1. Die Initialisierung immer im Hintergrund laufen lassen
  2. Die Initialisierung automatisch zu einem bestimmten Zeitpunkt starten

5.4.1 Im Hintergrund initialisieren

Dazu gibst du folgenden Befehl ein:

docker exec --user www-data nextcloud-app php occ fulltextsearch:live

Nun siehst du folgendes:

Schwarzes Terminalfenster mit weißem Text; Statusmeldungen wie Memory, Indexing, Result, Errors und Dateiinformationen.

Du kannst die Ausgabe nun mit „STRG+C“ abbrechen. Die Initialisierung im Container läuft trotzdem noch weiter.

5.4.2 Zu einem bestimmten Zeitpunkt initialisieren

Dazu erstellen wir uns einen Cronjob. Gib dazu folgendes ein:

crontab -e

Wähle nun „1“ aus.

Terminal: crontab -e; Editor-Auswahl: 1) /bin/nano <-- easiest; 2) /usr/bin/vim.basic; 3) /bin/ed. Choose 1-3 [1]

Füge nun folgenden Code ein:

*/5 * * * * docker exec --user www-data nextcloud-app php occ fulltextsearch:index
GNU nano 3.2 geöffnet; Crontab-Vorlage mit Kommentaren zu Minute, Stunde, dom, mon, dow; Beispielzeile unten.

Dieser Code sorgt dafür, dass die Initialisierung alle 5 Minuten gestartet wird.

6. Volltextsuche nutzen

Um deine Dateien zu durchsuchen, musst du auf die „Lupe“ klicken.

Blaue Leiste mit weißen Symbolen; roter Rahmen um ein Quadrat mit weißer Lupe.

Hier kannst du nun Dateien / Wörter suchen.

Screenshot einer Suchoberfläche: Suchbegriff 'dogado' mit Treffer dogado.md – Hallo dogado; linke Dateiliste.
Nächster Artikel
Pydio File Sharing auf VPS installieren
Weitere passende Themen