Tropic Host

SearXNG․ ինչ է դա և ինչպես տեղադրել սեփական որոնողական համակարգը VPS-ում

2 րոպե կարդալ
Tropic
SearXNG․ ինչ է դա և ինչպես տեղադրել սեփական որոնողական համակարգը VPS-ում

Language: hy

SearXNG․ ձեր սեփական՝ առանց հետևման որոնողական համակարգը VPS-ում

Սովորական որոնողական համակարգը կարող է հարցումը կապել IP հասցեի, cookie-ների և գործունեության պատմության հետ։ SearXNG-ը փոխում է այդ երթուղին․ բրաուզերը միանում է ձեր ինստանցին, որն հարցումներ է ուղարկում մի քանի արտաքին որոնողական համակարգերի և դրանց պատասխանները միավորում մեկ էջում։

Արտաքին աղբյուրները տեսնում են SearXNG սերվերի հասցեն, ոչ թե օգտատիրոջ cookie-ները։ Ծառայությունն ինքնին գովազդային պրոֆիլ չի ստեղծում։ Սակայն սա լիակատար անանունություն չէ․ հանրային ինստանցիայի սեփականատերը տեխնիկապես կարող է պահել լոգեր, իսկ հղում բացելուց հետո նպատակային կայքը կրկին անմիջականորեն փոխգործակցում է բրաուզերի հետ։

Կդիտարկենք SearXNG-ի հնարավորությունները և HTTPS-ով ու գաղտնաբառով պաշտպանված սեփական ինստանցիա կտեղադրենք VPS-ում։

Ի՞նչ է SearXNG-ը և ինչպե՞ս է այն աշխատում

SearXNG-ը անվճար, բաց կոդով մետաորոնողական համակարգ է։ Այն կայքերի սեփական ինդեքս չի պահում․ ծառայությունը արդյունքները ստանում է կազմաձևված որոնողական համակարգերից և մասնագիտացված աղբյուրներից, միատեսակեցնում է դրանք և ցուցադրում մեկ ինտերֆեյսում։

Browser → your SearXNG → search engines
                         ↓
                  combined results

Յուրաքանչյուր հարցման համար SearXNG-ը․

  1. որոշում է որոնման կատեգորիան՝ վեբ, պատկերներ, նորություններ, տեսանյութեր կամ մեկ այլ կատեգորիա,
  2. ընտրված աղբյուրներին դիմում է սերվերի անունից,
  3. նրանց չի ուղարկում օգտատիրոջ cookie-ները և ելքային հարցումների համար օգտագործում է բրաուզերի պատահական պրոֆիլ,
  4. պատասխանները միավորում է արդյունքների մեկ էջում։

Արագությունը կախված է արտաքին համակարգերից․ դրանք կարող են դանդաղ պատասխանել, ցուցադրել CAPTCHA կամ արգելափակել IP հասցեն։ SearXNG-ը կառավարվող միջնորդ շերտ է, ոչ թե ինքնուրույն ինդեքս։

Ինչո՞ւ է SearXNG-ն ավելի հետաքրքիր, քան մեկ որոնողական համակարգը

Տարբեր աղբյուրներ արդյունքների մեկ էջում

Կարող եք ընդհանուր նշանակության որոնողական համակարգերը միավորել մասնագիտացված աղբյուրների հետ՝ հանրագիտարաններ, քարտեզներ, գիտական հրապարակումներ, պահոցներ, նորությունների ծառայություններ կամ պատկերների կատալոգներ։ Սա օգտակար է, երբ սովորական արդյունքների էջը լցված է SEO էջերով կամ դժվարանում է գտնել նեղ թեմայի նյութեր։

Հոդվածի պատրաստման պահին փաստաթղթերը նշում էին 272 ինտեգրում, որոնցից 83-ը միացված էին լռելյայն։ Սա չի նշանակում, որ բոլորն ունեն նույն կայունությունը։

Հավաքածուն կախված է կազմաձևումից։ Մի քանի կայուն աղբյուր սովորաբար ավելի արագ է աշխատում, քան ամեն ինչ միանգամից միացնելը։

Արագ հրամաններ

