Kako samostalno hostati SearXNG u 2026.: Search API, ograničenja brzine i TLS
Samostalno hostajte SearXNG uz ispravne portove, trajnu pohranu, HTTPS, tajne, sigurnosne kopije i provjere nadogradnji. Saznajte kako riješiti problem kada enginei blokiraju IP adresu servera.
Većina uputa za instalaciju SearXNG-a završava nakon prvog učitavanja stranice. To je prerano: enginei mogu blokirati IP adresu servera ili formatima može nedostajati json za API klijente. Koristan production test zahtjevniji je — pošaljite i HTML i JSON upite, potvrdite da nekoliko enginea daje rezultate i aktivirajte konfigurirano ograničenje brzine iz testnog klijenta.
Uloga SearXNG-a jednostavna je: privacy-focused metasearch engine i search API. Njegove operativne granice obuhvaćaju više od web procesa, pa prije pristizanja stvarnih podataka treba izričito definirati dependency, pohranjeno stanje i javnu rutu.
Najprije definirajte što znači uspjeh za SearXNG
Ne dopustite da SearXNG image slučajno odredi production arhitekturu. Image osigurava proces na portu 8080; pohrana, routing i vanjski zahtjevi i dalje zahtijevaju pažljivo definirane životne cikluse. Mrežni ugovor za SearXNG jest Redis ili Valkey kada su omogućene značajke ograničavanja brzine i otkrivanja botova. Privatne endpointe držite na internom DNS-u, dopustite samo potrebne odlazne pozive i dodijelite SearXNG-u service credential ograničenog opsega.
Deployment je spreman za detaljnije testiranje kada može slati i HTML i JSON upite, potvrditi da nekoliko enginea daje rezultate i aktivirati konfigurirano ograničenje brzine iz testnog klijenta. Pratite transakciju u logovima i nadzirite latenciju upstream enginea, istodobne upite, parsiranje rezultata i blokade primijenjene na IP adresu servera. Ta opažanja pokazuju izolira li trenutna topologija odgovarajuću komponentu.
Odvojite zamjenjive containere od trajnih podataka
Napravite recovery manifest za SearXNG: settings.yml, konfiguraciju ograničavanja brzine i sve lokalne plugine. Montirajte /etc/searxng prije bootstrapa, upišite bezopasne ogledne podatke i zamijenite container kako biste dokazali da je ta putanja zaista trajna. Odmah provjerite vlasništvo i slobodan prostor jer montirana, ali nezapisiva putanja u praksi znači da trajne pohrane nema.
Sigurnosne kopije spremajte u failure domain odvojen od pokrenutog servera. Ponovno izradite SearXNG iz pinned imagea i provjerite vraćaju li se prilagođeni enginei, formati, pravila ograničavanja brzine i proxy postavke te daje li poznati upit rezultate iz više enginea. Vodič za persistent volume pomaže tu vježbu pretvoriti u pravila za snapshotove i zadržavanje podataka.
Zatvorite privremeni pristup za postavljanje
Bootstrap credentials privremeni su; model povjerenja je trajan. Kod SearXNG-a obratite pozornost na objavljivanje primjerka secret_keya ili onemogućavanje kontrole brzine na javnom endpointu: zadržite secret key koji nije zadani, omogućite kontrole protiv zloupotrebe i izložite JSON samo kada ga agent ili aplikacija zahtijeva.
SEARXNG_SECRET tretirajte u skladu s njegovom ulogom u SearXNG-u: osjetljive vrijednosti držite izvan Gita, dokumentirajte posljedice rotacije i u productionu nikada nemojte zamijeniti vrijednost javnim primjerom. Pokrenite image bez nepotrebnih Linux capabilities i izložite samo javnu aplikacijsku rutu. Aktivnost administratora učinite vidljivom, ali bez zapisivanja vrijednosti tajni.
Zabilježite provjereni SearXNG deployment
Pretvorite smoke test za SearXNG u ponovljivu release naredbu ili kratki runbook. Njegov izlaz mora dokazati sljedeći ishod: pošaljite i HTML i JSON upite, potvrdite da nekoliko enginea daje rezultate i aktivirajte konfigurirano ograničenje brzine iz testnog klijenta. Uz rezultat zabilježite verziju aplikacije, digest containera, hostname rute i identifikator testnih podataka.
Istu provjeru pokrenite nakon uobičajene zamjene containera i nakon vraćanja settings.yml, konfiguracije ograničavanja brzine i svih lokalnih plugina na drugoj lokaciji. Vraćanje je uspješno kada se vrate prilagođeni enginei, formati, pravila ograničavanja brzine i proxy postavke te poznati upit daje rezultate iz više enginea. Usporedite vrijeme i potrošnju povezane s latencijom upstream enginea, istodobnim upitima, parsiranjem rezultata i blokadama primijenjenima na IP adresu servera; velika promjena zaslužuje istragu čak i kada završna provjera i dalje prolazi.
Zatim izvedite siguran failure test: privremeno uskratite testnom identitetu pristup Redisu ili Valkeyju kada su omogućene značajke ograničavanja brzine i otkrivanja botova. Potvrdite da SearXNG prijavljuje grešku i vraća se u normalno stanje bez destruktivnih ručnih izmjena. Sačuvajte samo nužni, redigirani isječak loga. Ova provjera u četiri dijela obuhvaća pokretanje, trajnost podataka, oporavak i postupanje u slučaju greške.
Pokrenite prvu instancu oblikovanu prema production okruženju
Container koristite kao zamjenjivi runtime, a ne kao mjesto na kojem se nalazi izvor istine.
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
Dodajte provjerene connection settings za Redis ili Valkey kada su omogućene značajke ograničavanja brzine i otkrivanja botova; za privatne servise koristite privatna imena. Prije izlaganja aplikacije provjerite korisnika containera, writable putanje i bindani listener. Pokrenite cijelu radnju — pošaljite i HTML i JSON upite, potvrdite da nekoliko enginea daje rezultate i aktivirajte konfigurirano ograničenje brzine iz testnog klijenta — te spremite točnu referencu imagea koja je proizvela rezultat.
Spriječite da uspjeh proxija prikrije grešku aplikacije
SearXNG izložite preko jednog HTTPS hostnamea; sirovi port 8080 držite privatnim. Postavite server base_url i trusted proxy headere za HTTPS. Time sprječavate da preglednici i API klijenti saznaju za dvije konkurentske adrese.
Iz čistog klijenta pokrenite provjerenu transakciju i pregledajte prvi zahtjev koji je neuspješan. Ako su DNS ili TLS pogrešno konfigurirani, koristite vodič za prilagođenu domenu. Poruku „enginei blokiraju IP adresu servera ili formatima nedostaje json za API klijente” tretirajte kao zasebnu dijagnostiku aplikacije nakon što je ruta potvrđena.
Logovi koji odgovaraju na sljedeće pitanje
Prva korisna operativna metrika za SearXNG jest može li poslati i HTML i JSON upite, potvrditi da nekoliko enginea daje rezultate i aktivirati konfigurirano ograničenje brzine iz testnog klijenta. Uparite je sa signalima zasićenja za latenciju upstream enginea, istodobne upite, parsiranje rezultata i blokade primijenjene na IP adresu servera. Probe koja provjerava samo proces ne bi trebala pozivati skupe dependencye ni ponovno pokretati container zato što je upstream nakratko nedostupan.
Nadogradnje tretirajte kao promjene podataka jer se sintaksa postavki, definicije enginea i ponašanje ograničavanja brzine mogu promijeniti, pa configuration i promjene imagea uvodite u sklopu jednog reviewa. Pinajte verzije, uvježbajte postupak na vraćenom stanju i zadržite prethodni image dostupnim dok rollback ponovno ne bude valjan. Kada enginei blokiraju IP adresu servera ili formatima nedostaje json za API klijente, sačuvajte logove nastale prije restarta; oni obično sadržavaju uzročnu poruku.
Povežite SearXNG sa životnim ciklusom Dockupa
Platformski sloj za SearXNG sastoji se od porta 8080, ingressa, TLS-a, runtime konfiguracije, pohrane i dostupnosti dependencyja. Dockup može reproducirati te komponente za vlastitu infrastrukturu ili server koji korisnik poveže.
Operator zatim dovršava produktni sloj: postavite server base_url i trusted proxy headere za HTTPS; uvedite ovo pravilo pristupa — zadržite secret key koji nije zadani, omogućite kontrole protiv zloupotrebe i izložite JSON samo kada ga agent ili aplikacija zahtijeva — te pokrenite „pošaljite i HTML i JSON upite, potvrdite da nekoliko enginea daje rezultate i aktivirajte konfigurirano ograničenje brzine iz testnog klijenta”. Bilježenje tog testa uz deployment sprječava miješanje automatiziranog provisioninga s pripravnošću aplikacije.
Često postavljana pitanja
Što je SearXNG-u potrebno za production deployment?
SearXNG container usmjerite na portu 8080 kroz jedan HTTPS origin. Prateći mrežni zahtjev jest Redis ili Valkey kada su omogućene značajke ograničavanja brzine i otkrivanja botova. Nemojte SearXNG proglasiti spremnim dok ne možete poslati i HTML i JSON upite, potvrditi da nekoliko enginea daje rezultate i aktivirati konfigurirano ograničenje brzine iz testnog klijenta.
Koji SearXNG podaci pripadaju sigurnosnoj kopiji?
Učinite /etc/searxng trajnim i uključite settings.yml, konfiguraciju ograničavanja brzine i sve lokalne plugine u isti recovery manifest. Čisto vraćanje SearXNG-a uspješno je samo kada se vrate prilagođeni enginei, formati, pravila ograničavanja brzine i proxy postavke te poznati upit daje rezultate iz više enginea.
Zahtijeva li SearXNG HTTPS iza reverse proxija?
Za javni SearXNG origin koristite HTTPS, a port 8080 zadržite na internoj ruti. Ispravno primijenite SearXNG postavku: postavite server base_url i trusted proxy headere za HTTPS. Za SearXNG HTTPS štiti credentials ili korisnički sadržaj tijekom prijenosa i održava dosljedno ponašanje klijenta osjetljivo na origin.
Kako testirati nadogradnju SearXNG-a?
Vratite trenutno stanje SearXNG-a u izolirani deployment, primijenite kandidatsku verziju i ponovite njegovu acceptance transakciju. Obratite posebnu pozornost jer se sintaksa postavki, definicije enginea i ponašanje ograničavanja brzine mogu promijeniti, pa configuration i promjene imagea uvodite u sklopu jednog reviewa. Prethodni SearXNG image zadržite dok ne razjasnite granice migracije podataka i rollbacka.
