SearXNG-ஐ சொந்தமாக VPS-ல் நிறுவுவது எப்படி?
Docker Compose மூலம் SearXNG-ஐ உங்கள் VPS-ல் நிறுவுவதற்கான முழுமையான வழிகாட்டி. settings.yml கட்டமைப்பு, Nginx TLS பாதுகாப்பு மற்றும் JSON API பயன்பாடு ஆகியவற்றை இதில் காணலாம்.
நீங்கள் உருவாக்குவது என்ன
SearXNG-ஐ self-host செய்வதன் மூலம், உங்கள் சொந்த server-ல் இயங்கும் ஒரு தனிப்பட்ட search engine-ஐப் பெறலாம். SearXNG என்பது ஒரு metasearch engine ஆகும்: இது உங்கள் தேடலை ஏற்றுக்கொண்டு, Google, Bing, DuckDuckGo மற்றும் Wikipedia போன்ற பிற தேடுபொறிகளிடம் கேட்டு, வரும் முடிவுகளை ஒருங்கிணைத்து ஒரே பக்கமாகக் காட்டுகிறது. இதில் பயனர் விவரங்கள் சேமிக்கப்படுவதில்லை மற்றும் tracking cookie-கள் அமைக்கப்படுவதில்லை, ஏனெனில் உங்கள் தேடலைச் சேமிக்கும் ஒரே இயந்திரம் உங்கள் server மட்டுமே. Searx என்று அழைக்கப்படும் பழைய வழிகாட்டிகளை நீங்கள் கண்டிருந்தால், அதுதான் இந்தத் திட்டத்தின் அடிப்படை; அந்தத் திட்டத்தில் 2023-க்குப் பிறகு எந்த மாற்றமும் (commit) செய்யப்படவில்லை, எனவே ஒன்றைப் பின்பற்றுவதற்கு முன் இரண்டின் நிலையையும் சரிபார்க்கவும்.
இதற்கான stack சிறியது. இரண்டு containers, ஒரு settings file, ஒரு reverse proxy. இது ஒரு சிறிய VPS-ல் எளிதாக இயங்கும், இது எல்லா self-hosted service-களுக்கும் பொருந்தாது: PhotoPrism மற்றும் Immich ஒப்பீட்டில் பார்த்தது போல, சில photo libraries-ன் RAM பயன்பாடு web app-ஐ விட indexer-ஐப் பொறுத்தே அமையும். உங்கள் instance தனிப்பட்டதா (private) அல்லது பொதுவானதா (public) என்பதே முக்கியமான முடிவு. தனிப்பட்ட instance என்றால் நீங்கள் மற்றும் உங்கள் scripts மட்டுமே அதைப் பயன்படுத்த முடியும்; பொதுவான instance என்றால் இணையத்தில் உள்ள எவரும் அதைப் பயன்படுத்தலாம். இந்தத் தேர்வு security அமைப்புகளை மாற்றும், எனவே எதையும் தட்டச்சு செய்வதற்கு முன் இதை முடிவு செய்யுங்கள். இயல்புநிலை (default) பதில் private என்பதாகும்.
இதை இயக்குவதற்கு இரண்டாவது காரணமும் உள்ளது. SearXNG instance JSON வடிவில் செயல்படுகிறது, எனவே நீங்கள் எழுதும் எந்த script அல்லது AI agent-க்கும் சொந்தமான search API கிடைக்கும். இதற்கு key தேவையில்லை, query-க்கு கட்டணம் இல்லை, மற்றும் quota குறித்த மின்னஞ்சல்களும் வராது.
Docker Compose மூலம் SearXNG-ஐ நிறுவுதல்
இந்தத் திட்டம் ஒரு container image மற்றும் ஒரு Compose file-ஐ வெளியிடுகிறது. Docker Engine மற்றும் Compose plugin ஏற்கனவே நிறுவப்பட்ட ஒரு புதிய Ubuntu 24.04 server-ல் இவை இரண்டையும் பதிவிறக்கவும். Docker உங்களுக்குப் புதியது என்றால், முதலில் VPS-ல் Docker Compose அடிப்படைகள் என்பதைப் படித்துவிட்டு மீண்டும் வரவும்.
sudo install -d -o "$USER" -g "$USER" -m 750 /opt/searxng
cd /opt/searxng
mkdir -p core-config
curl -fsSL \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example
cp -i .env.example .envஇந்த Compose file இரண்டு services-ஐ வரையறுக்கிறது. core என்பது SearXNG ஆகும், valkey என்பது rate limiting மற்றும் தற்காலிகத் தரவுகளைச் சேமிக்கப் பயன்படும் in-memory data store ஆகும். இது ./core-config/-ஐ container-க்குள் /etc/searxng/ என்ற பாதையில் mount செய்கிறது, எனவே நீங்கள் செய்யும் அனைத்து மாற்றங்களும் host-ல் உள்ள அந்த ஒரே directory-ல் சேமிக்கப்படும்.
இப்போது .env-ஐத் திருத்தவும். வழங்கப்பட்ட உதாரணத்தில் உள்ள அனைத்து வரிகளும் comment செய்யப்பட்டுள்ளன, அதனால்தான் container ஒவ்வொரு முகவரியிலும் port 8080-ல் தொடங்குகிறது. அந்த மூன்று வரிகளை uncomment செய்து அமைக்கவும்.
SEARXNG_VERSION=latest
SEARXNG_HOST=127.0.0.1
SEARXNG_PORT=8080SEARXNG_HOST=127.0.0.1 என்பது மிக முக்கியமானது. இது container-ன் port-ஐ [::]:8080:8080-க்கு பதிலாக 127.0.0.1:8080:8080 என மாற்றுகிறது, இதனால் container loopback முகவரியில் மட்டுமே பதிலளிக்கும் மற்றும் இணையத்திலிருந்து நேரடியாக அணுக முடியாது. இதைத் தவிர்த்தால், container தொடங்கிய உடனேயே அது வெளிப்படையாகத் தெரிந்துவிடும், ஏனெனில் Docker-ன் published port உங்கள் firewall விதிகளைத் தாண்டிச் செயல்படும். இந்த ஆபத்தைப் பற்றி முழுமையாகப் படிப்பது அவசியம்: published Docker ports ufw-ஐத் தவிர்க்கின்றன.
நீங்கள் கற்றுக்கொள்ளும் காலத்தில் SEARXNG_VERSION=latest சரியாக இருக்கும். முக்கியமான server-களில், tag-ஐ pin செய்யவும். ஜூலை 2026 நிலவரப்படி, release tags தேதியை அடிப்படையாகக் கொண்டு 2026.3.25-541c6c3cb போன்று இருக்கும். எனவே, registry-ல் மாற்றம் ஏற்படும்போது தானாக மாறாமல், நீங்கள் விரும்பும்போது மட்டும் deployment-ஐ upgrade செய்யலாம். நீண்ட காலம் இயங்கும் எந்தவொரு சேவைக்கும் இந்த ஒழுக்கம் அவசியம், அதனால்தான் self-hosted RustDesk relay அதன் image tags-ஐ pin செய்கிறது: தொலைநிலை அணுகல் சேவை (remote access service) எதிர்பாராத நேரத்தில் தானாக upgrade ஆவது சிக்கலை ஏற்படுத்தும்.
settings.yml: கவனிக்க வேண்டிய பகுதிகள்
முதல் முறை தொடங்குவதற்கு முன்பாக core-config/settings.yml-ஐ உருவாக்கவும். use_default_settings: true-ஐப் பயன்படுத்தினால், SearXNG முதலில் அதன் இயல்புநிலை அமைப்புகளை ஏற்றிவிட்டு, பின்னர் நீங்கள் குறிப்பிட்ட மாற்றங்களை மட்டும் செயல்படுத்தும். இதனால் உங்கள் கோப்பு சுருக்கமாக இருக்கும், மேலும் புதிய வசதிகள் சேர்க்கப்படும் upgrade-களின் போதும் இது பாதிக்கப்படாது.
முதலில் secret-ஐ உருவாக்கவும், ஏனெனில் அந்த மதிப்பை நேரடியாகக் கோப்பில் உள்ளிட வேண்டும்.
openssl rand -hex 32use_default_settings: true
general:
instance_name: "search.example.com"
server:
base_url: "https://search.example.com/"
secret_key: "paste-the-openssl-output-here"
limiter: false
public_instance: false
image_proxy: true
valkey:
url: valkey://valkey:6379/0
search:
safe_search: 0
autocomplete: "duckduckgo"
formats:
- html
- jsonsecret_key என்பது session மற்றும் token தரவுகளைப் பாதுகாப்பாக கையாளப் பயன்படுகிறது. இதன் இயல்புநிலை மதிப்பு ultrasecretkey என்று இருக்கும்; இதை அப்படியே விட்டால், இந்த இயல்புநிலை தெரிந்த எவரும் token-களைப் போலியாக உருவாக்க முடியும். இதை ஒருமுறை மாற்றிய பிறகு அப்படியே விட்டுவிடவும்: பிற்காலத்தில் இதை மாற்றினால், சேமிக்கப்பட்ட அனைத்து பயனர் விருப்பங்களும் (preferences) அழிந்துவிடும்.
base_url என்பது பொதுவான HTTPS முகவரியாக இருக்க வேண்டும், இறுதியில் slash (/) குறியீடு அவசியம். SearXNG உருவாக்கும் இணைப்புகளில் இந்த முகவரிதான் இடம்பெறும். இதை localhost என்று விட்டால், தொலைதூர browser-ல் "next page" இணைப்பைக் கிளிக் செய்யும்போது அது பயனரின் சொந்த கணினியைத் தேடும், இதனால் இணைப்பு தோல்வியடையும்.
formats என்பது web endpoint எந்தெந்த வெளியீட்டு வகைகளை உருவாக்க வேண்டும் என்பதைத் தீர்மானிக்கிறது. json இயல்புநிலை பட்டியலில் இல்லை, எனவே இதைச் சேர்க்கும் வரை JSON கோரிக்கைகளுக்கு 403 பிழை வரும். image_proxy: true என்பது தேடல் முடிவுகளின் thumbnails-ஐ உங்கள் server வழியாகக் கொண்டு செல்லும்; இதனால் படங்களை வழங்கும் தளங்கள் உங்கள் பார்வையாளர்களின் IP முகவரியைக் காண முடியாது.
valkey.url-ல் valkey என்ற hostname பயன்படுத்தப்படுகிறது, ஏனெனில் Compose கோப்பில் இதுவே service பெயர். Compose இந்த இரண்டு container-களையும் ஒரே network-ல் இணைப்பதால், service பெயர்கள் மூலம் ஒன்றையொன்று கண்டறிய முடியும். இதை localhost என்று மாற்றினால் limiter தோல்வியடையும், ஏனெனில் core container-க்குள் localhost என்பது அந்த container-ஐ மட்டுமே குறிக்கும்.
Secret ஒரு plain கோப்பாக இருப்பதால், கோப்பை விட அதைச் சுற்றியுள்ள directory-ஐப் பாதுகாப்பது சிறந்தது. chmod 750 /opt/searxng மற்ற host பயனர்கள் உள்ளே நுழைவதைத் தடுக்கும். core-config/settings.yml-ன் அனுமதியை 600 அளவுக்குக் குறைக்க வேண்டாம்: container அதன் சொந்த unprivileged பயனர் மூலம் இயங்குகிறது, எனவே கோப்பை வாசிக்க முடியாவிட்டால் SearXNG தொடங்காது.
Stack-ஐத் தொடங்கிச் சரிபார்க்கவும்.
cd /opt/searxng
docker compose up -d
docker compose ps
curl -I http://127.0.0.1:8080/docker compose ps கட்டளை இரண்டு container-களும் running நிலையில் இருப்பதை உறுதி செய்ய வேண்டும். curl கட்டளை HTTP/1.1 200 OK என்று பதிலளிக்க வேண்டும். எந்தப் பதிலும் வரவில்லை என்றால், docker compose logs core-ஐப் படிக்கவும்; settings.yml-ல் ஏதேனும் YAML பிழை இருந்தால், அது எந்த வரியில் உள்ளது என்பதை இங்கே பிழைச் செய்தியாகக் காட்டும்.
Nginx மற்றும் TLS மூலம் பாதுகாத்தல்
இந்த container loopback-ல் மட்டுமே இயங்குகிறது. எனவே, Nginx மூலமாகவே இதை அணுக முடியும்; மேலும், இதுவே transport layer security (TLS)-ஐயும் வழங்குகிறது. /etc/nginx/sites-available/searxng-ஐ எழுதவும்.
server {
listen 80;
server_name search.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo ln -s /etc/nginx/sites-available/searxng /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d search.example.comnginx -t கட்டளையை இயக்கும்போது, நீங்கள் reload செய்வதற்கு முன்பாக syntax is ok மற்றும் test is successful ஆகியவற்றை அச்சிடும். Certbot அதே கோப்பை மாற்றி எழுதி, 443 port-ல் certificate-உடன் இயங்கச் செய்யும் மற்றும் port 80-லிருந்து redirect-ஐயும் சேர்க்கும். search.example.com-க்கான DNS record ஏற்கனவே இந்த server-ஐச் சுட்டிக்காட்ட வேண்டும். ஏனெனில், certificate authority ஒரு கோப்பை HTTP மூலம் பெற்று, அதன் உரிமையாளரை உறுதிப்படுத்தும். புதுப்பித்தல் (renewal) உள்ளிட்ட முழுமையான வழிமுறைகள் Ubuntu 24.04-க்கான Certbot மற்றும் Nginx வழிகாட்டி-ல் உள்ளன.
இங்குள்ள இரண்டு forwarding headers வெறும் அலங்காரத்திற்காக அல்ல. X-Forwarded-For மற்றும் X-Real-IP இல்லாமல், SearXNG-க்கு வரும் ஒவ்வொரு கோரிக்கையும் proxy முகவரியையே கொண்டிருக்கும். இதனால், அனைத்து traffic-உம் ஒரே client-லிருந்து வருவதாக rate limiter கருதும்; பார்வையாளர்களைத் தனித்தனியாகப் பிரித்தறிய முடியாது.
ஸ்கிரிப்டுகள் மற்றும் ஏஜெண்டுகளுக்கு ஏன் JSON search API தேவைப்படுகிறது
json-ல் உள்ள formats-ஐப் பயன்படுத்தும்போது, பக்கத்தை உருவாக்கும் அதே endpoint கட்டமைக்கப்பட்ட தரவை (structured data) வழங்குகிறது.
curl -s 'http://127.0.0.1:8080/search?q=wireguard+mtu&format=json' \
| jq -r '.results[0:5][] | .url'நீங்கள் results array கொண்ட ஒரு object-ஐப் பெறுவீர்கள். இதில் ஒவ்வொரு பதிவும் url, title, content மற்றும் அதை வழங்கிய engine ஆகியவற்றைக் கொண்டிருக்கும். இதனுடன் answers, infoboxes மற்றும் suggestions ஆகியவையும் இருக்கும். ஒரு summariser, link checker அல்லது research loop-க்குத் தேவையான தரவுகள் இதில் உள்ளன. இந்த முடிவுகளை ஒரு language model-க்கு அனுப்புவது எளிதான காரியம் அல்ல; ஏனெனில் தேடல் முடிவுகள் நம்பகத்தன்மையற்ற உரையாக இருக்கலாம், அவை சொந்தமாகவே கட்டளைகளைக் கொண்டிருக்க வாய்ப்புள்ளது. இது குறித்து உங்கள் SearXNG instance-ஐ AI agent-க்குக் காட்டுவது என்ற பகுதியில் விரிவாக விளக்கப்பட்டுள்ளது.
ஏஜெண்ட் வடிவில் உள்ள எதற்கும் இது முக்கியமானது. ஒரு language model-க்கு training cutoff இருப்பதால், தற்போதைய நிகழ்வுகள் குறித்த கேள்விகளுக்குப் பதிலளிக்க அதற்கு நேரடித் தேடல் தேவைப்படுகிறது. வணிக ரீதியான search API-கள் ஒவ்வொரு query-க்கும் கட்டணம் வசூலிப்பதோடு, கடுமையான rate limit-களையும் விதிக்கின்றன. ஒரு local instance-ஐ நீங்கள் ஏற்கனவே பணம் செலுத்தும் server-ல் ஒரு container-ஆக இயக்கலாம், மேலும் தேடல் தரவுகள் அந்த server-ஐ விட்டு வெளியேறாது. நீங்கள் ஒரு model-ல் கருவிகளை இணைக்கிறீர்கள் என்றால், அதே காரணத்திற்காக VPS-ல் MCP servers-ஐ இயக்குவது சிறந்தது; பொதுவாக மக்கள் முதலில் சேர்க்கும் கருவி ஒரு search tool ஆகும்.
API பயன்பாட்டிற்கு இரண்டு விதிகள் உள்ளன. உங்கள் instance-ஐத் தனிப்பட்டதாக (private) வைத்திருங்கள்; எனவே API-ஐ loopback address அல்லது private network-ல் மட்டும் bind செய்யுங்கள், உங்கள் hosts-க்கு மட்டும் அணுகல் வழங்குங்கள். பின்னர், கவனமாக query செய்யுங்கள். SearXNG உங்கள் கோரிக்கைகளை உண்மையான search engine-களுக்கு அனுப்புகிறது. எனவே, ஒரு வினாடிக்கு நூறு query-களை இயக்கும் ஸ்கிரிப்ட், உங்கள் server-ஐ block செய்யுமாறு Google-ஐக் கேட்டுக்கொள்வதற்குச் சமம்.
Limiter மற்றும் பொதுப் பயன்பாட்டு instance-க்கான மாற்றங்கள்
Limiter என்பது SearXNG-ன் bot பாதுகாப்பு கருவியாகும். இது request headers, IP addresses மற்றும் request rates ஆகியவற்றைக் கண்காணித்து, தானியங்கி முறையில் வரும் traffic-ஐத் தடுக்கிறது. இந்தத் தகவல்களைச் சேமிக்க இதற்கு Valkey தேவைப்படுகிறது, இதனால்தான் Compose கோப்பில் அது சேர்க்கப்பட்டுள்ளது.
தனிப்பட்ட (private) instance-ல் limiter: false-ஐ அப்படியே வைத்திருக்கவும். உங்கள் சொந்த scripts-ம் தானியங்கி traffic தான் என்பதால், நீங்கள் எந்த நோக்கத்திற்காக instance-ஐ உருவாக்கினீர்களோ, அதே JSON அழைப்புகளை இந்த limiter தடுத்துவிடும். அதற்குப் பதிலாக, access control-ஐ reverse proxy மூலம் கையாள வேண்டும்: nginx location-ல் ஒரு allow மற்றும் deny ஜோடி, HTTP basic authentication, அல்லது உங்கள் பிற server-களை மட்டும் அனுமதிக்கும் firewall ஆகியவற்றைப் பயன்படுத்தலாம். நீங்கள் பல்வேறு network-களுக்கு இடையே பயணிக்கும் laptop-லிருந்து ஒரு private instance-ஐ அணுக வேண்டியிருந்தால், v3 onion address-ஐப் பயன்படுத்துவது நான்காவது வழியாகும். ஏனெனில், இது எதையும் இணையத்தில் வெளிப்படுத்தாமல், அதே loopback port-க்கு tor மூலம் இணைப்பை ஏற்படுத்துகிறது.
நீங்கள் மற்றவர்களுக்காக instance-ஐப் பொதுவெளியில் வெளியிடுகிறீர்கள் என்றால், இரண்டு switches-ஐயும் ஆன் செய்யவும்.
server:
limiter: true
public_instance: trueதுல்லியமான கட்டுப்பாடுகள் core-config/limiter.toml-ல் உள்ளன, இதை container /etc/searxng/limiter.toml-ல் படிக்கிறது. நீங்கள் மாற்ற விரும்பும் keys-ஐ மட்டும் இதில் எழுதினால் போதும். ஒரு proxy-க்கு பின்னால் இருக்கும்போது, proxy-ஐக் குறிப்பிட வேண்டும்; இல்லையெனில், உங்கள் nginx முகவரியையே limiter ஒரு தவறான client-ஆகக் கருதிவிடும்.
[botdetection]
trusted_proxies = [
'127.0.0.0/8',
'::1',
]
[botdetection.ip_limit]
link_token = truelink_token = true, ஒரு உண்மையான browser session-ஆல் மட்டுமே பெறக்கூடிய token-ஐ SearXNG வழங்கச் செய்கிறது; இது பெரும்பாலான எளிய scrapers-ஐத் தடுக்கும். ஒரு பொது instance-ஐத் தொடங்கிய சில நாட்களிலேயே இவை வரத் தொடங்கும். Engine errors-ஐயும் எதிர்பார்க்கலாம்; ஏனெனில், நீங்கள் எவ்வளவு அதிக traffic-ஐ அனுப்புகிறீர்களோ, அவ்வளவு விரைவாக upstream engines உங்கள் server முகவரிக்கு CAPTCHAs-ஐ அனுப்பத் தொடங்கும். ஒரு பொது SearXNG instance-ஐ நிர்வகிப்பது ஒரு தொடர்ச்சியான பணியாகும். தனிப்பட்ட instance-க்கு அந்தச் சிக்கல் இல்லை, இதனால்தான் 2026-ல் self-host செய்ய வேண்டியவை பட்டியலில் இது முதலிடத்தில் உள்ளது. அந்தப் பட்டியலில் உள்ள அனைத்தும் infrastructure சார்ந்தவை அல்ல: Jellyfin library-ஐ 90-களின் rental store போல மாற்றுவது அதே nginx block-க்கு பின்னால் உள்ள அதே container தான், ஆனால் அது ஒரு workflow-க்காக இல்லாமல், ஓய்வு நேரத்திற்காகப் பயன்படுத்தப்படுகிறது.
தேடல்கள் ஏன் முடிவுகளைத் தருவதில்லை
உங்கள் instance-ல் /stats-ஐத் திறக்கவும். இது ஒவ்வொரு engine-ன் error rate மற்றும் response time-ஐப் பட்டியலிடுகிறது; தேடல் முடிவுகள் குறைவாகத் தோன்றும்போது முதலில் கவனிக்க வேண்டிய இடம் இதுவே.
"Access denied" அல்லது "CAPTCHA" பிழைகளுடன் காட்டப்படும் engine, உங்கள் server address-ஐத் தடுத்துள்ளது. Data centre range-களில் உள்ள address-களுக்கு இது பொதுவானது; ஏனெனில் அவை scrapers-க்கு சொந்தமானவை என்று search engines கருதுகின்றன. SearXNG பின்னர் அந்த engine-ஐ மீண்டும் முயற்சிப்பதற்குப் பதிலாக, குறிப்பிட்ட காலத்திற்கு செயலிழக்கச் செய்கிறது. இதனால் தடுக்கப்பட்ட ஒரு engine, உங்கள் முடிவுகளிலிருந்து அமைதியாக நீக்கப்படும். அதை settings.yml-ல் disable செய்யலாம் அல்லது அந்த இழப்பை ஏற்கலாம். ஆனால் இவை மட்டுமே உள்ள வழிகள் அல்ல; ஏனெனில் சில CAPTCHA தடுப்புகளுக்கு restart-க்குப் பிறகும் நீடிக்கும் தீர்வு உள்ளது. மீதமுள்ள engines தொடர்ந்து பதிலளிக்கும். 429 என்பது தெளிவற்ற நிலை; அது உங்கள் சொந்த limiter-இலிருந்தும் வரலாம் அல்லது upstream engine உங்கள் server-ஐ நிராகரிப்பதிலிருந்தும் வரலாம். Settings-ஐ மாற்றத் தொடங்குவதற்கு முன், நீங்கள் எதிர்கொள்ளும் இரண்டில் எது என்பதை log line காட்டும்.
அனைத்து engine-களும் ஒரே நேரத்தில் தோல்வியுற்றால், container-க்குச் செயல்படும் outbound name resolution இல்லை அல்லது இணையத்திற்குச் செல்லும் வழி (route) இல்லை என்று பொருள். இதை container-க்கு உள்ளே இருந்து சோதிக்கவும்.
docker compose exec core wget -qO- https://duckduckgo.com > /dev/null && echo okஇந்தச் சோதனை தோல்வியடையும்போது அதைத் தெரிவிக்கும் வசதி எதிலும் இல்லை, எனவே இதை cron மூலம் இயக்கவும். முடிவுகள் குறைவதை நீங்கள் கவனிக்கும் வரை காத்திருக்காமல், தோல்வி ஏற்படும்போது உங்கள் சொந்த ntfy server மூலம் உங்கள் தொலைபேசிக்கு எச்சரிக்கை அனுப்பவும்.
FAQ
SearXNG எனது தேடல்களை அநாமதேயமாக்குகிறதா?
இது உங்கள் உலாவிற்குப் பதிலாக உங்கள் server-ஐக் கொண்டு தேடல்களைச் செய்வதால், நீங்கள் எந்தத் தேடுபொறிகளைப் பயன்படுத்துகிறீர்கள் என்பதை அவை அறியாது. ஆனால், உங்கள் server-க்கு நீங்கள் என்ன தேடுகிறீர்கள் என்பது தெரியும், மேலும் உங்கள் server-ஐ அந்தத் தேடுபொறிகள் அறியும். ஒரே ஒரு பயனர் மட்டுமே பயன்படுத்தும் instance-ல், அந்த IP முகவரியிலிருந்து வரும் அனைத்து traffic-ம் உங்களுடையது என்பதால், அந்த முகவரியே உங்களை அடையாளம் காட்டும். உங்கள் உலாவிக்கும் உங்கள் instance-க்கும் இடையிலான traffic, TLS certificate மூலம் பாதுகாக்கப்படுகிறது. உங்கள் ISP, public instance-ஐ இயக்கும் நபர் மற்றும் தேடுபொறிகள் ஆகியவற்றின் பார்வையில் உங்கள் நிலை என்ன என்பதை SearXNG உண்மையில் எதை மறைக்கிறது என்பதில் விரிவாகக் காணலாம்.
JSON கோரிக்கை ஏன் 403 Forbidden என்று காட்டுகிறது?
இதற்கு இரண்டு காரணங்கள் உள்ளன, இரண்டுமே configuration தொடர்பானவை. ஒன்று, settings.yml-ல் உள்ள search: பிரிவின் கீழ், formats பட்டியலில் json விடுபட்டிருக்கலாம் (இதுவே default நிலை). அல்லது, limiter செயல்பாட்டில் இருந்து உங்கள் script-ஐ ஒரு bot என்று வகைப்படுத்தியிருக்கலாம். முதலில் format-ஐச் சேர்த்து, docker compose restart core மூலம் restart செய்து மீண்டும் முயற்சிக்கவும். அப்படியும் தோல்வியுற்றால், limiter: false-ஐ அமைத்து, reverse proxy மட்டத்தில் access-ஐக் கட்டுப்படுத்தவும்.
limiter-ஐ நான் பயன்படுத்தவில்லை என்றால், Valkey container தேவையா?
அதை இயங்க விடுங்கள். Valkey இல்லாமலும் SearXNG இயங்கும், ஆனால் அதை இல்லாமல் limiter-ஐப் பிறகு இயக்க முடியாது. மேலும், இது குறுகிய காலத் தரவுகளைச் சேமித்து வைக்கிறது. இந்த container மிகச் சிறியது மற்றும் cached தரவுகளை மட்டுமே சேமிப்பதால், அதை நீக்குவதால் பெரிய பயன் ஏதுமில்லை, ஆனால் எதிர்காலத் தேவைகளுக்கான வாய்ப்பை இழக்க நேரிடும்.
SearXNG-ஐ எப்படி update செய்வது?
/opt/searxng கோப்பகத்தில் docker compose pull மற்றும் அதைத் தொடர்ந்து docker compose up -d கட்டளைகளை இயக்கவும். image மாறியிருந்தால், Compose அந்த container-ஐ மீண்டும் உருவாக்கும்; உங்கள் core-config/ கோப்பகம் மாற்றப்படாமல் இருக்கும், எனவே settings.yml அப்படியே இருக்கும். use_default_settings: true உங்கள் மாற்றங்களை default அமைப்புகளுடன் இணைப்பதால், upstream-ல் சேர்க்கப்படும் புதிய விருப்பங்கள் கோப்பைச் சிதைக்காமல், சரியான மதிப்புகளுடன் வந்து சேரும்.
பல நபர்கள் ஒரே instance-ஐப் பயன்படுத்தலாமா?
ஆம், அத்தகைய சூழலில் நீங்கள் limiter-ஐ இயக்கி, public_instance: true-ஐ அமைக்க வேண்டும். விருப்பத்தேர்வுகள் (preferences) ஒவ்வொரு பயனரின் உலாவியிலும் சேமிக்கப்படுவதால், கணக்குகளை (accounts) நிர்வகிக்க வேண்டிய அவசியமில்லை. இதைத் திறந்த பிறகு ஒரு வாரம் /stats-ஐக் கவனிக்கவும், ஏனெனில் தேடல் முடிவுகள் கிடைப்பது குறைவதற்கு முன்பே, upstream தேடுபொறிகள் உங்கள் server-ஐத் தடுக்கத் தொடங்கலாம்.