SearXNG: কী এবং VPS-এ নিজের search engine কীভাবে ইনস্টল করবেন

3 মিনিট পড়া
Tropic
SearXNG: কী এবং VPS-এ নিজের search engine কীভাবে ইনস্টল করবেন

SearXNG: VPS-এ tracking-free নিজের search engine

সাধারণ search engine কোনো query-কে IP address, cookie এবং activity history-এর সঙ্গে যুক্ত করতে পারে। SearXNG পথটি বদলে দেয়: browser আপনার instance-এ সংযোগ করে, instance একাধিক external search engine-এ query পাঠায় এবং এক page-এ তাদের response একত্র করে।

External source-গুলো user-এর cookie নয়, SearXNG server-এর address দেখতে পায়। সার্ভিসটি নিজে advertising profile তৈরি করে না। তবে এটি সম্পূর্ণ anonymity নয়: public instance-এর owner প্রযুক্তিগতভাবে log রাখতে পারেন, আর কোনো result link খুললে destination website আবার browser-এর সঙ্গে যোগাযোগ করে।

SearXNG-এর ক্ষমতা দেখব এবং HTTPS ও password protection-সহ VPS-এ নিজের instance ইনস্টল করব।

SearXNG কী এবং কীভাবে কাজ করে

SearXNG একটি free, open-source metasearch engine। এটি website-এর নিজস্ব index রাখে না: configured search engine ও specialized source থেকে result সংগ্রহ করে, normalize করে এবং একটি interface-এ দেখায়।

Browser → your SearXNG → search engines
                         ↓
                  combined results

প্রতিটি query-র জন্য SearXNG:

  1. search category নির্ধারণ করে: web, image, news, video বা অন্য category;
  2. server-এর হয়ে বেছে নেওয়া source-এ যোগাযোগ করে;
  3. source-এ user-এর cookie পাঠায় না এবং outgoing request-এর জন্য randomized browser profile ব্যবহার করে;
  4. response একত্র করে একটি result page তৈরি করে।

Speed external system-এর ওপর নির্ভর করে: তারা ধীরে response দিতে, CAPTCHA দেখাতে বা IP address block করতে পারে। SearXNG managed intermediary layer, autonomous index নয়।

একটি search engine-এর চেয়ে SearXNG কেন বেশি আকর্ষণীয়

এক result page-এ বিভিন্ন source

General-purpose search engine-এর সঙ্গে encyclopedia, map, scientific publication, repository, news service বা image catalog-এর মতো specialized source একত্র করা যায়। প্রচলিত result page SEO page-এ ভরে গেলে বা niche material খুঁজে পেতে সমস্যা হলে এটি সাহায্য করে।

এই article প্রস্তুতের সময় documentation-এ 272টি integration তালিকাভুক্ত ছিল, যার 83টি default-ভাবে enabled। এর মানে এই নয় যে সবগুলো সমান stable।

Set configuration-এর ওপর নির্ভর করে। একসঙ্গে সব চালু করার বদলে কয়েকটি stable source সাধারণত দ্রুত কাজ করে।

Quick command

Shortcut দিয়ে সাময়িকভাবে engine, category বা language বেছে নেওয়া যায়:

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

!! command user-কে সরাসরি external search engine-এ পাঠায়। এই mode-এ SearXNG-এর protection আর প্রযোজ্য নয়।

SearXNG OpenSearch সমর্থন করে, তাই এটিকে browser-এর default search engine করা যায়। Administrator প্রয়োজনীয় format enable করলে JSON, CSV বা RSS response-সহ HTTP API-ও পাওয়া যায়।

একটি instance internal dashboard, bot, research script বা local AI assistant-এর search backend হিসেবে কাজ করতে পারে। Authentication ও rate limit configure করার পরেই API expose করা উচিত।

SearXNG কতটা private

এটি যা করেএটি যা করে না
External search engine-এ browser cookie পাঠায় নাসম্পূর্ণ anonymity দেয় না
Server-এর IP-র আড়ালে user-এর IP লুকায়Result website খোলার পর user-কে সুরক্ষিত রাখে না
Third-party advertising ও কিছু tracking parameter সরায়অন্যের server-এর owner log রাখেন না—এমন নিশ্চয়তা দেয় না
Image proxy করতে পারেVPN, Tor বা browser protection-এর বিকল্প নয়

Service পরীক্ষা করতে public instance সুবিধাজনক, কিন্তু তার administrator-কে trust করতে হবে এবং shared IP rate-limit হওয়ার সম্ভাবনা বেশি।

নিজের server log, source ও access-এর ওপর control দেয়, কিন্তু browser-কে anonymous করে না।

Public instance, home server নাকি VPS

OptionAdvantagesLimitations
Public instanceকিছু install করতে হয় নাOwner-এর ওপর trust, overload, CAPTCHA
Home serverVPS ভাড়া না নিয়ে full controlDevice সারাক্ষণ চলতে হবে; external access configure করা কঠিন
নিজের VPS24/7 operation, domain, HTTPS, বিভিন্ন device থেকে accessContainer update ও security monitoring দরকার

নিজের SearXNG instance family, team, developer বা local AI tool-এর জন্য উপকারী। মাঝে মাঝে search-এর জন্য public instance সহজ।

SearXNG-এর জন্য কেমন VPS দরকার