Կարճ հրամանները թույլ են տալիս ժամանակավորապես ընտրել շարժիչ, կատեգորիա կամ լեզու․

!wp docker compose       — search Wikipedia
!images northern lights  — search for images
:en !wp proxy server     — search Wikipedia in English

!! հրամանը օգտատիրոջը անմիջապես ուղղորդում է արտաքին որոնողական համակարգ։ Այս ռեժիմում SearXNG-ի պաշտպանությունն այլևս չի գործում։

Որոնում բրաուզերի և ձեր սեփական գործիքների համար

SearXNG-ը աջակցում է OpenSearch-ին, ուստի այն կարելի է սահմանել որպես բրաուզերի լռելյայն որոնողական համակարգ։ Հասանելի է նաև HTTP API՝ JSON, CSV կամ RSS պատասխաններով, եթե ադմինիստրատորը միացրել է անհրաժեշտ ձևաչափերը։

Մեկ ինստանցիա կարող է ծառայել որպես որոնման backend ներքին վահանակի, բոտի, հետազոտական սկրիպտի կամ տեղական AI օգնականի համար։ API-ն պետք է բացել միայն նույնականացում և հաճախականության սահմանափակումներ կազմաձևելուց հետո։

Որքանո՞վ է SearXNG-ը գաղտնի

Ինչ է անումԻնչ չի անում
Բրաուզերի cookie-ները չի ուղարկում արտաքին որոնողական համակարգերինԼիակատար անանունություն չի ապահովում
Օգտատիրոջ IP-ն թաքցնում է սերվերի IP-ի հետևումԱրդյունքի կայքը բացելուց հետո օգտատիրոջը չի պաշտպանում
Հեռացնում է երրորդ կողմի գովազդը և հետևման որոշ պարամետրերՉի երաշխավորում, որ ուրիշի սերվերի սեփականատերը լոգեր չի պահում
Կարող է պատկերները փոխանցել proxy-ի միջոցովՉի փոխարինում VPN-ին, Tor-ին կամ բրաուզերի պաշտպանությանը

Հանրային ինստանցիան հարմար է ծառայությունը փորձելու համար, բայց պետք է վստահեք դրա ադմինիստրատորին, իսկ ընդհանուր IP հասցեն ավելի հավանական է, որ ենթարկվի հաճախականության սահմանափակման։

Սեփական սերվերը ձեզ վերահսկողություն է տալիս լոգերի, աղբյուրների և հասանելիության նկատմամբ, բայց բրաուզերը անանուն չի դարձնում։

Հանրային ինստանցիա, տնային սերվե՞ր, թե՞ VPS

ՏարբերակԱռավելություններՍահմանափակումներ
Հանրային ինստանցիաՈչինչ տեղադրելու կարիք չկաՎստահություն սեփականատիրոջ նկատմամբ, ծանրաբեռնվածություն, CAPTCHA
Տնային սերվերԼիակատար վերահսկողություն՝ առանց VPS վարձելուՍարքը պետք է անընդհատ աշխատի, արտաքին հասանելիությունն ավելի դժվար է կարգավորել
Ձեր սեփական VPS-ը24/7 աշխատանք, դոմեն, HTTPS, հասանելիություն տարբեր սարքերիցԿոնտեյներները պետք է թարմացնել, իսկ անվտանգությունը՝ վերահսկել

Ձեր սեփական SearXNG ինստանցիան օգտակար է ընտանիքի, թիմի, ծրագրավորողի կամ տեղական AI գործիքների համար։ Հազվադեպ որոնումների դեպքում հանրային ինստանցիան ավելի պարզ է։

Ի՞նչ VPS է պետք SearXNG-ին

Ծանրաբեռնվածությունը կախված է օգտատերերի, աղբյուրների և միաժամանակյա հարցումների քանակից։ Գործնական մեկնարկային կազմաձևումներ․

ՍցենարCPURAMՊահեստ
Մեկ օգտատեր1 vCPU1 GB10 GB
Ընտանիք կամ փոքր թիմ2 vCPU2 GB20 GB
API և լրացուցիչ ծառայություններ2–4 vCPU4 GB-ից30 GB-ից

Մեծ սկավառակ պետք չէ։ Ցանցի որակը, կայուն IP հասցեն և ազատ RAM-ն ավելի կարևոր են։

