Jak hostovat SearXNG ve vlastní režii v roce 2026: Search API, limity požadavků a TLS
Hostujte SearXNG ve vlastní režii se správně nastavenými porty, persistentním úložištěm, HTTPS, secrets, zálohami a kontrolami aktualizací. Naučte se opravit situace, kdy engines blokují IP adresu serveru.
Většina návodů k instalaci SearXNG končí u prvního načtení stránky. To je příliš brzy: engines mohou zablokovat IP adresu serveru nebo formáty nemusí pro API klienty podporovat json. Užitečný produkční test je náročnější — odešlete vyhledávání ve formátu HTML i JSON, ověřte, že výsledky poskytuje několik engines, a z testovacího klienta aktivujte nakonfigurovaný limiter.
Úloha SearXNG je jasná: metasearch engine a search API zaměřené na soukromí. Jeho provozní hranice zahrnují více než samotný webový proces, takže před příchodem skutečných dat musíte explicitně popsat závislosti, uložený stav i veřejnou route.
Nejprve definujte, co znamená úspěch u SearXNG
Nenechte image SearXNG náhodou určovat produkční architekturu. Image poskytuje proces na portu 8080; úložiště, routing i externí požadavky stále vyžadují promyšlené životní cykly. Síťovým kontraktem SearXNG je Redis nebo Valkey, pokud jsou povoleny funkce limiteru a detekce botů. Soukromé endpointy ponechte na interním DNS, povolte pouze potřebná odchozí volání a SearXNG přidělte service credential s omezeným rozsahem oprávnění.
Deployment je připraven na důkladnější testování, když dokáže odeslat vyhledávání ve formátu HTML i JSON, ověřit, že výsledky poskytuje několik engines, a z testovacího klienta aktivovat nakonfigurovaný limiter. Sledujte transakci v logách a monitorujte latenci upstream engines, souběžné dotazy, parsování výsledků a bany uvalené na IP adresu serveru. Tato pozorování ukážou, zda současná topologie izoluje správnou komponentu.
Oddělte nahraditelné kontejnery od trvalých dat
Vytvořte pro SearXNG recovery manifest: settings.yml, konfiguraci limiteru a případné lokální pluginy. Před bootstrapem připojte /etc/searxng, zapište neškodná testovací data a nahraďte kontejner, abyste ověřili, že je daná cesta skutečně persistentní. Zkontrolujte vlastnictví a volné místo už nyní, protože připojená cesta bez oprávnění k zápisu se chová, jako by žádná persistence neexistovala.
Zálohujte do failure domain oddělené od běžícího serveru. Znovu vytvořte SearXNG z připnuté image a ověřte, že se vrátí custom engines, formáty, pravidla limiteru a nastavení proxy a že známý dotaz vrátí výsledky z více engines. Průvodce persistentními volumes pomůže převést toto cvičení do podoby pravidel pro snapshots a retention.
Uzavřete dočasný přístup pro setup
Bootstrap credentials jsou dočasné, trust model je trvalý. U SearXNG si dejte pozor na nasazení ukázkového secret_key nebo vypnutí rate controls na veřejném endpointu. Používejte ne výchozí secret key, zapněte abuse controls a JSON zpřístupněte pouze tehdy, když ho vyžaduje agent nebo aplikace.
S hodnotou SEARXNG_SECRET zacházejte podle její role v SearXNG: citlivé hodnoty uchovávejte mimo Git, zdokumentujte dopady rotace a v produkci nikdy nepoužívejte veřejně dostupný příklad. Spouštějte image bez nepotřebných Linux capabilities a vystavujte pouze veřejnou aplikační route. Aktivitu administrátorů uchovávejte ve viditelných logách, ale bez zaznamenávání secret values.
Zaznamenejte známý funkční deployment SearXNG
Převeďte smoke test SearXNG na opakovatelný release command nebo stručný runbook. Jeho výstup musí prokázat tento výsledek: odešle vyhledávání ve formátu HTML i JSON, ověří, že výsledky poskytuje několik engines, a z testovacího klienta aktivuje nakonfigurovaný limiter. K výsledku zaznamenejte verzi aplikace, digest kontejneru, hostname route a identifikátor testovacích dat.
Stejnou kontrolu spusťte po běžné výměně kontejneru a po obnovení settings.yml, konfigurace limiteru a případných lokálních pluginů na jiném místě. Obnova byla úspěšná, když se vrátí custom engines, formáty, pravidla limiteru a nastavení proxy a známý dotaz vrátí výsledky z více engines. Porovnejte časování a spotřebu související s latencí upstream engines, souběžnými dotazy, parsováním výsledků a bany uvalenými na IP adresu serveru; výrazná změna stojí za prošetření, i když závěrečná akce stále projde.
Poté otestujte bezpečné selhání: dočasně zakažte testovací identitě přístup k Redis nebo Valkey, pokud jsou povoleny funkce limiteru a detekce botů. Ověřte, že SearXNG chybu zobrazí a vrátí se do normálního stavu bez destruktivních ručních úprav. Uchovejte pouze nezbytný, redigovaný výňatek z logu. Tato čtyřdílná kontrola pokrývá spuštění, persistenci, obnovu a zpracování chyb.
Spusťte první instanci odpovídající produkčnímu provozu
Používejte kontejner jako nahraditelný runtime, nikoli jako místo, kde jsou uložena zdrojová data.
docker run -d \
--name searxng \
--restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-v searxng-data:/etc/searxng \
-e SEARXNG_SECRET=replace-with-a-long-random-value \
searxng/searxng:latest
Pokud jsou povoleny funkce limiteru a detekce botů, přidejte ověřené connection settings pro Redis nebo Valkey; u privátních služeb používejte privátní názvy. Před vystavením služby zkontrolujte uživatele kontejneru, zapisovatelné cesty a naslouchající endpoint. Proveďte kompletní akci — odešlete vyhledávání ve formátu HTML i JSON, ověřte, že výsledky poskytuje několik engines, a z testovacího klienta aktivujte nakonfigurovaný limiter — a uložte přesnou referenci image, která výsledek vytvořila.
Zabraňte tomu, aby úspěch proxy zakryl selhání aplikace
Pro SearXNG vystavte jeden HTTPS hostname a raw port 8080 ponechte privátní. Nastavte server base_url a trusted proxy headers pro HTTPS. Zabráníte tak tomu, aby se prohlížeče a API klienti dozvěděli o dvou konkurenčních adresách.
Z čistého klienta spusťte známou funkční transakci a prohlédněte si první požadavek, který selhal. Pokud je problém v DNS nebo TLS, použijte průvodce custom domain. Text „engines blokují IP adresu serveru nebo formáty pro API klienty neobsahují json“ považujte za samostatnou aplikační diagnostiku až poté, co ověříte route.
Logy, které zodpoví další otázku
První užitečná provozní metrika pro SearXNG ukazuje, zda dokáže odeslat vyhledávání ve formátu HTML i JSON, ověřit, že výsledky poskytuje několik engines, a z testovacího klienta aktivovat nakonfigurovaný limiter. Doplňte ji signály saturace pro latenci upstream engines, souběžné dotazy, parsování výsledků a bany uvalené na IP adresu serveru. Probe kontrolující pouze proces by neměl volat nákladné závislosti ani restartovat kontejner jen proto, že upstream je krátkodobě nedostupný.
K aktualizacím přistupujte jako ke změnám dat, protože se může změnit syntaxe nastavení, definice engines i chování limiteru. Změny konfigurace a image proto nasazujte v rámci jedné kontroly. Připínejte verze, nacvičujte postup na obnoveném stavu a předchozí image ponechte k dispozici, dokud zůstává platný rollback. Pokud engines blokují IP adresu serveru nebo formáty pro API klienty neobsahují json, uchovejte logy z doby před restartem; obvykle obsahují příčinnou hlášku.
Připojte SearXNG k životnímu cyklu Dockupu
Platformní vrstva pro SearXNG se skládá z portu 8080, ingressu, TLS, runtime konfigurace, úložiště a dostupnosti závislostí. Dockup dokáže tyto části reprodukovat pro vlastní infrastrukturu nebo server, který zákazník připojí.
Operátor pak dokončí produktovou vrstvu: nastaví server base_url a trusted proxy headers pro HTTPS; vynutí toto access rule — používat ne výchozí secret key, zapnout abuse controls a vystavit JSON pouze tehdy, když ho vyžaduje agent nebo aplikace; a spustí „odešlete vyhledávání ve formátu HTML i JSON, ověřte, že výsledky poskytuje několik engines, a z testovacího klienta aktivujte nakonfigurovaný limiter“. Zaznamenání tohoto testu společně s deploymentem zabrání záměně automatizovaného provisioningu za připravenost aplikace.
Často kladené otázky
Co SearXNG potřebuje pro produkční deployment?
Veďte kontejner SearXNG na portu 8080 přes jeden HTTPS origin. Podpůrným síťovým požadavkem je Redis nebo Valkey, pokud jsou povoleny funkce limiteru a detekce botů. SearXNG nepovažujte za připravený, dokud nedokážete odeslat vyhledávání ve formátu HTML i JSON, ověřit, že výsledky poskytuje několik engines, a z testovacího klienta aktivovat nakonfigurovaný limiter.
Která data SearXNG patří do zálohy?
Zachovávejte /etc/searxng a do stejného recovery manifestu zahrňte settings.yml, konfiguraci limiteru a případné lokální pluginy. Čistá obnova SearXNG je úspěšná pouze tehdy, když se vrátí custom engines, formáty, pravidla limiteru a nastavení proxy a známý dotaz vrátí výsledky z více engines.
Vyžaduje SearXNG za reverse proxy HTTPS?
Pro veřejný origin SearXNG používejte HTTPS a port 8080 ponechte na interní route. Nastavení SearXNG aplikujte správně: nastavte server base_url a trusted proxy headers pro HTTPS. U SearXNG HTTPS chrání credentials nebo obsah uživatelů při přenosu a udržuje konzistentní chování klientů závislé na originu.
Jak testovat aktualizaci SearXNG?
Obnovte aktuální stav SearXNG do izolovaného deploymentu, aplikujte kandidátní verzi a zopakujte akceptační transakci. Věnujte tomu zvláštní pozornost, protože se může změnit syntaxe nastavení, definice engines i chování limiteru. Změny konfigurace a image proto nasazujte v rámci jedné kontroly. Předchozí image SearXNG ponechte k dispozici, dokud nebudete mít jasno v hranici migrace dat a rollbacku.