Load user, source এবং concurrent query-এর সংখ্যার ওপর নির্ভর করে। ব্যবহারিক starting configuration:

ScenarioCPURAMStorage
একজন user1 vCPU1 GB10 GB
Family বা ছোট team2 vCPU2 GB20 GB
API ও additional service2–4 vCPU4 GB থেকে30 GB থেকে

বড় disk দরকার নেই। Network quality, stable IP address ও অতিরিক্ত RAM বেশি গুরুত্বপূর্ণ।

এই scenario-র জন্য tropic.host-এর Linux VPS উপযুক্ত: ছোট configuration দিয়ে শুরু করে user বা API access বাড়লে resource বৃদ্ধি করা যায়। Plan বাছাইয়ের সময় storage capacity-তে অতিরিক্ত খরচ করার বদলে RAM ও network quality-তে বিনিয়োগ করা বেশি কার্যকর।

Docker Compose দিয়ে VPS-এ SearXNG ইনস্টল

এই উদাহরণে Ubuntu 24.04 LTS, search.example.com, Valkey ও Caddy ব্যবহার করা হয়েছে। DNS A record server-এ point করুন এবং port 80 ও 443 খুলুন।

1. Docker install করে directory তৈরি করুন

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

Domain ও random secret-সহ .env file তৈরি করুন:

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 configure করুন

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 bot-এর মাধ্যমে instance overload হওয়ার এবং external search engine আগেভাগে IP address সীমিত করার ঝুঁকি কমায়।

4. Password ও HTTPS যোগ করুন

শক্তিশালী password-এর 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 plaintext password-এর বদলে hash সংরক্ষণ করে। Basic Auth-এর বদলে service-কে VPN-এ সীমাবদ্ধ করাও যায়।

5. Container চালু করুন

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

https://search.example.com খুলুন। Caddy স্বয়ংক্রিয়ভাবে TLS certificate নেবে, এরপর browser searchuser username ও password চাইবে। SearXNG log দেখতে:

sudo docker compose logs -f searxng

Startup-এর পরে কী configure করবেন

শুধু দরকারি source রাখুন, language ও SafeSearch setting বেছে নিন, তারপর OpenSearch-এর মাধ্যমে browser-এ SearXNG যোগ করুন। Update করতে:

sudo docker compose pull
sudo docker compose up -d

.env, Caddyfilesearxng directory backup করুন। প্রয়োজন থাকলেই JSON API enable করুন এবং password ও rate limiting ছাড়া এটি খোলা রাখবেন না।

সাধারণ ভুল

ভুলফলাফলসমাধান
Instance public করাBot load তৈরি করে, IP বেশি বার restricted হয়Password, VPN বা single sign-on ব্যবহার করুন
অতিরিক্ত source enable করাধীর result ও timeoutকয়েকটি stable engine রাখুন
SearXNG-কে নিজের index ভাবাExternal system ব্যর্থ হলে কিছু result অদৃশ্য হয়Source-এর ওপর নির্ভরতা হিসাব করুন
Complete anonymity আশা করাDestination website browser track করতে পারেBrowser protection, VPN বা Tor ব্যবহার করুন
HTTPS ছাড়া চালানোQuery ও password অনিরাপদে পাঠানো হয়TLS-সহ reverse proxy ব্যবহার করুন

উপসংহার

SearXNG বিভিন্ন source এক interface-এ একত্র করে, personalization কমায় এবং browser, script বা local AI-এর জন্য একটি search service দেয়। চেষ্টা করার জন্য public instance যথেষ্ট। নিয়মিত ব্যবহারের ক্ষেত্রে HTTPS, authentication, limiter ও কয়েকটি stable source-সহ নিজের server ভালো পছন্দ।

1 GB RAM দিয়ে শুরু করা যায়। User সংখ্যা বাড়লে, API enable করলে বা additional container চালালে resource বাড়ান।

FAQ

SearXNG কি সম্পূর্ণ anonymous?

না। এটি external search engine থেকে কিছু data লুকায়, কিন্তু instance administrator log রাখতে পারেন। Website খোলার পর সেই website-এর নিজস্ব tracking mechanism কার্যকর হয়।

SearXNG কি Google-এর চেয়ে ভালো?

এটি আলাদা সমস্যা সমাধান করে। Google সাধারণত দ্রুত এবং result-কে বেশি ব্যক্তিগতকরণ করে। SearXNG বেশি control দেয়, source একত্র করতে দেয় এবং user profile-এর ওপর কম নির্ভর করে।

VPS ছাড়া কি SearXNG ব্যবহার করা যায়?

হ্যাঁ। Public instance, home computer, NAS বা mini server ব্যবহার করতে পারেন। যেকোনো network থেকে 24/7 access-এর জন্য VPS দরকার।

কত RAM প্রয়োজন?

একজন user-এর জন্য 1 GB দিয়ে শুরু করা যুক্তিসঙ্গত। Family, team, API বা additional container-এর জন্য 2–4 GB ভালো।

SearXNG কি browser বা AI-তে যুক্ত করা যায়?

হ্যাঁ। Browser OpenSearch ব্যবহার করতে পারে, আর application HTTP API ব্যবহার করতে পারে। API access authentication ও limiter দিয়ে সুরক্ষিত করা উচিত।