Päiväkirjan hakemistoDockup / kenttämuistio
Note / self-host-searxng

SearXNG:n itsehostaus vuonna 2026: Search API, rate limitit ja TLS

Itsehostaa SearXNG oikein määritetyillä porteilla, pysyvällä tallennustilalla, HTTPS:llä, salaisuuksilla, varmuuskopioilla ja päivitystarkistuksilla. Opi korjaamaan tilanne, jossa hakukoneet estävät palvelimen IP-osoitteen.

Useimmat SearXNG:n asennusohjeet päättyvät ensimmäiseen sivulataukseen. Se on liian aikaista: hakukoneet voivat estää palvelimen IP-osoitteen tai formaateista voi puuttua json API-asiakkaita varten. Hyödyllinen tuotantotesti on vaativampi — lähetä sekä HTML- että JSON-hakuja, varmista, että useat hakukoneet tuottavat tuloksia, ja laukaise määritetty rate limiter testiasiakkaalla.

SearXNG:n rooli on selkeä: yksityisyyteen keskittyvä metasearch engine ja search API. Sen operatiivinen kokonaisuus sisältää muutakin kuin web-prosessin, joten riippuvuus, tallennettu tila ja julkinen reitti on nimettävä tarkasti ennen kuin oikeaa dataa saapuu.

Määritä ensin, milloin SearXNG on onnistuneesti käytössä

Älä anna SearXNG-imagen määrittää tuotantoarkkitehtuuria vahingossa. Image tarjoaa prosessin portissa 8080, mutta tallennustila, reititys ja ulkoiset vaatimukset tarvitsevat edelleen harkitut elinkaaret. SearXNG:n verkkosopimukseen kuuluu Redis tai Valkey, kun rate limiter- ja bot-detection-ominaisuudet ovat käytössä. Pidä yksityiset endpointit sisäisessä DNS:ssä, salli vain tarvittavat lähtevät yhteydet ja anna SearXNG:lle rajattu service credential.

Käyttöönotto on valmis perusteellisempaa testausta varten, kun se pystyy lähettämään sekä HTML- että JSON-hakuja, varmistamaan useiden hakukoneiden tuottavan tuloksia ja laukaisemaan määritetyn rate limiterin testiasiakkaalla. Seuraa tapahtumaa lokeista ja tarkkaile upstream-hakukoneiden latenssia, samanaikaisia kyselyitä, tulosten jäsentämistä ja palvelimen IP-osoitteeseen kohdistettuja estoja. Näiden havaintojen avulla selviää, eristääkö nykyinen topologia oikean komponentin.

Erota vaihdettavat kontit pysyvästä datasta

Tee SearXNG:lle palautusmanifesti: settings.yml, limiterin konfiguraatio ja mahdolliset paikalliset plugin-laajennukset. Liitä /etc/searxng ennen bootstrapia, kirjoita harmitonta esimerkkidataa ja vaihda kontti varmistaaksesi, että kyseinen polku on todella pysyvä. Tarkista omistajuudet ja vapaa levytila nyt, sillä liitetty mutta kirjoitussuojattu polku toimii käytännössä aivan kuin pysyvää tallennustilaa ei olisi lainkaan.

Varmuuskopioi erilliseen failure domainiin, joka ei ole sama kuin käynnissä oleva palvelin. Luo SearXNG uudelleen pinotusta imagesta ja varmista, että custom-enginet, formaatit, limiter-säännöt ja proxy-asetukset palautuvat ja että tunnettu kysely tuottaa tuloksia useista hakukoneista. Pysyvän tallennustilan opas auttaa muuttamaan harjoituksen snapshot- ja säilytyskäytännöksi.

Sulje väliaikainen käyttöönotto-oikeus

Bootstrap-tunnistetiedot ovat väliaikaisia, mutta luottamusmalli on pysyvä. SearXNG:n kanssa on varottava esimerkiksi example secret_keyn käyttöönottoa sellaisenaan tai rate control -asetusten poistamista julkisesta endpointista. Käytä muuta kuin oletusarvoista secret keytä, ota abuse control -ominaisuudet käyttöön ja tarjoa JSONia vain silloin, kun agentti tai sovellus tarvitsee sitä.

