Zum Inhalt

SearXNG als private Suchmaschine mit Docker installieren

Veröffentlicht am 7. August 2026 · Geschätzte Lesezeit: 4 Minuten

SearXNG bündelt Ergebnisse verschiedener Suchdienste, ohne ein persönliches Suchprofil anzulegen. Die Suchanfragen laufen über deinen eigenen Server, der sie an die gewählten Suchdienste weitergibt. Installation und Grundtest dauern ungefähr 20 Minuten.

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose
  • Eine feste IP-Adresse oder DHCP-Reservierung für den Server
  • Port 8080 im lokalen Netz frei
  • curl und ein Benutzer mit sudo-Rechten

1. Arbeitsordner anlegen

Führe den Befehl im Terminal deines Docker-Servers aus. Er erstellt den Arbeitsordner und das Verzeichnis für die dauerhafte Konfiguration:

sudo mkdir -p /opt/searxng/core-config

Übergib den Ordner an deinen Linux-Benutzer. Ersetze <benutzer> durch deinen Benutzernamen:

sudo chown -R <benutzer>:<benutzer> /opt/searxng

Wechsle anschließend in den Arbeitsordner:

cd /opt/searxng

2. Aktuelle Vorlagen laden

Lade die aktuelle Compose-Datei und die Umgebungsvorlage direkt aus dem offiziellen SearXNG-Projekt:

curl -fsSL -O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml -O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example

Kopiere die Vorlage als aktive .env-Datei:

cp .env.example .env

Aktueller Installationsweg

Das frühere separate Repository searxng-docker wurde 2026 archiviert. Für neue Installationen kommt die Compose-Vorlage jetzt direkt aus dem Hauptprojekt. Die Befehle oben verwenden bereits diesen aktuellen Weg.

3. Zugriff auf das Heimnetz begrenzen

Füge die feste LAN-Adresse des Servers und den gewünschten Port in .env ein. Ersetze <server-ip> durch eine Adresse wie 192.168.178.20:

printf '\nSEARXNG_HOST=<server-ip>\nSEARXNG_PORT=8080\n' >> .env

Dadurch bindet Docker die Oberfläche nur an die angegebene Netzwerkschnittstelle. Kontrolliere anschließend, ob die beiden Werte nur einmal aktiv in .env stehen:

grep -E '^(SEARXNG_HOST|SEARXNG_PORT)=' .env

Kein eingebauter Benutzerlogin

Eine normale private SearXNG-Instanz besitzt keinen Anmeldebildschirm. Leite Port 8080 deshalb nicht im Router weiter. Für Fernzugriff eignet sich ein VPN; für eine öffentliche Instanz brauchst du zusätzlich Reverse-Proxy, HTTPS, Zugriffsschutz und Schutz vor Missbrauch.

4. Container starten

Starte SearXNG und den mitgelieferten Valkey-Dienst im Hintergrund. Führe den Befehl im Ordner /opt/searxng aus:

docker compose up -d

Prüfe danach beide Container:

docker compose ps

Bei der ersten Ausführung wird die Grundkonfiguration im Ordner core-config angelegt. Zeige bei Problemen die letzten Protokollzeilen an:

docker compose logs --tail=100 core valkey

5. Oberfläche öffnen und testen

Öffne im Browser die folgende Adresse:

http://<server-ip>:8080

Ersetze <server-ip> durch dieselbe Serveradresse wie in .env. Suche testweise nach SearXNG Dokumentation. Auf der Ergebnisseite kannst du unter Einstellungen Sprache, Oberfläche, Suchdienste und SafeSearch anpassen.

Als Browsersuche verwenden

Viele Browser erkennen SearXNG nach der ersten Suche automatisch als Suchmaschine. Prüfe in den Browser-Einstellungen die Suchmaschinenliste und lege deine Instanz bei Bedarf als Standardsuche fest.

6. Konfiguration sichern

Stoppe beide Container kurz, damit die Dateien während der Sicherung unverändert bleiben:

cd /opt/searxng
docker compose down

Erstelle ein Archiv aus Compose-Datei, Umgebung und SearXNG-Konfiguration:

sudo tar -czf "$HOME/searxng-config-$(date +%F).tar.gz" docker-compose.yml .env .env.example core-config

Starte die Dienste danach wieder:

docker compose up -d

Sicherung schützen

In den Konfigurationsdateien können später geheime Schlüssel oder interne Adressen stehen. Speichere das Archiv nicht öffentlich und kopiere es auf ein zweites Speichermedium.

Für den Rückweg stoppst du den Stack, benennst /opt/searxng um und entpackst das Archiv wieder nach /opt/searxng. Die Valkey-Daten sind nur Zwischenspeicher und für die Wiederherstellung der Suchkonfiguration nicht nötig.

7. SearXNG aktualisieren

Sichere zuerst die Konfiguration. Lade anschließend im Arbeitsordner die aktuellen Container-Images:

cd /opt/searxng
docker compose pull

Erstelle die Container mit den neuen Images neu:

docker compose up -d

Vergleiche regelmäßig auch die offizielle Compose-Vorlage mit deiner Datei. Lade eine neue Vorlage nicht blind über deine angepasste Konfiguration, sondern speichere sie unter einem anderen Namen:

curl -fsSL https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml -o docker-compose.neu.yml

Vergleiche beide Dateien:

diff -u docker-compose.yml docker-compose.neu.yml

8. Typische Fehler beheben

Ist die Seite nicht erreichbar, prüfe zuerst Container und Port:

docker compose ps
sudo ss -lntp | grep 8080

Startet core nicht, kontrolliere das Protokoll:

docker compose logs --tail=100 core

Bei address already in use ist Port 8080 belegt. Ändere SEARXNG_PORT=8080 in .env beispielsweise auf SEARXNG_PORT=8081, starte den Stack neu und öffne danach http://<server-ip>:8081.

Zeigen einzelne Suchdienste vorübergehend keine Ergebnisse, kann deren Schutz gegen automatisierte Abfragen die Ursache sein. Deaktiviere den betroffenen Dienst unter Einstellungen → Suchmaschinen, statt Zugangsdaten oder Sperren zu umgehen.

9. Quellen und Video

Fertig

SearXNG läuft jetzt als private Metasuchmaschine in deinem Heimnetz. Öffne http://<server-ip>:8080, führe eine Suche aus und ändere anschließend eine Einstellung. Bleibt sie nach einem Container-Neustart erhalten, funktioniert auch die dauerhafte Konfiguration.