SSD Nodes Learn Hosting plans →
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-08-30

تفاوت Searx و SearXNG؛ آیا پروژه Searx متوقف شده است؟

پروژه Searx از سال 2023 هیچ آپدیتی دریافت نکرده و اکنون SearXNG جایگزین آن است. در این مطلب وضعیت فعلی، تفاوت فایل‌های پیکربندی و نحوه راه‌اندازی نسخه جدید را بررسی می‌کنیم.

Searx یا SearXNG: کدام را باید نصب کنید؟

Searx و SearXNG دو پروژه متفاوت با نامی تقریباً یکسان هستند و تنها یکی از آن‌ها همچنان به‌روزرسانی دریافت می‌کند. SearXNG را نصب کنید. پروژه اصلی Searx از آوریل 2023 هیچ commit کدی دریافت نکرده است و فایل README آن نیز وضعیت را در یک جمله مشخص کرده است: "Searx دیگر نگهداری نمی‌شود."

این موضوع بیش از آنکه یک مسئله فلسفی باشد، یک مشکل عملی است. این دو پروژه از یک اسکرین‌شات، بخش بزرگی از فایل پیکربندی و نیمی از نام مشترک استفاده می‌کنند، بنابراین راهنمایی که برای یکی نوشته شده، به نظر می‌رسد برای دیگری نیز کاربرد دارد. اما این‌طور نیست. فایل تنظیمات در مسیر متفاوتی قرار دارد، سیستم محافظت در برابر ربات‌ها جدید است و نام بسته آن در نسخه‌های فعلی Ubuntu دیگر وجود ندارد. در ادامه، تفاوت‌های این دو، دستوراتی برای بررسی وضعیت توسط خودتان و فهرستی از تغییرات برای کسی که قصد راه‌اندازی یک instance را دارد، آورده شده است.

Searx چیست و SearXNG از کجا آمده است

Searx یک موتور جستجوی متا (metasearch engine) است. این سرویس هیچ ایندکس مستقلی از خود ندارد. Searx پرس‌وجوی شما را دریافت کرده، آن را به سایر سرویس‌های جستجو مانند Bing، DuckDuckGo یا Wikipedia ارسال می‌کند و سپس نتایج بازگشتی را در یک صفحه واحد ادغام می‌نماید. مزیت این کار این است که آن سرویس‌ها به جای آدرس IP شما، آدرس سرور را مشاهده می‌کنند. هزینه این کار، نگهداری است. هر موتور جستجو در واقع قطعه‌کد کوچکی است که HTML یا API یک سرویس دیگر را تجزیه (parse) می‌کند؛ بنابراین هر زمان که آن سرویس بالادستی تغییری ایجاد کند، موتور مربوطه از کار می‌افتد. سلامت یک موتور جستجوی متا مستقیماً به افرادی وابسته است که ماژول‌های موتور آن را اصلاح می‌کنند.

مخزن searx در اکتبر 2013 ایجاد شد. در آوریل 2021، یکی از نگهداران سابق، SearXNG را به عنوان یک انشعاب (fork) از آن آغاز کرد. عبارت "NG" مخفف next generation است. فایل README خودِ Searx هر دو پروژه را در کنار هم توصیف می‌کند و آن توصیف همچنان واضح‌ترین خلاصه از این جدایی است:

SearXNG یک انشعاب از searx است که توسط یکی از نگهداران سابق searx ایجاد شده است.
SearXNG دارای انتشار‌های غلتان (rolling releases) است، وابستگی‌های آن با تناوب بیشتری به‌روزرسانی می‌شوند و موتورهای آن سریع‌تر اصلاح می‌گردند.

اختلاف‌نظری که منجر به این انشعاب شد، بر سر تشخیص خطاها (diagnostics) بود. Searx داده‌های استفاده را چیزی می‌دانست که یک نمونه (instance) نباید نگهداری کند و تنظیمات پیش‌فرض آن نیز صراحتاً همین موضوع را بیان می‌کنند: enable_stats: False # activate /stats page - note: it may leak usage data. پروژه SearXNG تصمیم متفاوتی گرفت و در تنظیمات پیش‌فرض خود enable_metrics: true را ارائه می‌دهد. این معیارها همان مواردی هستند که نوارهای زمان پاسخ‌دهی و صفحات خطا را پر می‌کنند و باعث می‌شوند شناسایی و رفع یک موتور خراب آسان‌تر شود. هر دو دیدگاه قابل دفاع هستند. تنها یکی از آن‌ها به انتشار کد ادامه داد.