tropic.host-ի Linux VPS-ը հարմար է այս սցենարի համար․ կարող եք սկսել փոքր կազմաձևումից և ավելացնել ռեսուրսները, երբ ավելացնեք օգտատերեր կամ API հասանելիություն։ Փաթեթ ընտրելիս ավելի օգտակար է ներդրում անել RAM-ի և ցանցի որակի մեջ, քան ավել վճարել պահեստի ծավալի համար։

SearXNG-ի տեղադրում VPS-ում Docker Compose-ով

Այս օրինակում օգտագործվում են Ubuntu 24.04 LTS-ը, search.example.com-ը, Valkey-ը և Caddy-ն։ DNS-ի A գրառումը ուղղեք սերվերին և բացեք 80 ու 443 պորտերը։

1. Docker-ի տեղադրում և գրացուցակի ստեղծում

sudo apt update
sudo apt install -y docker.io docker-compose-v2 openssl
sudo systemctl enable --now docker

sudo mkdir -p /opt/searxng/searxng
cd /opt/searxng

Ստեղծեք .env ֆայլը՝ դոմենով և պատահական գաղտնիքով․

printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
  "$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env

2. docker-compose.yml-ի ստեղծում

name: searxng

services:
  searxng:
    image: docker.io/searxng/searxng:latest
    restart: unless-stopped
    environment:
      SEARXNG_BASE_URL: https://${SEARXNG_HOSTNAME}/
      SEARXNG_SECRET: ${SEARXNG_SECRET}
      SEARXNG_VALKEY_URL: valkey://valkey:6379/0
    volumes:
      - ./searxng:/etc/searxng:rw
      - searxng-cache:/var/cache/searxng
    depends_on: [valkey]

  valkey:
    image: docker.io/valkey/valkey:9-alpine
    restart: unless-stopped
    command: valkey-server --save 30 1 --loglevel warning
    volumes:
      - valkey-data:/data

  caddy:
    image: docker.io/caddy:2-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    environment:
      SEARXNG_HOSTNAME: ${SEARXNG_HOSTNAME}
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config
    depends_on: [searxng]

volumes:
  searxng-cache:
  valkey-data:
  caddy-data:
  caddy-config:

3. SearXNG-ի կազմաձևում

Ստեղծեք searxng/settings.yml ֆայլը․

use_default_settings: true

general:
  instance_name: "Private Search"

search:
  safe_search: 1
  autocomplete: ""
  formats: [html]

server:
  limiter: true
  image_proxy: true

valkey:
  url: valkey://valkey:6379/0

Ստեղծեք searxng/limiter.toml ֆայլը․

[botdetection]
trusted_proxies = [
  "127.0.0.0/8",
  "::1",
  "172.16.0.0/12",
]

Limiter-ը նվազեցնում է այն ռիսկը, որ բոտերը կծանրաբեռնեն ինստանցիան, և արտաքին որոնողական համակարգերը դրա IP հասցեն ավելի շուտ կսահմանափակեն։

4. Գաղտնաբառի և HTTPS-ի ավելացում

Ուժեղ գաղտնաբառի համար ստեղծեք hash․

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'

Ստացված hash-ը տեղադրեք Caddyfile-ում․

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser INSERT_HASH_HERE
    }

    reverse_proxy searxng:8080 {
        header_up X-Real-IP {remote_host}
    }
}

Caddy-ն պահում է hash-ը, ոչ թե գաղտնաբառը բաց տեքստով։ Basic Auth-ի փոխարեն ծառայությունը կարելի է սահմանափակել նաև VPN-ով։

5. Կոնտեյներների գործարկում

sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps

Բացեք https://search.example.com հասցեն։ Caddy-ն ավտոմատ կստանա TLS վկայական, որից հետո բրաուզերը կպահանջի searchuser օգտանունն ու գաղտնաբառը։ SearXNG-ի լոգերը հասանելի են այս հրամանով․

sudo docker compose logs -f searxng

Ի՞նչ կարգավորել գործարկումից հետո

