Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 11.09.2026 · 11 min Lesezeit

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.

SearXNG: Privat suchen. Metasuche, Ohne Tracking, Eigener Server. Illustration mit Laptop und NAS. KI-generiert

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

ParameterWert
Image (primär)docker.io/searxng/searxng:latest
Image (Alternative)ghcr.io/searxng/searxng:latest
Image-Größe (amd64)ca. 92 MB komprimiert
Architekturlinux/amd64, linux/arm64, linux/arm/v7
Valkey-Imagedocker.io/valkey/valkey:8.0-alpine
Externer Port5147 (Host) → 8080 (Container)
Config-Volume/volume1/docker/searxng/config:/etc/searxng
Cache-Volume/volume1/docker/searxng/data:/var/cache/searxng
Valkey-Volumevalkey-data:/data (named)
LizenzAGPL-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=true in der compose.yaml setzen (bereits enthalten) oder den Ordner vorab per SSH mit chmod 777 /volume1/docker/searxng/config öffnen.
  • SearXNG startet nicht, Valkey-Verbindungsfehler „Connection refused valkey:6379": Die Umgebungsvariable SEARXNG_VALKEY_URL zeigt nicht auf den richtigen Service-Namen. Der Hostname muss exakt dem Service-Namen im Compose-Netzwerk entsprechen: valkey://valkey:6379/0. Wenn limiter: true in der settings.yml steht, ist Valkey zwingend erreichbar.
  • Weiterleitungen funktionieren nicht / OpenSearch zeigt falsche URL: Die Umgebungsvariable SEARXNG_BASE_URL stimmt 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.yaml auf ghcr.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.yaml auf einen freien Port (z. B. "5148:8080/tcp") und passe SEARXNG_BASE_URL entsprechend 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.yaml kopiert, 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

Quellen: SearXNG Offizielle Dokumentation – Container-Installation · SearXNG GitHub Repository · Docker Hub: searxng/searxng · selfhosting.sh: SearXNG mit Docker Compose