# Einrichten eines Solr-Servers auf einem Hetzner Managed Server

Über den Software Installer von Hetzner kann solr direkt installiert werden. 
Allerdings kann darüber Solr nur in der Version 8 installiert werden.
Für TYPO3 v12 wird Solr v9 benötigt. 
Dies kann auf Rat von Hetzner auf direkt als binary ausgeführt werden.

Diese Ansible Konfiguration installiert und konfiguriert einen Solr Server 9.3.0 für TYPO3 v12.

## Vorbereitungen durch Hetzner

Damit der Solr-Server auf dem Hetzner Managed Server betrieben werden kann, 
müssen von Hetzner Konfigurationen vorgenommen werden. 
Diese müssen Hetzner als Support-Anfrage übersendet werden:

* Erhöhung des Open File Limit auf 65.000
* Erhöhung des Process Limits für User gerrem auf 65.000
* Erlauben des Solr-Prozess in der Prozessüberwachung, damit dieser nicht sofort gekillt wird

Die Limit Anpassungen können mittels `ulimit -a` getestet werden. 

## Ausführen von Ansible

Um das Script auszuführen, muss ansible installiert werden.
Siehe https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html

Damit ansible funktioniert, muss auf den Server mittels Public Key zugegriffen werden können.  

```shell
cd solr
ansible-playbook deploy.yaml 
```
Das Script installiert automatisch einen Solr Server, der für TYPO3 konfiguriert wird.
Die nötigen Einstellungen sind in der `deploy.yaml` Datei einzusehen. 

## Solr Server starten

Der Solr Server kann mit folgendem Befehl gestartet werden:

```shell
# Startet den Server mit 4gb memory Nutzung (standard: 512mb) 
~/solr/bin/solr start -m 4g
```

## Einrichtung eines Cronjobs zum Starten des Solr Servers nach reboot

In der konsoleH von Hetzner muss ein Cronjob eingerichtet werden, 
der beim root triggert.
Die Zeile sieht dann wie folgt aus:

```shell
@reboot /usr/home/gerrem/solr/bin/solr start -m 4g
```

## TYPO3 Upgrade

Bei einem TYPO3 Upgrade müssen auch hier Anpassungen vorgenommen werden.

1. Anpassen der Variablen in `deploy.yaml` für die neue TYPO3 / EXT:solr Version
2. Anpassen der `files/solr.xml` - EXT:solr liefert zwar eine Datei mit, allerdings wird ie von Hetzner vorgeschlagene Datei verwendet. 
   Änderungen in der von EXT:solr gelieferten müssen in die lokale Datei übertragen werden.
