Tropic Host

SearXNG: რა არის და როგორ დააყენოთ საკუთარი საძიებო სისტემა VPS-ზე

2 წაკითხვის წთ
Tropic
SearXNG: რა არის და როგორ დააყენოთ საკუთარი საძიებო სისტემა VPS-ზე

Language: ka

SearXNG: საკუთარი, თვალთვალისგან თავისუფალი საძიებო სისტემა VPS-ზე

ჩვეულებრივ საძიებო სისტემას შეუძლია მოთხოვნა დაუკავშიროს IP-მისამართს, ქუქი-ფაილებსა და აქტივობის ისტორიას. SearXNG ამ მარშრუტს ცვლის: ბრაუზერი უკავშირდება თქვენს ინსტანციას, რომელიც რამდენიმე გარე საძიებო სისტემას მიმართავს და მათ პასუხებს ერთ გვერდზე აერთიანებს.

გარე წყაროები მომხმარებლის ქუქი-ფაილების ნაცვლად SearXNG-ის სერვერის მისამართს ხედავენ. თავად სერვისი სარეკლამო პროფილს არ ქმნის. თუმცა ეს სრული ანონიმურობა არ არის: საჯარო ინსტანციის მფლობელს ტექნიკურად შეუძლია ლოგების შენახვა, ხოლო ბმულის გახსნის შემდეგ სამიზნე ვებსაიტი ბრაუზერთან კვლავ პირდაპირ ურთიერთქმედებს.

განვიხილავთ SearXNG-ის შესაძლებლობებს და საკუთარ ინსტანციას VPS-ზე HTTPS-ითა და პაროლით დაცვით დავაყენებთ.

რა არის SearXNG და როგორ მუშაობს

SearXNG უფასო, ღია კოდის მქონე მეტაძიების სისტემაა. ის ვებსაიტების საკუთარ ინდექსს არ ინახავს: სერვისი შედეგებს კონფიგურირებული საძიებო სისტემებიდან და სპეციალიზებული წყაროებიდან იღებს, ნორმალიზებს და ერთ ინტერფეისში აჩვენებს.

Browser → your SearXNG → search engines
                         ↓
                  combined results

ყოველი მოთხოვნისას SearXNG:

  1. განსაზღვრავს ძიების კატეგორიას: ვებს, სურათებს, სიახლეებს, ვიდეოებს ან სხვა კატეგორიას;
  2. შერჩეულ წყაროებს სერვერის სახელით უკავშირდება;
  3. მათ მომხმარებლის ქუქი-ფაილებს არ უგზავნის და გამავალი მოთხოვნებისთვის შემთხვევით ბრაუზერის პროფილს იყენებს;
  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 პასუხებით, თუ ადმინისტრატორმა საჭირო ფორმატები ჩართო.

ერთი ინსტანცია შეიძლება გამოიყენოთ შიდა საინფორმაციო დაფის, ბოტის, კვლევითი სკრიპტის ან ლოკალური AI-ასისტენტის საძიებო backend-ად. API მხოლოდ ავთენტიფიკაციისა და სიჩქარის ლიმიტების კონფიგურაციის შემდეგ უნდა გახსნათ.

რამდენად პირადულია SearXNG

რას აკეთებსრას არ აკეთებს
ბრაუზერის ქუქი-ფაილებს გარე საძიებო სისტემებს არ უგზავნისსრულ ანონიმურობას არ უზრუნველყოფს
მომხმარებლის IP-მისამართს სერვერის IP-მისამართის უკან მალავსშედეგების საიტის გახსნის შემდეგ მომხმარებელს აღარ იცავს
მესამე მხარის რეკლამებსა და თვალთვალის ზოგიერთ პარამეტრს შლისარ იძლევა გარანტიას, რომ სხვისი სერვერის მფლობელი ლოგებს არ ინახავს
სურათების პროქსირება შეუძლიაVPN-ს, Tor-ს ან ბრაუზერის დაცვას არ ცვლის

საჯარო ინსტანცია სერვისის საცდელად მოსახერხებელია, თუმცა მის ადმინისტრატორს უნდა ენდოთ და გაზიარებული IP-მისამართი უფრო ხშირად შეიძლება მოხვდეს სიჩქარის შეზღუდვის ქვეშ.

საკუთარი სერვერი გაძლევთ კონტროლს ლოგებზე, წყაროებსა და წვდომაზე, მაგრამ ბრაუზერს ანონიმურს არ ხდის.

საჯარო ინსტანცია, სახლის სერვერი თუ VPS

ვარიანტიუპირატესობებიშეზღუდვები
საჯარო ინსტანციაარაფრის დაყენება არ არის საჭირომფლობელის ნდობა, გადატვირთვა, CAPTCHA
სახლის სერვერისრული კონტროლი VPS-ის ქირაობის გარეშემოწყობილობა მუდმივად უნდა მუშაობდეს; გარე წვდომის კონფიგურაცია რთულია
საკუთარი VPS24/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",
]

ლიმიტერი ამცირებს იმის რისკს, რომ ბოტები ინსტანციას გადატვირთავენ და გარე საძიებო სისტემები მის 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-ით, ავთენტიფიკაციით, ლიმიტერითა და რამდენიმე სტაბილური წყაროთი.

შეგიძლიათ 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-წვდომა ავთენტიფიკაციითა და ლიმიტერით უნდა იყოს დაცული.