آیا Searx مرده است؟ نحوه بررسی توسط خودتان

«مرده» وضعیتی نیست که GitHub گزارش کند، بنابراین دو سیگنال موجود را بخوانید و تصمیم بگیرید. اولین مورد این است که آیا مخزن (repository) آرشیو شده است یا خیر، و آخرین باری که یک push در آن انجام شده چه زمانی بوده است.

curl -s https://api.github.com/repos/searx/searx | jq -r '.archived, .pushed_at'
curl -s https://api.github.com/repos/searxng/searxng | jq -r '.archived, .pushed_at'

در تاریخ 22 August 2026، دستور اول false و 2026-05-14T10:02:22Z را چاپ می‌کند. دستور دوم false و یک برچسب زمانی از روزی که آن را اجرا می‌کنید، چاپ می‌کند. به مقدار اول توجه کنید. مخزن searx آرشیو نشده است و کسی در آن را قفل نکرده است، به همین دلیل است که این سوال مدام تکرار می‌شود.

pushed_at به تنهایی یک سیگنال ضعیف است، زیرا برای هر push به هر شاخه‌ای (branch)، از جمله یک تغییر یک‌خطی در مستندات، تغییر می‌کند. در عوض، لیست commitها را بخوانید.

curl -s 'https://api.github.com/repos/searx/searx/commits?per_page=5' \
  | jq -r '.[] | .commit.committer.date[:10] + "  " + (.commit.message | split("\n")[0])'

تا آگوست 2026، این دستور خروجی زیر را چاپ می‌کند:

2026-05-14  [doc] add hister reference
2023-09-07  Searx is no longer maintained
2023-04-05  Fix quoting issue in search_operator plugin (#3479)
2023-04-04  Bump pallets-sphinx-themes from 2.0.2 to 2.0.3 (#3450)
2023-04-04  Bump selenium from 4.7.2 to 4.8.3 (#3490)

آن را از پایین به بالا بخوانید. کارهای عادی در آوریل 2023 متوقف شده‌اند. commit سپتامبر 2023 مربوط به نویسندگانی است که اطلاعیه را در README درج کرده‌اند. تنها commit پس از آن مربوط به مستندات است، زیرا نویسنده اصلی به Hister نقل مکان کرده است؛ ابزاری برای جستجو که به جای پرس‌وجو از موتورهای دیگر، صفحات و فایل‌هایی را که انتخاب می‌کنید، نمایه‌سازی (index) می‌کند. این یک ایده متفاوت است و اگر چیزی که واقعاً می‌خواهید یک موتور جستجوی شخصی برای محتوای خودتان باشد، ابزار مفیدی است.

سیگنال دوم، بسته‌بندی (packaging) است و بسته‌بندی همان چیزی است که اکثر آموزش‌های قدیمی بی‌سروصدا به آن وابسته‌اند.

  • PyPI دارای یک نسخه searx به نام 0.17.0 است که در جولای 2020 آپلود شده است. pip install searx با موفقیت اجرا می‌شود و کدی را به شما می‌دهد که مربوط به نه ماه پیش از ایجاد fork است.
  • دبیان در Debian 12 (bookworm) نسخه 1.1.0 از searx را ارائه کرد و همچنان آن را در نسخه unstable نگه می‌دارد. این بسته در اکتبر 2023 از نسخه testing حذف شد، بنابراین Debian 13 (trixie) اصلاً بسته‌ای برای searx ندارد.
  • اوبونتو آخرین بار آن را در نسخه 22.04 و با نسخه 1.0.0 ارائه کرد. در Ubuntu 24.04، دستور sudo apt install searx با E: Unable to locate package searx پایان می‌یابد.
  • searx.space، دایرکتوری نمونه‌های عمومی که پروژه همیشه کاربران را به آن ارجاع می‌داد، اکنون لیست نمونه‌های SearXNG را نمایش می‌دهد.

بنابراین وضعیت صادقانه این است: کد عمومی است، هنوز اجرا می‌شود و شما می‌توانید همین امروز آن را clone کرده و راه‌اندازی کنید. چیزی که دریافت نمی‌کنید، اصلاحات موتورها یا به‌روزرسانی‌های امنیتی است، و برای یک موتور جستجوی متا (metasearch engine)، این تمام وظیفه است. موتورها طبق زمان‌بندی دیگران از کار می‌افتند. یک نمونه نگهداری‌نشده، هر ماه نتایج کمتری برمی‌گرداند، بدون اینکه کسی به سرور دست بزند.

تغییرات در نمونه جدید چیست

فایل تنظیمات جابه‌جا شده و اکنون یک overlay است

در Searx شما فایل searx/settings.yml را در درخت منبع ویرایش می‌کردید. در SearXNG این فایل در /etc/searxng/settings.yml قرار دارد و پردازش آن را از طریق متغیر محیطی SEARXNG_SETTINGS_PATH پیدا می‌کند. قالبی که نصب‌کننده در آنجا کپی می‌کند کوتاه است:

use_default_settings: true

general:
  debug: false
  instance_name: "SearXNG"

search:
  safe_search: 2
  autocomplete: 'duckduckgo'
  formats:
    - html

server:
  # Is overwritten by ${SEARXNG_SECRET}
  secret_key: "ultrasecretkey"
  limiter: true
  image_proxy: true

valkey:
  # URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}.
  url: valkey://localhost:6379/0

use_default_settings: true خطی است که نحوه کار شما را تغییر می‌دهد. با وجود آن، فایل شما فقط شامل تغییرات (overrides) است و هر کلیدی که حذف کنید، از مقادیر پیش‌فرض بسته‌بندی‌شده در برنامه خوانده می‌شود. بدون آن، فایل شما باید کل پیکربندی را موتور به موتور توصیف کند. به همین دلیل است که برخی کاربران با نمونه‌ای مواجه می‌شوند که به‌درستی بالا می‌آید اما هیچ نتیجه‌ای پیدا نمی‌کند. یک فایل تنظیمات قدیمی Searx که در این مسیر کپی شود، یک پیکربندی کامل با نام‌های کلیدی متفاوت است، بنابراین مسیر دوم را طی می‌کند و نتیجه نامطلوبی می‌دهد.

کلید امنیتی (secret key) پردازش را متوقف می‌کند

sudo -H sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" \
              "/etc/searxng/settings.yml"

پس از کپی کردن قالب، این دستور را یک بار اجرا کنید. اگر آن را نادیده بگیرید، SearXNG یک خط در لاگ می‌نویسد و با وضعیت 1 خارج می‌شود، زیرا webapp.py پیش از ارائه هرگونه سرویس، کلید را با مقدار موجود در قالب مقایسه می‌کند:

server.secret_key is not changed. Please use something else instead of ultrasecretkey.

این بررسی زمانی که general.debug برابر با true باشد نادیده گرفته می‌شود، بنابراین یک نمونه ممکن است در یک نشست دیباگ به‌خوبی اجرا شود و سپس تحت systemd یا در یک کانتینر از شروع کار خودداری کند. کانتینری که در یک حلقه با آن خط در docker compose logs ری‌استارت می‌شود، به دلیل فعال شدن همین بررسی است، نه خرابی image.

محدودکننده (limiter) جدید است و به Valkey نیاز دارد

Searx هیچ محدودیت نرخ (rate limiting) داخلی در برنامه نداشت. نمونه‌های عمومی Searx سرویس‌های جداگانه‌ای را در مقابل آن قرار می‌دادند؛ filtron برای فیلتر کردن درخواست‌ها و morty برای پروکسی کردن محتوای نتایج. آخرین commit هر دوی این مخازن مربوط به سال 2023 است.

SearXNG این کار را خودش انجام می‌دهد. محدودیت نرخ و تشخیص ربات توسط limiter انجام می‌شود که با server.limiter فعال می‌گردد. این مقدار در پیش‌فرض‌های ارائه‌شده false و در قالب نصب‌کننده true است و برای نگهداری شمارنده‌های خود به یک دیتابیس Valkey نیاز دارد. Valkey یک fork از Redis است و اوبونتو 24.04 آن را بسته‌بندی کرده است:

sudo apt install -y valkey-server
server:
  limiter: true

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

راهنماهایی که پیش از این تغییر نام نوشته شده‌اند، یک بلوک redis: را پیکربندی می‌کنند، بنابراین نام کلید را از مستندات فعلی limiter کپی کنید. تنظیمات دقیق در فایل دوم یعنی /etc/searxng/limiter.toml قرار دارد و server.public_instance: true تشخیص سخت‌گیرانه‌تر ربات را که یک نمونه عمومی به آن نیاز دارد، از جمله روش link token فعال می‌کند. نتیجه قابل مشاهده این است که برخی درخواست‌ها به جای نتایج، با کد HTTP 429 پاسخ داده می‌شوند، که شامل درخواست‌های خود شما در صورت اسکریپت‌نویسی علیه این نمونه نیز می‌شود. این موضوع صفحه مخصوص به خود را در اینجا دارد: چرا یک نمونه SearXNG پاسخ 429 Too Many Requests می‌دهد.

موتورها خود را تعلیق می‌کنند و زمان‌های انتظار (timeouts) طولانی هستند

هنگامی که یک سرویس بالادستی با CAPTCHA یا صفحه محدودیت نرخ پاسخ می‌دهد، SearXNG یک استثنای تایپ‌شده ایجاد می‌کند و به جای تلاش مجدد تا رسیدن به مسدودسازی، پرسش از آن موتور را برای مدت مشخصی متوقف می‌کند. پیش‌فرض‌ها در searx/settings.yml تحت search.suspended_times قرار دارند. این‌ها مقادیر منتشرشده 6 تا اوت 2026 هستند:

ChartSearXNG default engine suspension times, in seconds
The data behind this chart
[
  {
    "label": "SearxEngineAccessDenied",
    "suspend_seconds": "180"
  },
  {
    "label": "SearxEngineCaptcha",
    "suspend_seconds": "3,600"
  },
  {
    "label": "SearxEngineTooManyRequests",
    "suspend_seconds": "180"
  },
  {
    "label": "cf_SearxEngineCaptcha",
    "suspend_seconds": "1,296,000"
  },
  {
    "label": "cf_SearxEngineAccessDenied",
    "suspend_seconds": "86,400"
  },
  {
    "label": "recaptcha_SearxEngineCaptcha",
    "suspend_seconds": "604,800"
  }
]

یک پاسخ ساده "دسترسی ممنوع" آن موتور را برای 180 ثانیه پارک می‌کند. یک CAPTCHA آن را برای 3,600 ثانیه پارک می‌کند. یک Cloudflare CAPTCHA آن را برای 1,296,000 ثانیه پارک می‌کند که پانزده روز است، و یک Google reCAPTCHA برای 604,800 ثانیه که یک هفته است. مقادیر طولانی عمدی هستند، زیرا پرسش مجدد پس از اینکه سرویس قبلاً آدرس IP را پرچم‌گذاری کرده است، باعث مسدود شدن دائمی IP نمونه می‌شود.

در حالی که یک موتور تعلیق شده است، صفحه نتایج از آن عبور می‌کند و آن را در بلوک کناری با عنوان "پیام‌هایی از موتورهای جستجو" گزارش می‌دهد و /stats/errors موارد شکست‌خورده را فهرست می‌کند. یک نمونه تازه که نتایج کمی برمی‌گرداند معمولاً این وضعیت را نشان می‌دهد، نه یک نصب خراب.

رابط کاربری JSON به‌صورت پیش‌فرض غیرفعال است

پیش‌فرض ارائه‌شده formats: [html] و هیچ چیز دیگری نیست، بنابراین رابط کاربری (API) که هر اسکریپتی به آن نیاز دارد تا زمانی که آن را باز نکنید، بسته است.

curl -s -o /dev/null -w '%{http_code}\n' \
  'http://127.0.0.1:8888/search?q=test&format=json'

این دستور 403 را چاپ می‌کند، زیرا مسیر جستجو زمانی که فرمت درخواستی در search.formats فهرست نشده باشد، flask.abort(403) را فراخوانی می‌کند. فرمت را اضافه کرده و سرویس را ری‌استارت کنید:

search:
  formats:
    - html
    - json

فایل تنظیمات searx اصلاً کلید formats را ندارد، بنابراین خروجی JSON آن به‌سادگی با درخواست در دسترس بود. هر اسکریپت و قطعه کدی از آن دوران همین فرض را دارد و حالت شکست آن یک خطای 403 ساده بدون توضیح است. اگر در حال متصل کردن یک نمونه به ابزارهای خود هستید، دادن یک endpoint SearXNG به یک عامل برای جستجو با همین تنظیم شروع می‌شود.

چرا آموزش‌های کپی‌شدهٔ Searx با شکست مواجه می‌شوند

هر یک از این خطوط در راهنماهایی دیده می‌شوند که هنوز در نتایج جستجو رتبه دارند، اما هر کدام در نصب‌های فعلی یا شکست می‌خورند یا گمراه‌کننده هستند.

  • دستور sudo apt install searx در Ubuntu 24.04 در مرحله E: Unable to locate package searx متوقف می‌شود، زیرا این بسته آخرین بار در نسخه 22.04 عرضه شده است.
  • دستور pip install searx با موفقیت اجرا شده و نسخه 0.17.0 مربوط به ژوئیه 2020 را نصب می‌کند. هیچ هشداری به شما نمی‌دهد که این نسخه پیش از ایجاد fork فعلی است.
  • دستور git clone https://github.com/asciimoo/searx همچنان کار می‌کند، زیرا GitHub نام مالک قدیمی را تغییر مسیر می‌دهد و درختی مربوط به آوریل 2023 را به شما تحویل می‌دهد.
  • مراحلی که فایل searx/settings.yml را در درخت منبع ویرایش می‌کنند، هیچ تغییری در SearXNG ایجاد نمی‌کنند، زیرا این برنامه فایل /etc/searxng/settings.yml را می‌خواند.
  • مراحلی که filtron یا morty را نصب می‌کنند، در حال بازسازی بخش‌هایی هستند که SearXNG هم‌اکنون شامل آن‌هاست.
  • یک URL با نام redis: برای محدودکننده (limiter)، یک نام‌گذاری عقب‌تر از کلید فعلی valkey: است.

راهنماهای SearXNG نیز دچار فرسودگی می‌شوند و URL کلون، سریع‌ترین راه برای تشخیص قدمت آن‌هاست. فایل‌های compose قبلاً در یک مخزن جداگانه به نام searxng-docker قرار داشتند. آن مخزن در مارس 2026 آرشیو شد و فایل‌هایش به پوشه container/ در مخزن اصلی منتقل شدند. دستور سریع برای راه‌اندازی container طبق مستندات فعلی به شرح زیر است:

mkdir -p ./searxng/core-config/
cd ./searxng/
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
nano .env
docker compose up -d

پیش از اجرای آخرین دستور، فایل .env را ویرایش کنید. این image متغیرهای محیطی را به کلیدهای تنظیمات نگاشت می‌کند، بنابراین SEARXNG_SECRET به server.secret_key و SEARXNG_BASE_URL به server.base_url تبدیل می‌شود. نصب اسکریپتی روی host مسیر متفاوتی است که نتیجه مشابهی دارد:

git clone https://github.com/searxng/searxng.git searxng
cd searxng
sudo -H ./utils/searxng.sh install all

این کار کاربر searxng، محیط مجازی در مسیر /usr/local/searxng و سرویس uWSGI را ایجاد می‌کند که پیکربندی مرجع در مستندات SearXNG است. راهنمای گام‌به‌گام و مفصل‌تر این مسیر در نصب SearXNG روی VPS شخصی موجود است.

نمونه عمومی یا نمونه شخصی خودتان

یک نمونه عمومی در واقع سرور شخص دیگری است که اتصال TLS (امنیت لایه انتقال) شما را خاتمه می‌دهد، بنابراین نرم‌افزار موجود در آن، پرس‌وجوی شما را به‌صورت متن ساده (plain text) می‌خواند. مستندات خود SearXNG مسئله اعتماد را به‌صراحت مطرح می‌کند: شما باید به مدیر سرور اعتماد کنید و نمی‌توانید بدانید که آیا درخواست‌ها ثبت، تجمیع یا به شخص ثالثی ارسال می‌شوند یا خیر. لیست قابل‌مشاهده، کوتاه و کامل است. پشته نرم‌افزاری اپراتور می‌تواند متن پرس‌وجو، زمان، آدرس IP مبدأ درخواست، user agent مرورگر و کوکی تنظیمات حاوی ترجیحات شما را ببیند. اپراتور همچنین کنترل کد را در دست دارد، بنابراین هر وصله‌ای که اعمال کند، روی تک‌تک جستجوهای شما در آنجا اجرا می‌شود.

یک تنظیم پیش‌فرض، ثبت لاگ را به‌طور تصادفی آسان‌تر می‌کند. Searx جستجوها را به‌صورت POST ارسال می‌کرد. SearXNG با method: "GET" عرضه می‌شود، با این توضیح که POST پرس‌وجوهای جستجو را از تاریخچه مرورگر دور نگه می‌دارد اما مشکلات کاربری ایجاد می‌کند. با GET، پرس‌وجو در خط درخواست قرار می‌گیرد، بنابراین به‌طور پیش‌فرض در لاگ دسترسی reverse proxy و در تاریخچه مرورگر ثبت می‌شود. این رفتار عادی یک وب‌سرور است. دانستن این موضوع پیش از انتخاب اینکه جستجوهای شما روی سرور چه کسی انجام شود، ارزشمند است.

اجرای نمونه شخصی، اعتماد را جابه‌جا می‌کند نه اینکه آن را حذف کند. شما کنترل کد و لاگ‌ها را در دست دارید، و اگر ترجیح می‌دهید اصلاً نام میزبان یا گواهی TLS برای یک سیستم تک‌کاربره منتشر نکنید، دسترسی به آن از طریق یک v3 onion service باعث می‌شود نمونه شما از DNS عمومی دور بماند، در حالی که همچنان می‌توانید از هر جایی به آن دسترسی داشته باشید. در مقابل، موتورهای جستجوی بالادستی یک آدرس واحد برای تمام جستجوهای شما می‌بینند و در یک نمونه تک‌کاربره، هر پرس‌وجو به‌جای ترکیب شدن در میان انبوه کاربران، مستقیماً به شما برمی‌گردد. یک نمونه عمومی شلوغ، آن جمعیت را برای شما فراهم می‌کند و لاگ‌ها را از دسترس شما خارج می‌سازد. ویژگی مورد نظر خود را انتخاب کنید، و اگر ابتدا به لیست کامل ریسک‌ها نیاز دارید، آیا SearXNG برای استفاده امن است آن را بررسی می‌کند.

یک نکته عملی برای VPS: محدوده‌های آدرس دیتاسنترها سریع‌تر از اتصالات خانگی پرچم‌گذاری (flag) می‌شوند، بنابراین یک نمونه جدید ممکن است در همان جستجوهای اول با CAPTCHA در برخی موتورها مواجه شود. این رفتار تعلیق که در بالا ذکر شد، بخشی از عملکرد عادی سیستم است و به معنای پیکربندی نادرست نیست.

اگر در حال حاضر یک نمونه Searx را اجرا می‌کنید

هیچ‌چیز در روزی که این متن را می‌خوانید از کار نمی‌افتد. سرور تا زمانی که تغییر بعدی در بالادست (upstream) باعث از کار افتادن یک موتور جستجو شود به کار خود ادامه می‌دهد و پس از آن، همان‌طور خراب باقی می‌ماند. برای انتقال برنامه‌ریزی کنید و فایل پیکربندی قدیمی را مستقیماً منتقل نکنید. کار را با قالب SearXNG شروع کنید و سپس فقط مواردی را که آگاهانه تغییر داده‌اید دوباره اضافه کنید: نام نمونه، safe_search، موتورهایی که به نام فعال یا غیرفعال کرده‌اید و تنظیمات پیش‌فرض رابط کاربری. نام موتورها و گزینه‌ها در این انشعاب (fork) تغییر کرده‌اند، بنابراین به‌جای فرض اینکه کلیدها هنوز وجود دارند، هر کدام را با مستندات فعلی تطبیق دهید. قوانین Filtron و آدرس URL برای morty معادل ندارند، زیرا این وظایف به داخل خود برنامه منتقل شده‌اند.

نمونه جدید را روی پورت متفاوتی اجرا کنید در حالی که نمونه قدیمی هنوز فعال است. زمانی که صفحه اصلی کد 200 برمی‌گرداند، جستجو نتایجی از بیش از یک موتور ارائه می‌دهد و /stats/errors یا خالی است یا فقط خطاهایی را فهرست می‌کند که از آن‌ها آگاه هستید، یعنی سیستم به‌درستی کار می‌کند. سپس reverse proxy را به سمت نمونه جدید هدایت کرده و سرویس قدیمی را متوقف کنید.

FAQ

آیا Searx در سال 2026 مرده است؟

مخزن (repository) آرشیو نشده است، بنابراین مانعی برای clone کردن آن وجود ندارد، اما پروژه دیگر نگهداری نمی‌شود. آخرین commit کد در آوریل 2023 ثبت شد و فایل README شامل این جمله است: "Searx دیگر نگهداری نمی‌شود." این موضوع را شخصاً با curl -s https://api.github.com/repos/searx/searx | jq -r '.pushed_at' بررسی کنید و سپس پیام‌های commit اخیر را بخوانید، زیرا تاریخ push به تنهایی ممکن است مربوط به ویرایش مستندات باشد. برای یک موتور جستجوی متا (metasearch engine)، عدم نگهداری به معنای افت کیفیت خودکار نتایج است، زیرا هر ماژول موتور جستجو به یک سایت بالادستی وابسته است که دائماً در حال تغییر است.

آیا هنوز می‌توانم Searx را با apt یا pip نصب کنم؟

در سیستم‌های فعلی خیر، و در جایی که امکان‌پذیر باشد نیز کاربردی نیست. اوبونتو آخرین بار searx را در نسخه 22.04 و با ورژن 1.0.0 بسته‌بندی کرد، بنابراین sudo apt install searx در نسخه 24.04 خروجی E: Unable to locate package searx را برمی‌گرداند. دبیان نسخه 1.1.0 را در Debian 12 ارائه داد و آن را در اکتبر 2023 از شاخه testing حذف کرد، بنابراین Debian 13 هیچ بسته‌ای برای آن ندارد. PyPI همچنان نسخه 0.17.0 مربوط به ژوئیه 2020 را ارائه می‌دهد که حتی از خودِ fork هم قدیمی‌تر است. به جای آن SearXNG را نصب کنید.

آیا فایل settings.yml قدیمی searx من در SearXNG کار می‌کند؟

خیر. مقادیر را کپی کنید، نه خودِ فایل را. SearXNG فایل /etc/searxng/settings.yml را می‌خواند و انتظار دارد use_default_settings: true در ابتدای آن باشد، بنابراین فایل شما به عنوان یک لایه روی تنظیمات پیش‌فرض عمل می‌کند. فایل قدیمی searx یک پیکربندی کامل با نام کلیدهای متفاوت است و فاقد limiter، بلوک valkey و لیست formats است. از قالب موجود در utils/templates/etc/searxng/settings.yml شروع کنید و تغییرات خود را یکی‌یکی اضافه کنید.

چرا نمونه SearXNG شخصی من نتایج کمتری نسبت به یک نمونه عمومی برمی‌گرداند؟

برخی موتورها معلق (suspend) شده‌اند. هنگامی که یک موتور با CAPTCHA یا صفحه محدودیت نرخ (rate limit) پاسخ می‌دهد، SearXNG پرس‌وجو از آن را برای مدت زمان مشخصی متوقف می‌کند؛ این زمان از 180 ثانیه برای یک امتناع ساده تا 1,296,000 ثانیه برای CAPTCHA کلودفلر متغیر است. صفحه نتایج این مورد را در بخش "Messages from the search engines" گزارش می‌دهد و /stats/errors خرابی‌ها و دلایل آن‌ها را فهرست می‌کند. آدرس‌های دیتاسنتر سریع‌تر از اتصالات خانگی شناسایی می‌شوند، بنابراین یک نمونه VPS جدید زودتر با این محدودیت مواجه می‌شود.

آیا باید از یک نمونه عمومی SearXNG استفاده کنم یا نمونه خودم را اجرا کنم؟

اگر کنترل کد و لاگ‌ها برایتان مهم است، نمونه خودتان را اجرا کنید و بپذیرید که موتورهای بالادستی در این حالت، تمام جستجوهای شما را از یک آدرس واحد می‌بینند. اگر ترکیب پرس‌وجوهای شما با پرس‌وجوهای دیگران برایتان مهم‌تر از دانستن این است که چه چیزی لاگ می‌شود، از یک نمونه عمومی استفاده کنید. در یک نمونه عمومی، اپراتور می‌تواند متن پرس‌وجو، زمان، آدرس IP و user agent شما را ببیند و هر زمان که بخواهد کد را تغییر دهد. سیاست لاگ‌گذاری اعلام‌شده را نمی‌توان از بیرون تأیید کرد.