Eine Meta-Suchmaschine mit Searx einrichten | Docker-compose

In einem etwas älteren Beitrag habe ich beschrieben wie man Searx, eine Meta Suchmaschine, aufsetzt via Docker Image.
Nun soll die Installation vereinfacht werden, gerade im Hinblick auf spätere Updates. Die Updates können dann automatisiert werden.

Voraussetzungen

Damit das Tutorial angefangen werden kann, muss folgendes bereits installiert sein.

  1. Docker
  2. Docker-compose

Installation

Es geht los! Zuerst alles nötige herunterladen und entpacken.

cd /usr/local
git clone https://github.com/searx/searx-docker.git
cd searx-docker

Anschließend muss eine .env Datei angepasst werden.

sudo vi .env
# hostname
SEARX_HOSTNAME=localhost # <- abändern in die entsprechende Domain (https://searx.domain.tld)

# comment both if SEARX_HOSTNAME is NOT localhost
#SEARX_PROTOCOL=https://
#SEARX_TLS=self_signed

# automaticaly update settings to the new version
# comment this line if you made / will make some modifications to the settings
#SEARX_COMMAND=-f

# Let's encrypt contact information
LETSENCRYPT_EMAIL=email@example.com #eine gültige Emailadresse angeben

# Do you agree Let's Encrypt TOS https://letsencrypt.org/repository/
LETSENCRYPT_AGREE=true

# use openssl rand -base64 33
MORTY_KEY=RemplaceWithARealKey! #ausfüllen!!

# filtron ( /filtron/rules ), use for example "tr -cd '[:alnum:]' < /dev/urandom | fold -w12 | head -n1"
FILTRON_USER=filtron
FILTRON_PASSWORD=SetARealPassword # ausfüllen!!
Die Konfigurationsdatei von Searx

Mit ./start.sh schauen, ob alles passt.

Wenn, alles okay ist Folgendes ausführen

cp searx-docker.service.template searx-docker.service
systemctl enable $(pwd)/searx-docker.service
systemctl start searx-docker.service

Start und Neustart des Containers

Gestartet und gestoppt werden kann der Container mit

systemctl stop searx-docker.service
Container stoppen
systemctl start searx-docker.service

Alternativ können auch die Container mit docker-compose neu gestartet werden.

sudo docker-compose up -d

Anpassen der Suchmaschine

Wer die Suchmaschine anpassen möchte, kann die Settings.yml bearbeiten. Dazu muss diese außerhalb des Containers existieren und in den Container geladen werden. Dazu muss die docker-compose.yml geändert werden und folgendes hinzugefügt werden.

[..]
searx:
 [..]
 Volumes:
    - searx:/usr/local/bin/searx:ro # :ro bedeutet readonly

Damit werden alle Änderungen beim Update beibehalten. Macht man das nicht, sind alle Anpassungen verworfen.

Automatisches Update mit Watchtower

Ich nutze für meine ganzen Container, mit Ausnahme von Mailcow, Watchtower um die Images aktuell zu halten.

containrrr/watchtower
A process for automating Docker container base image updates. – containrrr/watchtower

Wie man das einrichtet, habe ich hier erklärt.

Docker Container automatisch aktualisieren
Wenn man Docker Container auf seinem Server betreibt, möchte man
natürlich, dass diese auch immer auf dem neusten Stand sind. Das dient
auch zur Server- und Datensicherheit bei. Um sicherzugehen, dass man
keine Updates verpasst, sollte man alle paar Tage die Container überprüfen. Das
kann lästig wer…