Käsittele SEARXNG_SECRET-muuttujaa sen SearXNG-roolin mukaisesti: pidä arkaluontoiset arvot poissa Gitistä, dokumentoi kierrätyksen vaikutukset äläkä koskaan käytä julkista esimerkkiä tuotannossa. Suorita image ilman tarpeettomia Linux-capabilityjä ja julkaise vain julkinen sovellusreitti. Pidä ylläpitäjien toiminta näkyvissä tallentamatta salaisia arvoja.

Dokumentoi toimivaksi todettu SearXNG-käyttöönotto

Muuta SearXNG:n smoke test toistettavaksi release-komennoksi tai lyhyeksi runbookiksi. Sen tulosteen on osoitettava seuraava lopputulos: lähetä sekä HTML- että JSON-hakuja, varmista, että useat hakukoneet tuottavat tuloksia, ja laukaise määritetty rate limiter testiasiakkaalla. Tallenna tuloksen yhteyteen sovelluksen versio, kontin digest, reitin hostname ja testidatan tunniste.

Suorita sama tarkistus tavallisen kontin vaihdon jälkeen sekä sen jälkeen, kun settings.yml, limiterin konfiguraatio ja mahdolliset paikalliset plugin-laajennukset on palautettu muualle. Palautus on onnistunut, kun custom-enginet, formaatit, limiter-säännöt ja proxy-asetukset palautuvat ja tunnettu kysely tuottaa tuloksia useista hakukoneista. Vertaa upstream-hakukoneiden latenssiin, samanaikaisiin kyselyihin, tulosten jäsentämiseen ja palvelimen IP-osoitteeseen kohdistettuihin estoihin liittyvää ajoitusta ja kulutusta; suuri muutos kannattaa tutkia, vaikka lopputulos läpäisisi testin.

Harjoittele seuraavaksi turvallista virhetilannetta: estä testitunnisteelta väliaikaisesti pääsy Redis- tai Valkey-palveluun, kun rate limiter- ja bot-detection-ominaisuudet ovat käytössä. Varmista, että SearXNG tuo virheen näkyviin ja palautuu normaaliksi ilman tuhoisia manuaalisia muokkauksia. Säilytä vain tarpeellinen, sensuroitu ote lokista. Tämä neliosainen tarkistus kattaa käynnistyksen, pysyvyyden, palautuksen ja virheenkäsittelyn.

Käynnistä ensimmäinen tuotantoa vastaava instanssi

Käytä konttia vaihdettavana runtimena, älä totuuden lähteenä.

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

Lisää Redis- tai Valkey-palvelun tarkistetut yhteysasetukset, kun rate limiter- ja bot-detection-ominaisuudet ovat käytössä; käytä yksityisille palveluille yksityisiä nimiä. Tarkista kontin käyttäjä, kirjoitettavat polut ja sidottu kuuntelija ennen sen julkaisemista. Suorita koko toiminto — lähetä sekä HTML- että JSON-hakuja, varmista, että useat hakukoneet tuottavat tuloksia, ja laukaise määritetty rate limiter testiasiakkaalla — ja tallenna tarkan tuloksen tuottanut image-viite.

Estä proxyn onnistumista peittämästä sovelluksen virhettä

Julkaise SearXNG:lle yksi HTTPS-hostname ja pidä raaka portti 8080 yksityisenä. Määritä server base_url ja trusted proxy headers HTTPS:ää varten. Näin selaimet ja API-asiakkaat eivät opi kahta keskenään kilpailevaa osoitetta.

Suorita tunnetusti toimiva tapahtuma puhtaalta asiakkaalta ja tutki ensimmäinen epäonnistuva pyyntö. Käytä custom domain -opasta, jos DNS tai TLS on väärin määritetty. Käsittele tapaus ”hakukoneet estävät palvelimen IP-osoitteen tai formaateista puuttuu json API-asiakkaita varten” erillisenä sovellusdiagnoosina vasta, kun reitin toimivuus on varmistettu.

Lokit, jotka vastaavat seuraavaan kysymykseen

SearXNG:n ensimmäinen hyödyllinen operatiivinen mittari on se, pystyykö se lähettämään sekä HTML- että JSON-hakuja, varmistamaan useiden hakukoneiden tuottavan tuloksia ja laukaisemaan määritetyn rate limiterin testiasiakkaalla. Yhdistä tähän upstream-hakukoneiden latenssia, samanaikaisia kyselyitä, tulosten jäsentämistä ja palvelimen IP-osoitteeseen kohdistettuja estoja kuvaavat saturation-signaalit. Pelkän prosessin probe ei saa kutsua raskaita riippuvuuksia tai käynnistää konttia uudelleen vain siksi, että upstream-palvelu on hetken saavuttamattomissa.