Թողեք միայն օգտակար աղբյուրները, ընտրեք լեզուն և SafeSearch-ի կարգավորումը, ապա OpenSearch-ի միջոցով SearXNG-ը ավելացրեք բրաուզերում։ Թարմացնելու համար գործարկեք․

sudo docker compose pull
sudo docker compose up -d

Պահուստավորեք .env-ը, Caddyfile-ը և searxng գրացուցակը։ JSON API-ն միացրեք միայն անհրաժեշտության դեպքում և մի թողեք այն առանց գաղտնաբառի ու հաճախականության սահմանափակման։

Տարածված սխալներ

ՍխալՀետևանքԼուծում
Ինստանցիան հանրային դարձնելըԲոտերը ստեղծում են ծանրաբեռնվածություն, և IP-ն ավելի հաճախ է սահմանափակվումՕգտագործեք գաղտնաբառ, VPN կամ միասնական մուտք
Չափից շատ աղբյուրներ միացնելըԴանդաղ արդյունքներ և ժամանակի սպառումԹողեք մի քանի կայուն շարժիչ
SearXNG-ը սեփական ինդեքս համարելըԱրտաքին համակարգերի խափանման դեպքում որոշ արդյունքներ անհետանում ենՀաշվի առեք դրա կախվածությունը աղբյուրներից
Լիակատար անանունություն ակնկալելըՆպատակային կայքը դեռ կարող է հետևել բրաուզերինՕգտագործեք բրաուզերի պաշտպանություն, VPN կամ Tor
Առանց HTTPS գործարկելըՀարցումները և գաղտնաբառը փոխանցվում են անապահովՕգտագործեք TLS-ով reverse proxy

Եզրակացություն

SearXNG-ը տարբեր աղբյուրներ միավորում է մեկ ինտերֆեյսում, նվազեցնում է անհատականացումը և բրաուզերի, սկրիպտների կամ տեղական AI-ի համար տրամադրում է մեկ որոնման ծառայություն։ Փորձելու համար բավական է հանրային ինստանցիան։ Կանոնավոր օգտագործման դեպքում ավելի լավ է ունենալ սեփական սերվեր՝ HTTPS-ով, նույնականացմամբ, limiter-ով և մի քանի կայուն աղբյուրով։

Կարող եք սկսել 1 GB RAM-ից։ Ավելացրեք ռեսուրսները օգտատերերի քանակի աճին զուգահեռ, API-ն միացնելիս կամ լրացուցիչ կոնտեյներներ գործարկելիս։

FAQ

SearXNG-ը լիովին անանո՞ւն է

Ոչ։ Այն որոշ տվյալներ թաքցնում է արտաքին որոնողական համակարգերից, բայց ինստանցիայի ադմինիստրատորը կարող է լոգեր պահել։ Կայք բացելուց հետո գործում են դրա սեփական հետևման մեխանիզմները։

SearXNG-ը Google-ից լա՞վն է

Այն լուծում է այլ խնդիր։ Google-ը սովորաբար ավելի արագ է և ավելի ուժեղ է անհատականացնում արդյունքները։ SearXNG-ը ձեզ ավելի շատ վերահսկողություն է տալիս, թույլ է տալիս միավորել աղբյուրները և ավելի քիչ է կախված օգտատիրոջ պրոֆիլից։

Կարո՞ղ եմ SearXNG-ն օգտագործել առանց VPS-ի

Այո։ Կարող եք օգտագործել հանրային ինստանցիա, տնային համակարգիչ, NAS կամ մինի սերվեր։ VPS-ն անհրաժեշտ է ցանկացած ցանցից 24/7 հասանելիության համար։

Որքա՞ն RAM է անհրաժեշտ

Մեկ օգտատիրոջ համար ողջամիտ է սկսել 1 GB-ից։ Ընտանիքի, թիմի, API-ի կամ լրացուցիչ կոնտեյներների դեպքում նախընտրելի է 2–4 GB։

Կարո՞ղ եմ SearXNG-ը միացնել բրաուզերին կամ AI-ին

Այո։ Բրաուզերը կարող է օգտագործել OpenSearch-ը, իսկ հավելվածները՝ HTTP API-ն։ API հասանելիությունը պետք է պաշտպանել նույնականացմամբ և limiter-ով։