SearXNG auf dem Synology NAS installieren: private Metasuchmaschine ohne Tracking
SearXNG bündelt über 70 Suchmaschinen auf deinem Synology NAS – ohne Profildaten, ohne Tracking. Diese Anleitung zeigt den sicheren Weg mit Docker Compose, Valkey-Limiter und eigenem Secret Key: Google-Ergebnisse nutzen, ohne Google Daten zu liefern.

Jede Google-Suchanfrage landet in deinem Profil – Interessen, Standort, Tagesrhythmus. Wer das nicht möchte, greift zu SearXNG: einer selbst gehosteten Metasuchmaschine (AGPL-3.0), die deine Anfragen anonym über mehr als 70 Suchmaschinen gleichzeitig schickt. Google, Bing, DuckDuckGo und Co. sehen nur die IP deines NAS – kein Cookie, kein Nutzerprofil, keine Suchanfragehistorie. Für DACH-Selfhoster ist das die logische Ergänzung zum netzwerkweiten Werbeblocker: Suchanfragen bleiben auf dem eigenen Gerät, während die Ergebnisqualität erhalten bleibt. SearXNG eignet sich darüber hinaus als JSON-Suchquelle für lokale KI-Systeme wie Open WebUI oder n8n. Mit über 31.900 GitHub-Stars und mehreren automatischen Builds täglich (Stand Juni 2026) ist das Projekt aktiv und stabil.
Voraussetzungen
- Synology NAS mit x86_64-Prozessor (Intel/AMD) und DSM 7.2 oder höher
- Container Manager aus dem Synology Package Center installiert
- Mindestens 1 GB freier RAM und 500 MB freier Speicherplatz auf
/volume1 - Stabile Internetverbindung (SearXNG leitet Anfragen in Echtzeit weiter)
- Port 5147 am NAS frei (oder ein anderer gewählter Port)
- Synology File Station (zum Anlegen der Verzeichnisse)
- SSH-Zugang zum NAS – optional, aber empfohlen für die Secret-Key-Generierung (Anleitung: SSH auf dem Synology NAS aktivieren und verbinden)
Schritt 1: Verzeichnisstruktur in der File Station anlegen
Öffne die File Station und navigiere nach /volume1/docker. Lege dort den Ordner searxng an, und darin die beiden Unterordner config und data. Die vollständige Struktur sieht so aus:
/volume1/docker/searxng/
├── config/ ← settings.yml und limiter.toml
└── data/ ← persistenter Cache (Favicon-DB u. a.)
Hintergrund: SearXNG benötigt zwei separate Volume-Mounts. /etc/searxng (gemappt auf config/) enthält die Konfiguration, /var/cache/searxng (gemappt auf data/) den technischen Cache. Ohne den zweiten Mount gehen Favicon-Daten bei jedem Neustart verloren. Allgemeine Hinweise zu Ordnern und Berechtigungen auf der Synology findest du unter Docker-Ordner und Berechtigungen auf dem Synology NAS.
Verifizieren: In der File Station sind die Pfade /volume1/docker/searxng/config und /volume1/docker/searxng/data sichtbar. Beide Ordner existieren und sind leer.
Schritt 2: Secret Key generieren
Der kryptografische Session- und CSRF-Schlüssel ist Pflicht. Wer den Standardwert ultrasecretkey stehen lässt, betreibt SearXNG mit einer unsicheren Konfiguration. Generiere einen zufälligen 64-Zeichen-Hex-String per SSH:
openssl rand -hex 32
Beispielausgabe (dein Wert wird anders sein):
a3f8c2d1e4b5a6f7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1
Kopiere diese Ausgabe vollständig – du trägst sie gleich in die compose.yaml ein. Hast du keinen SSH-Zugang, kannst du alternativ einen lokalen Generator (z. B. in der Browser-Konsole mit crypto.getRandomValues) verwenden, solange du den Wert nirgendwo speicherst oder teilst.
Verifizieren: Der generierte String hat genau 64 hexadezimale Zeichen (0–9, a–f). Kürzer oder mit Sonderzeichen? Dann den Befehl wiederholen.
Schritt 3: settings.yml anlegen
Erstelle in /volume1/docker/searxng/config/ eine Datei namens settings.yml. SearXNG legt beim ersten Start automatisch eine Standardkonfiguration an – wenn du die Datei vorher mit dem Schlüsselwort use_default_settings: true vorbereitest, werden beim Start nur deine Abweichungen übernommen, nicht die gesamte Standardkonfiguration überschrieben.
Öffne einen Texteditor (oder die SSH-Session) und erstelle die Datei mit folgendem Inhalt:
use_default_settings: true
general:
debug: false
instance_name: "Mein SearXNG"
search:
safe_search: 0
autocomplete: "duckduckgo"
formats:
- html
- json
server:
limiter: true
image_proxy: true
ui:
default_locale: "de"
default_theme: simple
enabled_plugins:
- Basic Calculator
- Hash plugin
- Hostnames plugin
- Open Metrics
Der Eintrag formats: [html, json] ist wichtig, wenn du SearXNG später als Suchquelle für lokale KI-Tools (Open WebUI, n8n) verwenden möchtest – ohne ihn liefert die JSON-API einen Fehler. Mit limiter: true aktivierst du den Valkey-gestützten Bot-Schutz.
Verifizieren: Die Datei /volume1/docker/searxng/config/settings.yml existiert und ist nicht leer. Öffne sie in der File Station per Doppelklick und prüfe, ob der Inhalt korrekt angezeigt wird.
Schritt 4: compose.yaml erstellen und Projekt anlegen
Jetzt kommt das Herzstück: das Compose-Projekt mit SearXNG und dem Valkey-Sidecar. Öffne den Container Manager, wähle „Projekte" und lege ein neues Projekt an. Wie das genau funktioniert, beschreibt die Anleitung Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren. Wähle als Projektpfad /volume1/docker/searxng und trage folgende compose.yaml ein:
services:
searxng:
container_name: searxng
image: docker.io/searxng/searxng:latest
ports:
- "5147:8080/tcp"
volumes:
- /volume1/docker/searxng/config:/etc/searxng
- /volume1/docker/searxng/data:/var/cache/searxng
environment:
- SEARXNG_BASE_URL=http://NAS-IP:5147/
- SEARXNG_SECRET_KEY=HIER_DEINEN_OPENSSL_HEX32_WERT_EINTRAGEN
- FORCE_OWNERSHIP=true
- SEARXNG_VALKEY_URL=valkey://valkey:6379/0
depends_on:
valkey:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:8080/healthz"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
valkey:
container_name: searxng-valkey
image: docker.io/valkey/valkey:8.0-alpine
volumes:
- valkey-data:/data
command: valkey-server --save 30 1 --loglevel warning
restart: unless-stopped
healthcheck:
test: ["CMD", "valkey-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
start_period: 5s
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
volumes:
valkey-data:
Ersetze NAS-IP durch die tatsächliche IP-Adresse deines NAS (z. B. 192.168.1.100) und trage den generierten Secret Key aus Schritt 2 ein. Wichtig: SEARXNG_BASE_URL muss exakt der URL entsprechen, über die du SearXNG im Browser aufrufst – sonst funktionieren Weiterleitungen und die OpenSearch-Integration nicht. Die Umgebungsvariable FORCE_OWNERSHIP=true sorgt dafür, dass der Container beim Start die Dateiberechtigungen im Volume automatisch korrigiert, was auf Synology-Systemen häufig nötig ist.
Warum Valkey statt Redis?
Valkey ist ein vollständig Redis-kompatibler Drop-in-Ersatz, der seit 2024 aktiv als Open-Source-Fork weiterentwickelt wird. Das SEARXNG_VALKEY_URL-Schema verwendet weiterhin das Redis-URL-Format – das ist Absicht und gewährleistet Abwärtskompatibilität. Valkey 8.0-alpine bringt einen sehr kleinen Image-Footprint und ist für diesen Sidecar-Einsatz optimal.
Eckdaten auf einen Blick
| Parameter | Wert |
|---|---|
| Image (primär) | docker.io/searxng/searxng:latest |
| Image (Alternative) | ghcr.io/searxng/searxng:latest |
| Image-Größe (amd64) | ca. 92 MB komprimiert |
| Architektur | linux/amd64, linux/arm64, linux/arm/v7 |
| Valkey-Image | docker.io/valkey/valkey:8.0-alpine |
| Externer Port | 5147 (Host) → 8080 (Container) |
| Config-Volume | /volume1/docker/searxng/config:/etc/searxng |
| Cache-Volume | /volume1/docker/searxng/data:/var/cache/searxng |
| Valkey-Volume | valkey-data:/data (named) |
| Lizenz | AGPL-3.0 |
Verifizieren: Starte das Projekt im Container Manager. Nach etwa 20–30 Sekunden sollten beide Container den Status Aktiv (grünes Symbol) zeigen. Der Valkey-Container wird zuerst als „healthy" markiert, dann startet SearXNG. Zeigt SearXNG dauerhaft „wird gestartet", prüfe die Container-Logs auf Fehler (Container Manager → Container → Logs).
Schritt 5: Firewall-Regel für Port 5147 anlegen
Damit SearXNG im Heimnetzwerk erreichbar ist, muss die DSM-Firewall den Port 5147 freigeben. Öffne Systemsteuerung → Sicherheit → Firewall und lege eine eingehende Regel für TCP-Port 5147 an. Die genaue Vorgehensweise beschreibt DSM-Firewall auf dem Synology NAS: Ports für Docker-Container freigeben.
Empfehlung für Datenschutz und Sicherheit: Beschränke die Regel auf dein lokales Subnetz (z. B. 192.168.1.0/24). SearXNG hat keine eingebaute Authentifizierung – wer es aus dem Internet erreichbar machen möchte, sollte einen Reverse Proxy mit Basic Auth vorschalten (z. B. Nginx Proxy Manager auf der Synology).
Verifizieren: Rufe im Browser deines Heimnetzwerks http://NAS-IP:5147/ auf. Die SearXNG-Startseite mit Suchfeld erscheint. Siehst du eine Fehlermeldung wie „Verbindung abgelehnt", ist entweder die Firewall-Regel nicht aktiv oder der Container läuft noch nicht fehlerfrei.
Schritt 6: Ersten Suchtest durchführen und Engines prüfen
Öffne http://NAS-IP:5147/ im Browser und gib einen Suchbegriff ein, z. B. „Synology NAS". Ergebnisse aus mehreren Quellen sollten innerhalb von 2–4 Sekunden erscheinen. Klicke dann oben rechts auf das Einstellungs-Symbol (⚙) und wähle Einstellungen → Suchmaschinen, um zu sehen, welche Engines aktiv sind.
Ein bekanntes Anlaufproblem: Google und Bing können SearXNG-IPs temporär blockieren (HTTP 429 Too Many Requests), besonders nach einer Neuinstallation. Falls einzelne Engines keine Ergebnisse liefern oder rot markiert sind, aktiviere Alternativen wie DuckDuckGo, Brave Search oder Startpage – diese sind erfahrungsgemäß weniger restriktiv.
Verifizieren: Die Suchergebnisseite zeigt mindestens 5 organische Treffer. Die Quellen-Badges unter den Ergebnissen zeigen, welche Engine gefunden hat. Sind alle Badges grau und die Ergebnisliste leer, prüfe die Container-Logs auf Valkey-Verbindungsfehler (Connection refused valkey:6379).
Schritt 7: SearXNG als Browser-Standardsuche einbinden
SearXNG stellt automatisch eine OpenSearch-XML-Beschreibung bereit, über die moderne Browser die Suchmaschine direkt übernehmen.
Firefox
Rufe http://NAS-IP:5147/ auf. Klicke in der Adressleiste auf das Lupe-Symbol ganz rechts – Firefox zeigt „SearXNG hinzufügen". Bestätige und setze SearXNG als Standard in Einstellungen → Suche → Standardsuchmaschine.
Chrome, Edge und andere Chromium-Browser
Gehe zu Einstellungen → Datenschutz und Sicherheit → Suchmaschine → Suchmaschinen verwalten → Hinzufügen. Trage folgende Werte ein:
Name: SearXNG
Kürzel: s (oder beliebig)
URL: http://NAS-IP:5147/search?q=%s
Setze die neue Suchmaschine als Standard. Ab sofort gehen alle Suchanfragen aus der Adressleiste direkt an deinen NAS – ohne Zwischenstopp bei Google.
Tipp: Wenn du das Homepage-Dashboard auf dem Synology NAS betreibst, kannst du dort ein Such-Widget mit der gleichen URL einrichten und SearXNG als zentrale Suche in dein Dashboard integrieren.
Verifizieren: Tippe in der Browser-Adressleiste einen Begriff ein und bestätige mit Enter. Die SearXNG-Ergebnisseite öffnet sich mit deinem Suchbegriff. Das Favicon deiner NAS-Instanz sollte im Browser-Tab sichtbar sein.
Schritt 8: SearXNG aktuell halten
Da die compose.yaml das Tag :latest verwendet, genügt ein einfacher Image-Pull, um auf den neuesten Build zu aktualisieren. Im Container Manager öffnest du das Projekt „searxng", klickst auf Aktion → Image aktualisieren und startest das Projekt neu. Alternativ per SSH:
cd /volume1/docker/searxng
docker compose pull
docker compose up -d
Da SearXNG mehrere automatische Builds pro Tag veröffentlicht, empfiehlt sich ein wöchentliches Update-Intervall. Die settings.yml und alle Volume-Daten bleiben beim Update vollständig erhalten – nur das Container-Image wird ersetzt.
Verifizieren: Nach dem Neustart zeigen beide Container wieder den Status „Aktiv". Ein Suchtest auf http://NAS-IP:5147/ liefert Ergebnisse wie zuvor.
Troubleshooting / Typische Fehler
- „Permission denied" beim Container-Start / settings.yml nicht schreibbar: Der Container-Benutzer (UID 977 o. ä.) hat keine Schreibrechte auf
/volume1/docker/searxng/config. Lösung:FORCE_OWNERSHIP=truein dercompose.yamlsetzen (bereits enthalten) oder den Ordner vorab per SSH mitchmod 777 /volume1/docker/searxng/configöffnen. - SearXNG startet nicht, Valkey-Verbindungsfehler „Connection refused valkey:6379": Die Umgebungsvariable
SEARXNG_VALKEY_URLzeigt nicht auf den richtigen Service-Namen. Der Hostname muss exakt dem Service-Namen im Compose-Netzwerk entsprechen:valkey://valkey:6379/0. Wennlimiter: truein dersettings.ymlsteht, ist Valkey zwingend erreichbar. - Weiterleitungen funktionieren nicht / OpenSearch zeigt falsche URL: Die Umgebungsvariable
SEARXNG_BASE_URLstimmt nicht mit der tatsächlichen Zugriffs-URL überein. Prüfe: gleicher Protokoll-Prefix (http/https), gleiche IP, gleicher Port. Nach der Änderung Container neu starten. - Docker Hub Rate Limit: „Too Many Requests" beim Image-Pull: Wechsle auf die GitHub Container Registry: Ändere das Image in der
compose.yamlaufghcr.io/searxng/searxng:latest. Die GHCR hat für unauthentifizierte Pulls deutlich großzügigere Limits. - Alle Engines liefern keine Ergebnisse: Nach einer Neuinstallation blockieren Google/Bing häufig die neue NAS-IP temporär. Öffne Einstellungen → Suchmaschinen und aktiviere DuckDuckGo, Brave Search oder Startpage als Fallback. Die Blockierung hebt sich meist nach einigen Stunden auf.
- Port 5147 bereits belegt: Ein anderer Synology-Dienst nutzt den Port. Ändere den Eintrag in der
compose.yamlauf einen freien Port (z. B."5148:8080/tcp") und passeSEARXNG_BASE_URLentsprechend an. - settings.yml wird beim Start überschrieben: Fehlende oder falsch platzierte Zeile
use_default_settings: true. Stelle sicher, dass diese Zeile ganz oben in der Datei steht und der Volume-Pfad korrekt ist. - Archiviertes searxng-docker-Repository als Grundlage: Das offizielle searxng-docker-Repo wurde am 28. März 2026 archiviert und ist read-only. Wer daraus eine
docker-compose.yamlkopiert, erhält eine veraltete Konfiguration ohne aktuelle Sicherheitsfeatures. Verwende ausschließlich die hier gezeigte oder die aktuelle Compose-Vorlage aus der offiziellen Dokumentation.
Häufige Fragen
Muss ich Valkey zwingend betreiben?
Nein. Valkey ist nur erforderlich, wenn in der settings.yml limiter: true gesetzt ist. Für private Heimnetznutzung ohne Bot-Schutz kannst du den Valkey-Service aus der compose.yaml entfernen, SEARXNG_VALKEY_URL weglassen und in der settings.yml auf limiter: false setzen. Das vereinfacht das Setup, verzichtet aber auf Rate-Limiting-Schutz.
Wie sichere ich den Zugriff ab?
SearXNG hat keine eingebaute Benutzerauthentifizierung. Empfehlung für den Heimgebrauch: Firewall-Regel auf das lokale Subnetz beschränken, kein Port-Forwarding in der Router-Konfiguration. Für externen Zugriff einen Reverse Proxy mit Basic Auth vorschalten. Eine datenschutzfreundliche Ergänzung ist AdGuard Home auf der Synology – so blockierst du Tracker auf DNS-Ebene, bevor SearXNG überhaupt Anfragen weiterleitet.
Kann ich SearXNG als Suchquelle für lokale KI nutzen?
Ja. SearXNG stellt eine JSON-API bereit: http://NAS-IP:5147/search?q=Suchbegriff&format=json. In Open WebUI trägst du diese URL unter Einstellungen → Websuche ein. Voraussetzung: In der settings.yml ist formats: [html, json] gesetzt (wie in Schritt 3 gezeigt). Das macht SearXNG zur idealen Suchquelle für datenschutzkonforme RAG-Systeme.
Was passiert mit meinen Suchdaten?
SearXNG speichert keine Suchanfragen dauerhaft. Der /var/cache/searxng-Volume enthält ausschließlich technischen Cache (Favicons usw.), keine Suchhistorie. Valkey speichert nur kurzlebige Rate-Limit-Zähler. Es werden keinerlei Cookies, Analytics oder Nutzerprofile angelegt – das ist der Kern des Datenschutzkonzepts.
Wie aktualisiere ich SearXNG auf die neueste Version?
Da das :latest-Tag verwendet wird, reicht im Container Manager ein Klick auf „Image aktualisieren" und anschließend „Projekt neu starten". Die Konfiguration in den Volumes bleibt vollständig erhalten. Für eine präzisere Versionskontrolle kannst du statt :latest einen datierten Tag verwenden (z. B. 2026.6.11-a1490676e), den du auf Docker Hub findest.
Welche Suchmaschinen sind standardmäßig aktiv?
SearXNG aktiviert bei Standardkonfiguration mehrere Dutzend Engines, darunter Google, Bing, DuckDuckGo, Wikipedia, Startpage und viele mehr. Über Einstellungen → Suchmaschinen lässt sich jede Engine einzeln aktivieren oder deaktivieren – auch dauerhaft, indem du die gewünschten Engines in der settings.yml unter dem Schlüssel engines: konfigurierst.
Fazit
SearXNG auf dem Synology NAS ist eine der wirkungsvollsten Datenschutzmaßnahmen für Privatpersonen und KMU im DACH-Raum: Google-Ergebnisse nutzen, ohne Google Daten zu liefern. Das hier gezeigte Setup mit Valkey-Sidecar, Secret Key und eigener settings.yml folgt ausschließlich der offiziellen aktuellen Dokumentation – nicht dem archivierten searxng-docker-Repo. Wer SearXNG zusätzlich als JSON-Suchquelle für lokale KI-Tools anschließt, schließt den Datenschutzkreis konsequent: private Suche, lokal verarbeitete Ergebnisse, keine Cloud-Abhängigkeit.
Weiterführende Anleitungen und Quellen
- AdGuard Home auf der Synology mit Docker: netzwerkweiter Werbeblocker und DNS für die FritzBox – sinnvolle Ergänzung: Tracker auf DNS-Ebene blockieren
- Homepage auf dem Synology NAS installieren: Dashboard für alle Self-Hosting-Dienste – SearXNG als Such-Widget einbinden
- Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren
- DSM-Firewall auf dem Synology NAS: Ports für Docker-Container freigeben
Quellen: SearXNG Offizielle Dokumentation – Container-Installation · SearXNG GitHub Repository · Docker Hub: searxng/searxng · selfhosting.sh: SearXNG mit Docker Compose