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:
- search category নির্ধারণ করে: web, image, news, video বা অন্য category;
- server-এর হয়ে বেছে নেওয়া source-এ যোগাযোগ করে;
- source-এ user-এর cookie পাঠায় না এবং outgoing request-এর জন্য randomized browser profile ব্যবহার করে;
- 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 আর প্রযোজ্য নয়।
Browser ও নিজের tool-এর জন্য search
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
| Option | Advantages | Limitations |
|---|---|---|
| Public instance | কিছু install করতে হয় না | Owner-এর ওপর trust, overload, CAPTCHA |
| Home server | VPS ভাড়া না নিয়ে full control | Device সারাক্ষণ চলতে হবে; external access configure করা কঠিন |
| নিজের VPS | 24/7 operation, domain, HTTPS, বিভিন্ন device থেকে access | Container update ও security monitoring দরকার |
নিজের SearXNG instance family, team, developer বা local AI tool-এর জন্য উপকারী। মাঝে মাঝে search-এর জন্য public instance সহজ।
SearXNG-এর জন্য কেমন VPS দরকার
Load user, source এবং concurrent query-এর সংখ্যার ওপর নির্ভর করে। ব্যবহারিক starting configuration:
| Scenario | CPU | RAM | Storage |
|---|---|---|---|
| একজন user | 1 vCPU | 1 GB | 10 GB |
| Family বা ছোট team | 2 vCPU | 2 GB | 20 GB |
| API ও additional service | 2–4 vCPU | 4 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/searxngDomain ও 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 .env2. 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/0searxng/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 pshttps://search.example.com খুলুন। Caddy স্বয়ংক্রিয়ভাবে TLS certificate নেবে, এরপর browser searchuser username ও password চাইবে। SearXNG log দেখতে:
sudo docker compose logs -f searxngStartup-এর পরে কী configure করবেন
শুধু দরকারি source রাখুন, language ও SafeSearch setting বেছে নিন, তারপর OpenSearch-এর মাধ্যমে browser-এ SearXNG যোগ করুন। Update করতে:
sudo docker compose pull
sudo docker compose up -d.env, Caddyfile ও searxng 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 দিয়ে সুরক্ষিত করা উচিত।