Käsittele päivityksiä datamuutoksina, koska asetusten syntaksi, engine-määrittelyt ja limiterin toiminta voivat muuttua. Ota siksi konfiguraatio- ja image-muutokset käyttöön yhtenä tarkistettavana kokonaisuutena. Pin versiot, harjoittele palautetulla tilalla ja pidä edellinen image saatavilla, kunnes rollback on edelleen mahdollinen. Kun hakukoneet estävät palvelimen IP-osoitteen tai formaateista puuttuu json API-asiakkaita varten, säilytä ennen uudelleenkäynnistystä syntyneet lokit; niissä on yleensä syy-yhteyden paljastava viesti.

Liitä SearXNG Dockupin elinkaareen

SearXNG:n platform layer koostuu portista 8080, ingressistä, TLS:stä, runtime-konfiguraatiosta, tallennustilasta ja riippuvuuksien saavutettavuudesta. Dockup voi toistaa nämä osat omalle infrastruktuurilleen tai palvelimelle, jonka asiakas yhdistää.

Tämän jälkeen ylläpitäjä viimeistelee product layerin: määritä server base_url ja trusted proxy headers HTTPS:ää varten; pakota tämä käyttöoikeussääntö — käytä muuta kuin oletusarvoista secret keytä, ota abuse control -ominaisuudet käyttöön ja tarjoa JSONia vain silloin, kun agentti tai sovellus tarvitsee sitä — ja suorita ”lähetä sekä HTML- että JSON-hakuja, varmista, että useat hakukoneet tuottavat tuloksia, ja laukaise määritetty rate limiter testiasiakkaalla”. Kun testi tallennetaan käyttöönoton yhteyteen, automaattista provisiointia ei sekoiteta sovelluksen valmiuteen.

Usein kysytyt kysymykset

Mitä SearXNG tarvitsee tuotantokäyttöönottoa varten?

Reititä SearXNG-kontti portissa 8080 yhden HTTPS-originin kautta. Tukiverkon vaatimus on Redis tai Valkey, kun rate limiter- ja bot-detection-ominaisuudet ovat käytössä. Älä pidä SearXNG:tä valmiina, ennen kuin pystyt lähettämään sekä HTML- että JSON-hakuja, varmistamaan useiden hakukoneiden tuottavan tuloksia ja laukaisemaan määritetyn rate limiterin testiasiakkaalla.

Mitkä SearXNG:n tiedot kuuluvat varmuuskopioon?

Säilytä /etc/searxng ja sisällytä settings.yml, limiterin konfiguraatio ja mahdolliset paikalliset plugin-laajennukset samaan palautusmanifestiin. Puhdas SearXNG-palautus on onnistunut vain, kun custom-enginet, formaatit, limiter-säännöt ja proxy-asetukset palautuvat ja tunnettu kysely tuottaa tuloksia useista hakukoneista.

Tarvitseeko SearXNG HTTPS:ää reverse proxyn takana?

Käytä julkisessa SearXNG-originissa HTTPS:ää ja pidä portti 8080 sisäisessä reitissä. Määritä SearXNG:n asetus oikein: määritä server base_url ja trusted proxy headers HTTPS:ää varten. SearXNG:n tapauksessa HTTPS suojaa tunnistetietoja ja käyttäjien sisältöä siirron aikana sekä pitää originista riippuvan asiakaskäyttäytymisen yhdenmukaisena.

Miten SearXNG-päivitys pitäisi testata?

Palauta nykyinen SearXNG-tila eristettyyn käyttöönottoon, ota ehdokasversio käyttöön ja toista sen hyväksyntätapahtuma. Kiinnitä erityistä huomiota siihen, että asetusten syntaksi, engine-määrittelyt ja limiterin toiminta voivat muuttua, joten ota konfiguraatio- ja image-muutokset käyttöön yhtenä tarkistettavana kokonaisuutena. Säilytä edellinen SearXNG-image, kunnes sen datamigraation ja rollbackin rajat ovat selvillä.