Google käsittelee Suomessa yhä noin 87 prosenttia kaikista hauista Statcounterin heinäkuun 2026 datan mukaan, ja koko Euroopassa luku on samaa luokkaa, noin 88 prosenttia toukokuun 2026 mittauksessa. Jokainen haku kulkee samalle palvelimelle, jonka sijainti ja lokikäytäntö eivät ole käyttäjän hallinnassa. Tässä oppaassa rakennamme oman, itse ylläpidetyn hakukoneen SearXNG:llä ja Dockerilla: 12 vaihetta, noin 45 minuuttia, ja lopputuloksena hakukone, joka ei tallenna hakuhistoriaasi mihinkään ulkopuoliseen palveluun.
SearXNG ei ole oma hakuindeksi vaan metahaku: se lähettää kyselysi useille taustahakukoneille (Google, Bing, DuckDuckGo, Brave Search ja kymmeniin muihin) ja yhdistää tulokset ilman, että mikään näistä palveluista näkee, kuka kysyi. Ruotsalainen VPN-yhtiö Mullvad sulki oman Leta-hakupalvelunsa marraskuussa 2025, koska hakukoneet olivat yhtiön mukaan käymässä yhä tiukemmiksi proxy-pohjaista hakuliikennettä kohtaan. Sama ilmiö näkyy jokaisessa SearXNG-asennuksessa: taustahakukoneet rajoittavat, estävät ja CAPTCHA-suojaavat liikennettä, ja tämän oppaan vianmääritysosio antaa niihin konkreettiset korjaukset.
Opas etenee järjestyksessä palvelimen valmistelusta valmiiseen, HTTPS-suojattuun hakukoneeseen, jonka voi asettaa selaimen oletukseksi. Matkan varrella käydään läpi Docker-asennus, salaisen avaimen generointi, käänteinen välityspalvelin Let’s Encrypt -varmenteella, palomuurin säätö, taustahakukoneiden virittäminen ja lopuksi automaattinen ylläpito. Jokainen vaihe sisältää täsmälliset komennot kopioitavaksi suoraan päätteeseen, ja lopussa on kokonainen toimiva docker-compose-projekti sekä 8-kohtainen vianmääritystaulukko. Jos ajat asennuksen kerralla alusta loppuun, varaa noin 45 minuuttia, josta suurin osa kuluu HTTPS-varmenteen odottamiseen ja taustahakukoneiden testaamiseen.
Mikä SearXNG on ja miksi se kannattaa Suomessa
SearXNG on avoimen lähdekoodin metahakumoottori, joka jatkaa vanhemman Searx-projektin kehitystä. Se ei rakenna omaa hakuindeksiä vaan kysyy tuloksia kymmeniltä taustapalveluilta rinnakkain, suodattaa duplikaatit ja palauttaa yhdistetyn listan. Käyttäjän IP-osoite ja hakusanat eivät koskaan päädy suoraan Googlelle tai Bingille, koska palvelin tekee kyselyt puolestasi. Projekti on GitHubissa avoimena, ja sitä voi tarkastella rivi riviltä ennen tuotantokäyttöä.
Projektin oma dokumentaatio kuvaa SearXNG:n rullaavana julkaisuna: uusin commit master-haarassa on aina se, jota pidetään vakaana versiona. Käytännössä tämä näkyy Docker-kuvien versiotunnisteina, jotka sisältävät päivämäärän ja lyhyen Git-tunnisteen, esimerkiksi build 2026.8.17-7dcebe817 elokuulta 2026. Tämä eroaa perinteisestä numerosarjasta (1.0, 1.1, 2.0), ja se kannattaa hyväksyä osana projektin luonnetta: päivitykset tulevat tiuhaan, ja jokainen päivitys yleensä korjaa jonkin taustahakukoneen rikkoutuneen integraation.
Suomalaiselle käyttäjälle relevanttia on erityisesti se, missä data sijaitsee ja kuka sitä käsittelee. Ranskalainen Qwant markkinoi itseään täysin GDPR-yhteensopivana palveluna, joka ei profiloi käyttäjiä eikä tallenna henkilötietoja, mutta se on silti kolmannen osapuolen pilvipalvelu. Sama koskee EU-parlamenttia, joka siirtyi vuonna 2026 käyttämään Qwantia sisäisenä oletushakukoneena juuri EU-datan sijaintiin liittyvistä syistä, vaikka Google säilytti silti selvästi suurimman markkinaosuutensa koko unionin tasolla. Tämä osoittaa, että myös instituutiot painivat saman kysymyksen kanssa: kolmannen osapuolen GDPR-yhteensopiva palvelu on parempi kuin ei mitään, mutta se ei anna samaa hallintaa kuin oma infrastruktuuri. Omalla palvelimella ajettu SearXNG-asennus antaa täyden hallinnan lokitukseen: voit sammuttaa lokit kokonaan, valita mitkä taustahakukoneet saavat kyselysi, ja pitää koko infrastruktuurin EU:n alueella, esimerkiksi suomalaisella tai ruotsalaisella VPS-tarjoajalla.
Julkisten SearXNG-instanssien listasivu searx.space näyttää satoja tuotannossa ajettavia asennuksia ympäri maailmaa, joista useilla on A+-tason TLS-arvosana ja voimassa oleva Let’s Encrypt -varmenne. Nämä julkiset instanssit todistavat, että arkkitehtuuri toimii käytännössä laajassa mittakaavassa, mutta ne eivät sovi kaikille: koska instanssi on julkinen ja kolmannen osapuolen ylläpitämä, et voi olla varma, mitä lokeja sen taustalla mahdollisesti kerätään, vaikka ylläpitäjä lupaisi olla tekemättä niin. Tästä syystä tämä opas keskittyy nimenomaan omaan, yksityiseen asennukseen, jonka jokainen asetus on sinun hallinnassasi ensimmäisestä rivistä lähtien.
Miten hakupyyntö kulkee SearXNG:n läpi
Kun kirjoitat hakusanan omaan SearXNG-instanssiisi, palvelin ei tee yhtä kyselyä vaan useita rinnakkaisia kyselyitä valitsemillesi taustamoottoreille samanaikaisesti. Jokainen moottori palauttaa oman tuloslistansa muutamassa sadassa millisekunnissa, minkä jälkeen SearXNG yhdistää listat, poistaa samat osoitteet esiintymästä moneen kertaan ja järjestää lopputuloksen omalla pisteytysalgoritmillaan, joka painottaa sitä, kuinka moni moottori nosti saman tuloksen kärkeen. Käyttäjän selain näkee vain lopullisen, yhdistetyn listan, eikä tiedä, mikä yksittäinen tulos tuli mistäkin taustamoottorista, ellei sitä erikseen näytetä tuloksen alla olevana pienenä merkintänä.
Tämä arkkitehtuuri tarkoittaa käytännössä sitä, että yksikään taustamoottori ei koskaan näe koko kuvaa käyttäjästä. Google näkee hakusanan ja SearXNG-palvelimesi IP-osoitteen, muttei tiedä, että sama käyttäjä teki viisi minuuttia aiemmin toisen haun DuckDuckGon kautta samalta palvelimelta. Koska kyselyt lähtevät aina palvelimeltasi eivätkä käyttäjän omalta laitteelta, myöskään käyttäjän todellinen IP-osoite, laitetyyppi tai selaimen sormenjälki eivät koskaan päädy taustamoottoreille asti. Tämä on perustavanlaatuinen ero verrattuna esimerkiksi Startpagen malliin, jossa palvelu välittää anonymisoidun kyselyn, mutta arkkitehtuuri on silti kolmannen osapuolen hallinnassa.
| Hakukone | Osuus Suomessa (heinä 2026) | Osuus Euroopassa (touko 2026) |
|---|---|---|
| 86,85 % | 88,33 % | |
| Yandex | 4,96 % | ei merkittävä |
| Bing | 4,64 % | 5,69 % |
| DuckDuckGo | 1,67 % | alle 2 % |
| Yahoo | 1,21 % | alle 1 % |
| Ecosia | 0,42 % | alle 1 % |
Taulukon luvut ovat Statcounterin julkisesta datasta. Ne kertovat, kuinka kapea markkinaosuus yksityisyyttä painottavilla palveluilla on, mutta myös sen, että vaihtoehtoja on olemassa ja niitä käytetään kasvavassa määrin. Oma SearXNG-instanssi ei näy näissä tilastoissa lainkaan, koska se ei ole julkinen palvelu, mutta juuri se on sen etu: käyttäjämääräsi ei kerry kenenkään analytiikkaan.
Esivaatimukset ennen asennusta
Tarvitset seuraavat asiat ennen kuin aloitat. Mikään niistä ei maksa paljon, ja koko projektin voi ajaa halvimmalla VPS-tasolla, joka useimmilta tarjoajilta maksaa 4-6 euroa kuukaudessa.
- Linux-VPS tai kotipalvelin, vähintään 1 vCPU ja 1 GB RAM-muistia (2 GB suositeltu, jos ajat Redis-välimuistin rinnalla)
- Ubuntu 24.04 LTS, Debian 12 tai vastaava, root- tai sudo-oikeudet
- Docker Engine, versio 29.7.2 tai uudempi (julkaistu 5.8.2026 hätäkorjauksena aiempien 29.7.0/29.7.1-versioiden kuva- ja oikeusongelmiin)
- Docker Compose -liitännäinen, versio 5.5.0 tai uudempi (julkaistu 17.8.2026)
- Oma verkkotunnus, esimerkiksi haku.omadomain.fi, jonka A-tietue osoittaa palvelimesi IP-osoitteeseen
- Portit 80 ja 443 auki palomuurissa HTTPS-varmenteen hakemista varten
- Peruskäsitys komentorivin käytöstä ja tekstieditorista (nano tai vim riittää)
- Noin 45 minuuttia aikaa koko asennukselle testauksineen
Verkkotunnuksen voi hankkia mistä tahansa rekisteröijältä, myös suomalaiselta Zoneri- tai Louhi-tyyppiseltä palveluntarjoajalta, jos haluat pitää koko toimitusketjun kotimaisena. Fi-päätteinen tunnus edellyttää y-tunnusta tai suomalaista henkilötunnusta rekisteröinnin yhteydessä, joten monet henkilökohtaiseen käyttöön asennusta rakentavat valitsevat sen sijaan yleisemmän .com- tai .eu-päätteisen tunnuksen, joka toimii täysin samalla tavalla tässä oppaassa kuvatun konfiguraation kanssa.
Jos et halua hankkia omaa verkkotunnusta, voit ajaa SearXNG:n myös pelkän IP-osoitteen takana ilman HTTPS-vaihetta, mutta tällöin selaimesi voi merkitä sivun turvattomaksi ja osa selainlaajennuksista kieltäytyy käyttämästä sitä oletushakukoneena. Suosittelemme silti verkkotunnusta ja Let’s Encrypt -varmennetta, koska molemmat ovat ilmaisia eikä lisätyö ole suuri.
VPS-tarjoajan valinnassa kannattaa priorisoida palvelinsijaintia, ei pelkkää hintaa. Useimmat suuret VPS-tarjoajat, kuten Hetzner ja UpCloud, tarjoavat datakeskuksia Suomessa tai muualla EU-alueella, mikä pitää koko hakuliikenteen ja mahdolliset lokit unionin sisällä ilman erillisiä sopimusjärjestelyjä kolmansien maiden siirroille. Halvin 1 vCPU / 1 GB -taso riittää yhden hengen tai perheen käyttöön mainiosti, mutta jos aiot jakaa instanssin laajemmalle käyttäjäjoukolle tai ajaa sen rinnalla muitakin palveluita, kannattaa varata 2 vCPU ja 4 GB RAM-muistia jo alusta alkaen.
Palvelimen maantieteellinen sijainti vaikuttaa myös viiveeseen omalta laitteeltasi instanssiin. Jos käytät hakukonetta pääasiassa Suomesta tai muualta Pohjoismaista käsin, palvelin Helsingissä, Tukholmassa tai Frankfurtissa tuottaa selvästi paremman käyttökokemuksen kuin palvelin toisella mantereella, koska jokainen sivunlataus ja haku kulkee ensin selaimeltasi palvelimelle ja vasta sitten palvelimelta taustahakukoneille.
Vaihe 1-2: palvelimen valmistelu ja Dockerin asennus
Vaihe 1. Kirjaudu palvelimellesi SSH:n kautta ja päivitä järjestelmä ennen mitään muuta. Tämä varmistaa, että pakettivarastot ja turvapäivitykset ovat ajan tasalla ennen kuin lisäät Dockerin oman pakettivarastonsa.
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg git
Vaihe 2. Asenna Docker Engine viralliselta asennusskriptiltä ja lisää käyttäjäsi docker-ryhmään, jotta et joudu kirjoittamaan sudo-komentoa jokaisen docker-käskyn eteen. Kirjaudu uloskirjautumisen jälkeen uudelleen sisään, jotta ryhmämuutos astuu voimaan.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
docker --version
docker compose version
Tulostuksen pitäisi näyttää suunnilleen tältä, versionumerot voivat vaihdella hieman asennushetkestä riippuen:
Docker version 29.7.2, build a1b2c3d
Docker Compose version v5.5.0
Jos docker --version palauttaa “command not found”, asennusskripti ei todennäköisesti suoritettu loppuun asti. Tarkista virheilmoitukset skriptin tulosteesta ja varmista, että käytät tuettua Linux-jakelua.
get-docker.sh-skripti ajaa asennuksen root-oikeuksin ja lisää Dockerin virallisen pakettivaraston järjestelmääsi automaattisesti. Tuotantopalvelimella kannattaa avata skripti tekstieditorissa ja lukea se läpi ennen ajoa, koska mikä tahansa internetistä ladattu ja suoraan suoritettava skripti on syytä tarkistaa etukäteen. Vaihtoehtona voit asentaa Dockerin myös jakelusi omasta pakettivarastosta (apt install docker.io docker-compose-plugin), mutta tällöin versio jää usein muutaman kuukauden virallista julkaisua jäljessä.
Vaihe 3-4: SearXNG-docker-repositorion kloonaus
Vaihe 3. Kloonaa virallinen searxng-docker-repositorio, joka sisältää valmiin docker-compose-rakenteen, Caddy-käänteisen välityspalvelimen ja perusasetukset. Tämä säästää sinut kirjoittamasta konfiguraatiota nollasta. Jos git-komento puuttuu, asenna se ensin (sudo apt install -y git), tai vaihtoehtoisesti lataa repositorio ZIP-tiedostona GitHubin verkkosivulta ja pura se palvelimelle scp:llä tai sftp:llä.
git clone https://github.com/searxng/searxng-docker.git
cd searxng-docker
ls -la
Hakemistossa näkyy docker-compose.yaml, Caddyfile ja searxng/-kansio, jossa itse settings.yml sijaitsee. Vaihe 4. Avaa .env-tiedosto (tai luo se, jos sitä ei ole) ja aseta verkkotunnuksesi ja sähköpostisi Let’s Encrypt -ilmoituksia varten.
echo "SEARXNG_HOSTNAME=haku.omadomain.fi" > .env
echo "[email protected]" >> .env
cat .env
Vaihda omadomain.fi omaan verkkotunnukseesi molemmissa riveissä. Jos jätät tämän vaiheen väliin, Caddy ei osaa hakea oikeaa HTTPS-varmennetta myöhemmässä vaiheessa ja palvelu jää kiinni “waiting for certificate” -tilaan.
searxng-docker-repositorio erottelee tarkoituksella kaksi asetuskerrosta: .env-tiedosto ohjaa infrastruktuuritason arvoja, kuten verkkotunnusta ja sähköpostia, kun taas searxng/settings.yml ohjaa itse hakukoneen käyttäytymistä, kuten taustamoottoreita ja käyttöliittymän kieltä. Tämä erottelu kannattaa säilyttää sellaisenaan, koska se helpottaa Git-versionhallinnan käyttöä myöhemmin: voit tallentaa settings.yml:n muutokset omaan repositorioosi ilman, että verkkotunnus tai muut ympäristökohtaiset tiedot päätyvät vahingossa julkiseen versionhallintaan.
Vaihe 5-6: settings.yml ja salaisen avaimen generointi
Vaihe 5. Jokainen SearXNG-asennus tarvitsee yksilöllisen salaisen avaimen, joka suojaa istuntoja ja estää tiettyjä palvelunestohyökkäyksiä. Oletusarvoinen settings.yml sisältää paikkamerkin, joka pitää korvata satunnaisella arvolla ennen tuotantokäyttöä.
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
grep secret_key searxng/settings.yml
Vaihe 6. Muokkaa samaa tiedostoa ja säädä muutama asetus omaan käyttöösi sopivaksi. Alla oleva pätkä näyttää yleisimmät kohdat, joita kannattaa muuttaa: JSON-muodon salliminen (tarvitaan, jos yhdistät hakukoneen esimerkiksi tekoälyagenttiin), automaattitäydennyksen lähde ja kuvien välitys omalta palvelimelta suoraan käyttäjän selaimen sijaan.
use_default_settings: true
server:
secret_key: "TÄHÄN_GENEROITU_AVAIN"
limiter: true
image_proxy: true
search:
safe_search: 0
autocomplete: "duckduckgo"
formats:
- html
- json
image_proxy: true on tärkeä yksityisyyden kannalta: ilman sitä hakutulosten kuvat ladataan suoraan alkuperäiseltä palvelimelta, jolloin kohdesivusto näkee käyttäjän IP-osoitteen, vaikka itse haku kulki SearXNG:n kautta. limiter: true puolestaan hidastaa botteja ja automatisoitua väärinkäyttöä, mutta kannattaa jättää pois vain, jos ajat instanssia täysin suljetussa sisäverkossa.
Salainen avain toimii istuntoallekirjoituksen ja CSRF-suojauksen perustana: jos kaksi eri asennusta jakaa saman avaimen (esimerkiksi kopioimalla settings.yml suoraan toisesta asennuksesta ilman vaihetta 5), hyökkääjä voi teoriassa väärentää istuntoja toisen palvelimen välillä. safe_search-asetuksen oletusarvo 0 tarkoittaa, ettei sisältöä suodateta lainkaan; arvo 1 suodattaa selkeimmän aikuisviihteen ja arvo 2 suodattaa myös rajatapaukset. Kotikäytössä, jossa lapset saattavat käyttää samaa hakukonetta, kannattaa nostaa arvo vähintään ykköseen.
Ennen kuin käynnistät kontin uudelleen muokatulla settings.yml-tiedostolla, kannattaa tarkistaa YAML-syntaksin oikeellisuus. Python-tulkki löytyy lähes jokaisesta Linux-jakelusta valmiiksi, joten nopein tarkistus onnistuu ilman erillisiä lisätyökaluja.
python3 -c "import yaml; yaml.safe_load(open('searxng/settings.yml'))" && echo "YAML kelvollinen"
Jos komento heittää virheen, se kertoo tarkan rivinumeron, jossa sisennys tai lainausmerkki menee pieleen. Tämä säästää usein useita minuutteja verrattuna siihen, että jäisit tuijottamaan konttien “restarting”-tilaa ilman selkeää vihjettä syystä.
Vaihe 7-8: docker-compose.yaml ja Redis-välimuisti
Vaihe 7. Tarkista repositorion mukana tuleva docker-compose.yaml ja varmista, että se sisältää kolme palvelua: Caddy käänteiseksi välityspalvelimeksi, Redis välimuistiksi ja itse SearXNG-kontti. Redis nopeuttaa toistuvia hakuja ja vähentää taustahakukoneisiin kohdistuvaa kuormaa, mikä puolestaan pienentää riskiä joutua nopeusrajoituksen kohteeksi.
services:
caddy:
image: caddy:2.10
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-data:/data
restart: unless-stopped
redis:
image: redis:7-alpine
command: redis-server --save "" --appendonly no
restart: unless-stopped
searxng:
image: searxng/searxng:2026.8.17-7dcebe817
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=https://haku.omadomain.fi/
- SEARXNG_REDIS_URL=redis://redis:6379/0
restart: unless-stopped
volumes:
caddy-data:
Vaihe 8. Vaihda SearXNG-kuvan versiotunniste tuoreimpaksi, jos Docker Hubin tunnistelistalta löytyy uudempi build. Koska projekti julkaisee rullaavasti, kannattaa tarkistaa tunniste ennen jokaista tuotantoasennusta sen sijaan, että luottaa vanhaan ohjeeseen sokeasti.
Redis-kontti on tarkoituksella kevyt: --save "" --appendonly no kytkee pois levylle kirjoittamisen kokonaan, koska välimuisti sisältää vain lyhytikäisiä hakutuloksia eikä mitään, mikä pitäisi säilyä konttien uudelleenkäynnistyksen yli. Tämä pienentää levy-I/O:ta ja pitää muistin käytön ennustettavana pienelläkin VPS:llä. Jos huomaat myöhemmin, että Redis kuluttaa enemmän muistia kuin odotit, voit rajoittaa sitä lisäämällä --maxmemory 256mb --maxmemory-policy allkeys-lru samaan komentoriviin, jolloin Redis alkaa itse siivota vanhimmat välimuistirivit tilan loppuessa.
Huomaa myös volumes-määrittely: ./searxng:/etc/searxng:rw tarkoittaa, että settings.yml-tiedostosi säilyy palvelimen levyllä eikä katoa, vaikka kontti tuhottaisiin ja luotaisiin uudelleen. Tämä on syy, miksi kontin päivittäminen (docker compose pull && docker compose up -d) ei koskaan nollaa asetuksiasi: uusi kuva vain käynnistetään samalla tallennetulla asetustiedostolla. Jos joskus haluat aloittaa täysin puhtaalta pöydältä, riittää kansion searxng/ poistaminen ja repositorion oletustiedoston kopiointi takaisin tilalle.
Vaihe 9-10: käänteinen välityspalvelin ja HTTPS Let’s Encryptilla
Vaihe 9. Caddy hoitaa HTTPS-varmenteen hankinnan ja uusimisen automaattisesti Let’s Encryptilta, kunhan verkkotunnuksesi DNS-tietue osoittaa oikeaan palvelimeen ja portit 80 sekä 443 ovat auki. Tarkista, että Caddyfile vastaa verkkotunnustasi.
haku.omadomain.fi {
reverse_proxy searxng:8080
encode gzip
header {
Strict-Transport-Security "max-age=31536000"
X-Content-Type-Options "nosniff"
}
}
Vaihtoehto: nginx, jos et halua käyttää Caddya
Osa lukijoista ajaa jo nginx-pohjaista palvelinta muihin tarkoituksiin. Tällöin voit ohittaa Caddy-kontin kokonaan ja hoitaa HTTPS-varmenteen certbotilla suoraan isäntäjärjestelmässä, kunhan avaat SearXNG-kontin vain sisäverkkoon (esimerkiksi porttiin 127.0.0.1:8080) ja ohjaat nginxin sen läpi. Julkiset SearXNG-instanssien luettelosivut näyttävät useiden tuotantoasennusten käyttävän juuri Let’s Encrypt -varmenteita A+-tason TLS-arvosanalla, joten kumpi tahansa reitti, Caddy tai nginx plus certbot, tuottaa saman lopputuloksen.
server {
listen 443 ssl;
server_name haku.omadomain.fi;
ssl_certificate /etc/letsencrypt/live/haku.omadomain.fi/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/haku.omadomain.fi/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Varmenteen hankinta certbotilla onnistuu komennolla sudo certbot --nginx -d haku.omadomain.fi, kunhan nginx on jo asennettu ja edellä oleva palvelinlohko tallennettu paikoilleen. Certbot osaa myös asettaa automaattisen uusinnan cron-tehtäväksi ilman erillistä konfigurointia, joten HTTPS pysyy voimassa ilman manuaalista väliintuloa myös nginx-reitillä.
Strict-Transport-Security-otsake (HSTS) käskee selainta muistamaan, että sivusto vaatii aina HTTPS-yhteyden, jolloin selain ei edes yritä muodostaa salaamatonta yhteyttä myöhemmillä käynneillä. X-Content-Type-Options: nosniff puolestaan estää selainta arvaamasta tiedostotyyppejä väärin, mikä sulkee yhden yleisen hyökkäysreitin. Molemmat otsakkeet ovat ilmaisia lisätä ja niitä suositellaan lähes jokaisessa julkisessa TLS-oppaassa, joten ei ole syytä jättää niitä pois.
Vaihe 10. Käynnistä koko pino ja tarkista, että kaikki kolme konttia nousevat ylös ilman virheitä.
docker compose up -d
docker compose ps
Onnistunut tuloste näyttää suunnilleen tältä:
NAME IMAGE STATUS
searxng-docker-caddy-1 caddy:2.10 Up 45 seconds
searxng-docker-redis-1 redis:7-alpine Up 45 seconds
searxng-docker-searxng-1 searxng/searxng:2026.8.17-7dcebe817 Up 40 seconds (healthy)
Ensimmäinen varmenteen hankinta voi kestää 10-30 sekuntia, koska Caddy odottaa Let’s Encryptin vastausta. Jos docker compose ps näyttää searxng-kontin tilan “restarting”, siirry suoraan tämän oppaan vianmääritysosioon.
Kannattaa myös seurata konttien lokeja hetken aikaa ensimmäisen käynnistyksen jälkeen komennolla docker compose logs -f, koska se paljastaa heti, jos Caddy jää jumiin varmenteen hakuun tai jos SearXNG ei löydä Redis-yhteyttä. Terveen asennuksen lokeissa näkyy Caddyn ilmoitus onnistuneesta varmenteen hankinnasta ja SearXNG:n oma ilmoitus siitä, että palvelin kuuntelee porttia 8080 sisäisesti.
Selaimen kehittäjätyökalujen Verkko-välilehti (F12) on hyödyllinen viimeinen tarkistus: avaa se ennen hakua ja tee testihaku, jolloin näet suoraan, että pyyntö lähtee omalle verkkotunnuksellesi, palautuskoodi on 200 ja TLS-lukko näkyy osoiterivillä vihreänä tai harmaana selaimesta riippuen. Jos näet punaisen varoituskolmion tai “ei turvallinen” -tekstin, HTTPS-varmenne ei ole vielä aktiivinen tai se on vanhentunut, ja kannattaa palata edelliseen vaiheeseen tarkistamaan Caddyn tai certbotin lokit.
Vaihe 11-12: palomuuri, testaus ja käyttöönotto selaimessa
Vaihe 11. Avaa palomuurista vain tarvittavat portit. Älä koskaan jätä SSH-porttia kiinni etäpalvelimella, koska lukitset itsesi ulos.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Vaihe 12. Testaa hakukone selaimella osoitteessa https://haku.omadomain.fi tai komentorivillä curlilla. JSON-muodon testi toimii vain, jos otit formats: json käyttöön vaiheessa 6.
curl -s "https://haku.omadomain.fi/search?q=suomi&format=json" | head -c 400
Kun haku toimii selaimessa, aseta SearXNG oletushakukoneeksi: Firefoxissa Asetukset → Haku → Oletushakukone, ja lisää osoite https://haku.omadomain.fi/search?q=%s mukautettuna hakukoneena. Chromium-pohjaisissa selaimissa polku on Asetukset → Hakukone → Hallitse hakukoneita, ja sama kyselymalli toimii sellaisenaan.
sudo ufw allow OpenSSH säilyttää SSH-yhteyden auki ennen palomuurin aktivointia, mikä on kriittinen järjestys: jos aktivoit palomuurin ensin ja sallit portit vasta sen jälkeen, saatat menettää etäyhteyden palvelimeen kokonaan ja joudut hoitamaan palautuksen palveluntarjoajan konsolin kautta. ufw status verbose-komennon tulosteessa pitäisi näkyä kolme sallittua sääntöä (22, 80, 443) ja kaikki muu oletuksena estettynä sekä sisään- että ulospäin.
Hakukoneiden virittäminen ja nopeusrajoitusten hallinta
SearXNG kysyy oletuksena kymmeniltä taustahakukoneilta yhtä aikaa, mutta kaikki eivät kohtele proxy-liikennettä samalla tavalla. Google ja Bing rajoittavat aggressiivisesti yhdestä IP-osoitteesta tulevaa automatisoitua liikennettä, ja tämä koskee jokaista itse ylläpidettyä SearXNG-asennusta, ei vain sinun palvelintasi. Mullvadin päätös sulkea Leta-hakupalvelunsa marraskuussa 2025 oli suora seuraus samasta ilmiöstä: yhtiö totesi hakukoneiden olevan yhä vähemmän suopeita proxy-pohjaiselle pääsylle.
Käytännön ratkaisu on muokata settings.yml-tiedoston engines-osiota ja poistaa käytöstä ne moottorit, jotka aiheuttavat eniten CAPTCHA-lukkoja omalla palvelimellasi.
engines:
- name: google
disabled: false
timeout: 4.0
- name: bing
disabled: true
- name: brave
disabled: false
- name: duckduckgo
disabled: false
Kannattaa pitää käytössä 4-6 taustamoottoria yhden sijaan. Tämä hajauttaa kuormaa ja pitää palvelun toiminnassa, vaikka yksi moottori joutuisi väliaikaisesti lukkoon. Timeout-arvon nostaminen 3-4 sekuntiin auttaa hitaammilla VPS-palvelimilla, mutta liian korkea arvo hidastaa koko hakua, jos yksi moottori juuttuu vastaamattomaksi.
SearXNG jakaa taustamoottorit kategorioihin, kuten yleinen haku, kuvat, uutiset, videot ja tiede, ja jokainen kategoria voidaan virittää erikseen. Jos huomaat esimerkiksi kuvahakujen olevan hitaita tai epäluotettavia, voit poistaa yksittäisen kuvamoottorin käytöstä vaikuttamatta tekstihakuun lainkaan. Bottisuojaukset toimivat pääosin kolmella tavalla: IP-osoitteeseen kohdistuva nopeusrajoitus, User-Agent-merkkijonon tarkastus ja käyttäytymispohjainen analyysi, joka tunnistaa liian säännöllisen kyselytahdin. SearXNG lähettää oletuksena selaimen kaltaisen User-Agentin, mutta jos ajat instanssia korkealla kyselymäärällä, kannattaa harkita moottorikohtaisten viiveiden lisäämistä settings.yml:ään, jotta liikenne näyttää luonnollisemmalta.
Ruotsalaisen Mullvadin Leta-palvelun sulkeminen on hyvä muistutus siitä, ettei tämä ole pieni tai ohimenevä ongelma. Yhtiö rakensi kaupallisen, maksullisen hakupalvelun täsmälleen samalla proxy-periaatteella kuin oma SearXNG-instanssisi, ja silti se päätyi luopumaan koko tuotteesta hakukoneiden kiristyneen suhtautumisen vuoksi. Tästä ei kannata vetää johtopäätöstä, ettei oma asennus kannata, koska henkilökohtaisen ja pienimuotoisen käytön kyselymäärät ovat murto-osa kaupallisen palvelun kuormasta, mutta se selittää, miksi vianmääritysosiossa on oma kohtansa juuri CAPTCHA-lukoille.
Automaattiset päivitykset ja ylläpito
Koska SearXNG julkaisee rullaavasti, taustahakukoneiden rikkoutuneet integraatiot korjautuvat vasta, kun päivität kontin. Watchtower automatisoi tämän: se tarkistaa uudet Docker-kuvat säännöllisesti ja vaihtaa kontit ajon aikana ilman manuaalista väliintuloa.
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower --schedule "0 0 4 * * *" searxng redis caddy
Komento ajaa päivitystarkistuksen joka yö kello 4. Jos et halua täysin automaattisia päivityksiä tuotantoympäristössä, korvaa Watchtower viikoittaisella cron-tehtävällä, joka vain lähettää sähköpostin uuden version saatavuudesta, jolloin päätät itse päivityksen ajankohdan.
Kevyempi vaihtoehto on systemd-ajastin, joka ajaa docker compose pull && docker compose up -d kerran viikossa ilman ylimääräistä Watchtower-konttia. Tämä sopii, jos haluat pitää palvelinympäristön mahdollisimman yksinkertaisena eikä halua ylläpitää neljättä konttia pelkkää päivitystarkistusta varten. Kumpi tahansa tapa valitaan, päivityslokia kannattaa säilyttää muutama viikko taaksepäin, jotta näet helposti, mikä versio oli käytössä silloin kun jokin taustamoottori alkoi käyttäytyä oudosti.
Yleisimmät sudenkuopat asennuksessa
Suurin osa alla listatuista virheistä toistuu johdonmukaisesti ensimmäisten viikkojen aikana, koska asennus on tuore eikä vielä ole ehtinyt vakiintua. Kun samat asetukset ovat olleet käytössä kuukauden verran ilman muutoksia, näiden sudenkuoppien todennäköisyys putoaa merkittävästi.
- Salaisen avaimen unohtaminen. Jos jätät oletusarvoisen
ultrasecretkey-merkkijonon paikalleen, kuka tahansa samaa oletusarvoa käyttävä asennus jakaa saman istuntoallekirjoituksen. Vaihda avain aina vaiheen 5 mukaisesti. - SearXNG-portin avaaminen suoraan julkiseen verkkoon. Kontin portti 8080 ei sisällä HTTPS-salausta eikä nopeusrajoitusta samalla tavalla kuin Caddyn takana ajettuna. Pidä se sisäverkossa ja ohjaa liikenne aina käänteisen välityspalvelimen kautta.
- Liian monen taustamoottorin käyttö kerralla. Kaikkien 70+ saatavilla olevan moottorin aktivointi hidastaa jokaista hakua ja lisää CAPTCHA-riskiä. Valitse 5-8 luotettavaa moottoria.
- Redis-välimuistin jättäminen pois. Ilman Redistä jokainen toistuva haku kuormittaa taustamoottoreita uudestaan, mikä nopeuttaa nopeusrajoitusten laukeamista.
- Rullaavien päivitysten unohtaminen kokonaan. Vuosia vanha Docker-kuva ei enää osaa keskustella nykyisten hakukone-API:en kanssa, ja tulokset alkavat hiljalleen ehtyä ilman selkeää virheilmoitusta.
- DNS-tietueen puuttuminen ennen käynnistystä. Jos A-tietue ei osoita palvelimeen, kun Caddy yrittää hakea varmennetta, Let’s Encrypt hylkää pyynnön ja Caddy jää yrittämään uudelleen minuutin välein.
- Palomuurin unohtaminen kokonaan. Ilman ufw:tä tai vastaavaa jokainen palvelimella auki oleva portti, myös ne joita et tietoisesti avannut, on saavutettavissa julkisesta internetistä. Aja ufw-vaiheet heti Docker-asennuksen jälkeen, älä vasta viikkoja myöhemmin.
- Yhden ainoan varmuuskopion puuttuminen. settings.yml ja .env sisältävät kaiken asetustyön. Ota niistä kopio ennen jokaista suurempaa muutosta, jotta virheellinen muokkaus ei pysäytä koko palvelua ilman nopeaa palautusmahdollisuutta.
Vianmääritys: 8 yleisintä ongelmaa
Suurin osa ongelmista asennuksen jälkeen liittyy kolmeen asiaan: väärin muotoiltu YAML-tiedosto, DNS-tietue joka ei vielä ole ehtinyt levitä, tai taustahakukoneen tilapäinen esto. Alla oleva taulukko käy läpi kahdeksan yleisintä tapausta järjestyksessä, jossa ne yleensä ilmenevät ensimmäisen käyttöönoton aikana.
| Ongelma | Todennäköisin syy | Korjaus |
|---|---|---|
| Kontti jää tilaan “restarting” | settings.yml sisältää YAML-syntaksivirheen | Aja docker compose logs searxng ja tarkista sisennykset |
| Caddy ei hae HTTPS-varmennetta | DNS-tietue ei osoita palvelimeen tai portti 80 on kiinni | Tarkista dig haku.omadomain.fi ja ufw-säännöt |
| Hakutulokset tyhjiä lähes kaikilta moottoreilta | Ulospäin suuntautuva liikenne estetty palomuurissa | Salli kontin ulospäin suuntautuva HTTPS-liikenne |
| Yksittäinen moottori palauttaa jatkuvasti CAPTCHA-virheen | Kyseinen taustahakukone on rajoittanut palvelimesi IP:n | Poista moottori käytöstä settings.yml:ssä tai vaihda IP |
| “secret_key” -virhe käynnistyksessä | Avainta ei generoitu tai se sisältää lainausmerkkivirheen | Aja vaiheen 5 sed-komento uudelleen ja tarkista lainausmerkit |
| Haku on hidas, vaikka yhteys on nopea | Redis ei ole kytketty tai timeout-arvot liian korkeat | Tarkista SEARXNG_REDIS_URL-ympäristömuuttuja |
| Selain merkitsee sivun turvattomaksi | HTTPS ei ole vielä aktivoitunut tai varmenne vanhentunut | Odota Caddyn varmenteen hakua tai tarkista sen lokit |
| JSON-muotoinen haku palauttaa 403 | formats: json puuttuu settings.yml:stä | Lisää json-muoto vaiheen 6 ohjeen mukaisesti ja käynnistä uudelleen |
Jos mikään yllä olevista ei ratkaise ongelmaa, tarkista aina ensin kontin lokit komennolla docker compose logs -f searxng. Suurin osa virheistä näkyy siellä selkeänä Python-poikkeuksena, joka kertoo suoraan, mikä asetus tai tiedosto on virheellinen.
Kannattaa myös erottaa toisistaan kaksi eri virhetasoa: Docker-tason virheet (kontti ei käynnisty lainkaan, näkyy docker compose ps:ssä) ja sovellustason virheet (kontti pyörii, mutta haku palauttaa vääriä tai tyhjiä tuloksia). Ensimmäinen ratkaistaan lähes aina lokeista ja YAML-tiedostojen tarkistuksesta, jälkimmäinen taas vaatii yleensä yhden taustamoottorin poistamista käytöstä kerrallaan, kunnes löydät sen, joka aiheuttaa ongelman. Tämä kokeile-ja-sulje-menetelmä on hitaampi mutta luotettavin tapa paikantaa yksittäisen moottorin aiheuttama häiriö laajassa, kymmeniä moottoreita sisältävässä konfiguraatiossa.
Edistyneet vinkit tuotantokäyttöön
Perusasennus riittää useimmille käyttäjille sellaisenaan, mutta viisi jatkoaskelta tekevät instanssista käyttökelpoisemman pidemmällä aikavälillä, erityisesti jos jaat sen useammalle käyttäjälle tai yhdistät sen muihin itse ylläpidettyihin palveluihin.
Ensimmäinen jatkoaskel on monikäyttäjätuki: lisää Caddyfileen basicauth-lohko, jos jaat instanssin perheenjäsenten tai tiimin kesken ja haluat estää anonyymin pääsyn ulkopuolelta.
haku.omadomain.fi {
basicauth {
kayttaja $2a$14$hashed_password_here
}
reverse_proxy searxng:8080
}
Toinen vinkki koskee tekoälyagentteja: monet paikallisesti ajettavat LLM-työkalut, kuten Open WebUI, tukevat SearXNG:tä valmiina hakubackendina JSON-rajapinnan kautta. Tämä antaa oman tekoälyavustajasi hakea ajantasaista tietoa ilman, että kyselyt kulkevat kaupallisen hakuyhtiön kautta lainkaan.
Kolmas vinkki on pääsynhallinta ilman julkista porttia kokonaan: jos et halua avata palvelinta julkiseen internetiin ollenkaan, voit ajaa SearXNG:n Tailscale- tai WireGuard-verkon sisällä ja käyttää sitä vain omista laitteistasi käsin. Tällöin Caddyn HTTPS-varmenne ja portit 80/443 eivät ole edes tarpeen, koska liikenne kulkee valmiiksi salatussa yksityisverkossa.
Neljäs vinkki liittyy varmuuskopiointiin: koska koko asennuksen tila mahtuu kahteen tiedostoon, settings.yml ja .env, riittää yksinkertainen cron-tehtävä, joka pakkaa kansion ja lähettää sen erilliseen säilöön (esimerkiksi S3-yhteensopivaan objektivarastoon tai toiseen palvelimeen rsyncilla) kerran vuorokaudessa. Palautus uudelle palvelimelle vaatii tällöin vain Dockerin asennuksen, tiedostojen palautuksen ja docker compose up -d:n ajamisen, mikä pitää palautusajan alle kymmenessä minuutissa.
Viides vinkki on perusvalvonta: koska koko pino koostuu vain kolmesta kontista, riittää kevyt seurantaratkaisu, kuten docker compose logs yhdistettynä yksinkertaiseen cron-tehtävään, joka tarkistaa säännöllisesti curl -s -o /dev/null -w "%{http_code}" https://haku.omadomain.fi ja lähettää hälytyksen, jos vastauskoodi ei ole 200. Isommassa käyttöönotossa kannattaa harkita Prometheus- ja Grafana-yhdistelmää, jos ajat jo muutakin infrastruktuuria samalla tavalla valvottuna, mutta pienelle henkilökohtaiselle asennukselle yksinkertainen tilatarkistus riittää hyvin.
SearXNG verrattuna muihin yksityisyyshakukoneisiin
Pohjoismaissa yksityisyyttä painottavien hakukoneiden käyttö on kasvanut, vaikkakin hitaasti ja pieneltä pohjalta. Statcounterin Suomi-datassa DuckDuckGon osuus on noussut 1,67 prosenttiin ja muut vaihtoehdot jakavat loput muutamat prosenttiyksiköt. Kasvu kertoo siitä, että yhä useampi käyttäjä on tietoinen vaihtoehdoista, muttei silti yksin riitä syrjäyttämään Googlen ylivoimaista asemaa. Tässä kohtaa itse ylläpidetty ratkaisu eroaa selvästi valmiista kaupallisista vaihtoehdoista: se ei kilpaile markkinaosuudesta, koska se ei ole edes julkinen palvelu, vaan yksityinen työkalu yhdelle käyttäjälle tai pienelle ryhmälle.
Itse ylläpidetty SearXNG ei ole ainoa vaihtoehto Googlelle. Alla olevaan taulukkoon on koottu yleisimmät yksityisyyttä painottavat hakukoneet ja niiden keskeiset erot.
| Palvelu | Malli | Data pysyy omassa hallinnassa | Kustannus |
|---|---|---|---|
| SearXNG (itse ylläpidetty) | Avoin metahaku | Kyllä, täysin | VPS-kustannus, noin 4-6 €/kk |
| Qwant | Kolmannen osapuolen pilvipalvelu | Ei, mutta GDPR-yhteensopiva | Ilmainen |
| Startpage | Välittää Google-tulokset anonymisoituna | Ei | Ilmainen |
| Brave Search | Oma indeksi, ei kolmannen osapuolen dataa | Ei | Ilmainen, maksullinen API |
| DuckDuckGo | Kolmannen osapuolen indeksi, ei profilointia | Ei | Ilmainen |
Jos et halua ylläpitää mitään itse, Qwant, Startpage tai Brave Search ovat toimivia oletusvalintoja. Jos taas haluat täyden hallinnan lokitukseen ja infrastruktuurin sijaintiin, vain itse ylläpidetty SearXNG antaa sen. Kompromissi on ylläpitovastuu: sinä vastaat päivityksistä, varmenteista ja siitä, ettei palvelin jää vanhentuneeksi.
Brave Search eroaa muista taulukon vaihtoehdoista siinä, että sillä on oma hakuindeksi eikä se välitä pelkästään Googlen tai Bingin tuloksia eteenpäin. Tämä tekee siitä riippumattomamman, mutta myös hitaamman kehittää kattavuudeltaan yhtä laajaksi kuin vuosikymmeniä vanhat indeksit. Startpage puolestaan hakee tulokset suoraan Googlelta mutta poistaa käyttäjän tunnisteet ennen kyselyn lähettämistä, mikä tekee siitä käytännössä yksinkertaisimman tavan saada Google-tason hakutulokset ilman, että Google näkee kysyjän IP-osoitetta. Kumpikaan vaihtoehto ei kuitenkaan anna sinulle mahdollisuutta valita, mitkä taustahakukoneet saavat kyselysi, mikä on juuri se ominaisuus, jonka itse ylläpidetty SearXNG tuo mukanaan.
Kokonaiskustannuksissa ero näkyy vasta pidemmällä aikavälillä. Ilmaiset vaihtoehdot eivät maksa mitään suoraan, mutta niiden liiketoimintamalli perustuu joko mainontaan tai maksulliseen API-käyttöön yritysasiakkaille, mikä tarkoittaa, että palvelu voi muuttua, siirtyä maksulliseksi tai lakata kokonaan ilman että käyttäjä voi vaikuttaa asiaan. Itse ylläpidetty SearXNG maksaa saman verran joka kuukausi (VPS-lasku), mutta säilyy täysin omassa hallinnassa niin kauan kuin haluat sitä ylläpitää, riippumatta siitä, mitä yksittäiselle kaupalliselle palvelulle tapahtuu.
GDPR ja tietosuoja: miksi sijainnilla on väliä
GDPR ei kiellä hakukoneiden käyttöä, mutta se määrittää tarkasti, miten henkilötietoja saa käsitellä ja missä ne saavat sijaita. Kun ajat SearXNG-instanssia suomalaisella tai muulla EU-alueella sijaitsevalla palvelimella, päätät itse, tallennetaanko lokeja lainkaan, kuinka kauan ne säilyvät ja kuka niihin pääsee käsiksi. Tämä on erityisen relevanttia kunnille, oppilaitoksille ja yhdistyksille, joiden pitää pystyä osoittamaan, missä käyttäjädata liikkuu.
GDPR:n virallisen tulkintaoppaan mukaan rekisterinpitäjän on tiedettävä, missä käsittely tapahtuu, ja pystyttävä perustelemaan tietojen siirrot EU:n ulkopuolelle. Kaupallisilla hakukoneilla tämä tarkoittaa luottamista palveluntarjoajan omiin ehtoihin. Itse ylläpidetyllä instanssilla kysymys ratkeaa yksinkertaisesti: data ei koskaan poistu palvelimeltasi, ellet itse niin määrää settings.yml:ssä.
Käytännön suositus on sammuttaa lokit kokonaan tuotantokäytössä, ellet tarvitse niitä vianmääritykseen. settings.yml-tiedoston server-lohkoon voi lisätä lokitason rajoituksen, joka estää hakusanojen tallentumisen levylle. Tämä on sama periaate, jota käytimme jo aiemmin Tor-selaimen asennusoppaassa: mitä vähemmän dataa syntyy, sitä vähemmän sitä voi vuotaa tai luovuttaa eteenpäin.
Kannattaa myös huomioida kansainväliset tiedonsiirrot. Yhdysvaltalaisten pilvipalveluiden käyttöä EU:ssa on arvioitu uudelleen Schrems II -päätöksen jälkeen, ja moni organisaatio välttää nyt tietoisesti palveluita, joiden taustainfrastruktuuri sijaitsee EU:n ulkopuolella. Suomessa tietosuojavaltuutetun toimisto valvoo GDPR:n noudattamista ja voi pyytää selvitystä siitä, missä ja miten organisaatio käsittelee käyttäjiensä dataa. Itse ylläpidetty, Suomessa tai muualla EU:ssa sijaitseva SearXNG-instanssi yksinkertaistaa tätä keskustelua huomattavasti, koska koko käsittelyketju voidaan osoittaa yhdellä palvelinsopimuksella ilman monimutkaista alihankkijaketjua.
Jos ylläpidät SearXNG-instanssia organisaation puolesta, kannattaa kirjata lyhyt sisäinen kuvaus siitä, mitä dataa palvelin käsittelee (hakusanat, IP-osoitteet väliaikaisesti Redis-välimuistissa) ja kuinka kauan. Tämä ei ole raskas byrokraattinen harjoitus, vaan muutaman kappaleen mittainen dokumentti, joka osaltaan osoittaa rekisterinpitäjän vastuun täyttämisen, jos tietosuojavaltuutetun toimisto joskus pyytää selvitystä käytetyistä hakupalveluista.
Usein kysytyt kysymykset SearXNG-asennuksesta
Onko SearXNG hidas verrattuna Googleen?
Ero on yleensä 200-500 millisekuntia, koska palvelin kysyy useilta taustamoottoreilta rinnakkain ja odottaa hitaimman vastauksen. Redis-välimuisti pienentää eroa merkittävästi toistuvissa hauissa.
Tarvitsenko oman verkkotunnuksen?
Et pakosta, mutta ilman sitä et saa toimivaa HTTPS-varmennetta, ja osa selaimista estää oletushakukoneen asettamisen turvattomalle sivustolle.
Voiko SearXNG:n ajaa Raspberry Pi:llä?
Kyllä, Raspberry Pi 4 tai 5 riittää kevyeen henkilökohtaiseen käyttöön, kunhan varaat vähintään 2 GB RAM-muistia Redis-välimuistille ja muutamalle samanaikaiselle haulle.
Mitä teen, jos Google estää palvelimeni IP-osoitteen kokonaan?
Poista Google-moottori käytöstä settings.yml:ssä ja nojaa muihin taustamoottoreihin, kuten Braveen ja DuckDuckGohon. IP-osoitteen vaihtaminen VPS-tarjoajalta auttaa harvoin pysyvästi.
Onko SearXNG turvallinen jakaa julkisesti tuntemattomille käyttäjille?
Ei ilman lisäsuojauksia. Julkinen, tunnistautumaton instanssi houkuttelee botteja ja voi johtaa nopeampaan nopeusrajoitukseen. Käytä basicauth-suojausta tai rajaa pääsy Tailscale-verkkoon, jos jaat sen useammalle käyttäjälle.
Miten päivitän SearXNG:n uusimpaan versioon manuaalisesti?
Aja docker compose pull && docker compose up -d hakemistossa, jossa docker-compose.yaml sijaitsee. Watchtower automatisoi saman, jos et halua muistaa sitä itse.
Mitä eroa on SearXNG:llä ja vanhalla Searx-projektilla?
SearXNG on Searxin aktiivinen jatkokehitys. Taustamoottorien korjaukset tulevat nopeammin, ja riippuvuudet päivittyvät tiheämmin, koska alkuperäinen Searx-projekti ei enää kehity yhtä aktiivisesti.
Voiko SearXNG korvata Googlen kokonaan arjessa?
Suurimmalle osalle hauista kyllä, koska tulokset tulevat samoilta taustamoottoreilta. Erikoistuneissa hauissa, kuten kartat tai reaaliaikainen lentotieto, kannattaa silti käyttää erikoistunutta palvelua sen rinnalla.
Paljonko koko asennus maksaa kuukaudessa?
Halvin toimiva VPS-taso (1 vCPU, 1-2 GB RAM) maksaa useimmilta EU-tarjoajilta 4-6 euroa kuukaudessa. Verkkotunnus lisää muutaman euron vuodessa, ja Let’s Encrypt -varmenne on täysin ilmainen.
Voinko yhdistää SearXNG:n Home Assistantiin tai muuhun kotiautomaatioon?
Kyllä, koska JSON-rajapinta on tavallinen HTTP-pyyntö, mikä tahansa palvelu, joka osaa kutsua HTTP-rajapintaa, voi hakea tuloksia SearXNG-instanssiltasi ohjelmallisesti.
Mitä teen, jos haluan vaihtaa palvelimen toiseen VPS-tarjoajaan myöhemmin?
Kopioi searxng-docker-kansio kokonaisuudessaan uudelle palvelimelle, asenna Docker samojen ohjeiden mukaisesti, päivitä DNS-tietue osoittamaan uuteen IP-osoitteeseen ja aja docker compose up -d uudestaan. Caddy hakee uuden Let’s Encrypt -varmenteen automaattisesti heti kun DNS-muutos on ehtinyt levitä.
Koko asennus vaatii lopulta vain palvelimen, 45 minuuttia aikaa ja halun ylläpitää yhtä konttipinoa. Vastineeksi saat hakukoneen, joka ei myy profiiliasi kenellekään eikä tallenna yhtäkään hakusanaa ilman omaa lupaasi.
Jos jäät jumiin jossain vaiheessa, palaa vianmääritystaulukkoon ja tarkista ensin kontin lokit ennen kuin muutat useampaa asetusta kerralla. Yksi muutos kerrallaan, seurattuna lokien tarkistuksella, on selvästi nopeampi tapa löytää syy kuin usean asetuksen muuttaminen samanaikaisesti ja arvailu siitä, mikä korjasi ongelman. Kun asennus on kerran pystyssä ja testattu, ylläpito vie käytännössä muutaman minuutin viikossa, lähinnä docker-kuvien päivitystarkistukseen ja satunnaiseen taustamoottorin virittämiseen.




