Solr Search Engine Setup für Nextcloud via Docker Compose
Heute wollen wir in diesem Tutorial Solr Search Engine installieren für unsere Nextcloud und dem Plugin Nextant, welches wir für die Texterkennung in PDF-Dateien benötigen. Nach dem
Setup sind wir in der Lage, die PDF-Dateien zu scannen und Textinhalte über die globale Suche in der Cloud zu finden.
Das Setup
Damit alles läuft müssen einige Abhängigkeiten installiert werden, falls nicht schon vorhanden.
apt-get install docker
apt-get install docker-compose
Wir wechseln als erstes in ein leeres Verzeichnis. Ich nutze immer ~/home dafür.
Darin wird eine docker-compose.yml Datei erstellt mit folgendem Inhalt:
version: '2'
services:
solr:
image: solr:latest
ports:
- "8983:8983"
volumes:
- /opt/solr:/opt/solr/server/solr/mycores
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- nextant
restart: always
die Rechte anpassen
Anschließend die benötigten Ordner (opt/solr) und (/opt/solr/mycores) erstellen und die Rechte anpassen.
mkdir /opt/solr/mycores
sudo chown 8983:8983 /opt/solr/mycores
Danach führt man die YML-Datei aus.
docker-compose up -d
Ab sofort sollte die Solr Search Engine laufen. Das Witzige: Mit dem Image solr:latest bekommen wir das aktuelle Image Version 7.x.x, welches offiziell von Nextant nicht unterstützt wird. Aber es läuft trotzdem. Getestet und Nextcloud 12.0.4 und 13.0.0 Beta 3.
Wollt ihr den Container neu starten oder stoppen, geht dies mit docker restart solr und docker stop solr.
Damit Nextant überhaupt etwas mit Solr anfangen kann und weiß, wo es die Daten speichern muss, erstellen wir einen so genannten Core.
Core für Solr erstellen
In Solr wird der Begriff core verwendet, um auf einen einzelnen Index und die zugehörigen Transaktionsprotokoll- und Konfigurationsdateien (einschließlich der Dateien solrconfig.xml und Schema etc.) zu verweisen. Ihre Solr-Installation kann bei Bedarf mehrere Kerne haben, sodass Sie Daten mit unterschiedlichen Strukturen auf demselben Server indizieren können und mehr Kontrolle darüber haben, wie Ihre Daten verschiedenen Zielgruppen präsentiert werden.
docker exec -it <containerid> create_core -c nextant
Nextcloud einrichten für OCR
Nachdem der Container nun läuft loggen wir uns in die Cloud ein als Admin und installieren die Nextant App. In den Einstellungen dazu muss nun folgendes eingetragen werden.
Adresse des Solr-servlet: https://127.0.0.1:8983/solr
Kern (Core): Nextant
Anschließend wechselt man in das root Verzeichnis der Nextcloud Installation und startet den Dateiscan.
sudo -u www-data php occ nextant:scan
Anmerkung:
Die Variablen wie:
volumes:
- /opt/solr:/opt/solr/server/solr/mycores
dienen dazu, dass die Daten nach einem Update oder Neustart nicht verloren gehen.
restart:always
sorgt dafür, dass der Container nach einem Serverneustart automatisch gestartet wird.
Unter http://domain.tld:8983/solr ist das Panel vom Solr-Server zu erreichen.
Dies sollte man mit einem Passwort absichern.
Fügt folgenden Code in den VirtualHost Abschnitt der Apache Config Datei ein und erstellt dazu ein Password.
sudo htpasswd -c /etc/apache2/htpasswd-solr solr
# Solr
ProxyPass / https://localhost:8983/solr/
ProxyPassReverse / https://localhost:8983/solr/
AuthType Basic
AuthName "solr"
AuthUserFile /etc/apache2/htpasswd-solr
Require valid-user
Nun ist eure Solr UI mit einem Passwort geschützt.
Ich hoffe diese Anleitung hat euch weitergeholfen, würde mich über ein Teilen der Anleitung freuen. ?