Tropic Host

SearXNG: ما هو وكيف تثبّت محرك بحثك الخاص على خادم VPS

2 دقيقة للقراءة
Tropic
SearXNG: ما هو وكيف تثبّت محرك بحثك الخاص على خادم VPS

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 إذا فعّل المسؤول الصيغ المطلوبة.

يمكن لنسخة واحدة أن تعمل كخلفية بحث للوحة تحكم داخلية أو روبوت أو برنامج نصي للبحث أو مساعد ذكاء اصطناعي محلي. ولا ينبغي إتاحة API إلا بعد إعداد المصادقة وحدود معدل الطلبات.

إلى أي حد يحافظ SearXNG على الخصوصية؟

ما يفعلهما لا يفعله
لا يرسل ملفات تعريف ارتباط المتصفح إلى محركات البحث الخارجيةلا يوفر إخفاءً كاملًا للهوية
يخفي عنوان IP الخاص بالمستخدم خلف عنوان IP للخادملا يحمي المستخدم بعد فتح موقع النتائج
يزيل إعلانات الجهات الخارجية وبعض معاملات التتبعلا يضمن أن مالك خادم شخص آخر لا يحتفظ بالسجلات
يمكنه تمرير الصور عبر وكيللا يحل محل VPN أو Tor أو حماية المتصفح

تسهّل النسخة العامة تجربة الخدمة، لكن عليك الوثوق بمسؤولها، كما أن العنوان المشترك أكثر عرضة لتقييد معدل الطلبات.

يمنحك خادمك الخاص تحكمًا في السجلات والمصادر والوصول، لكنه لا يجعل المتصفح مجهولًا.

نسخة عامة أم خادم منزلي أم VPS؟

الخيارالمزاياالقيود
نسخة عامةلا تحتاج إلى تثبيت أي شيءالثقة بالمالك، الحمل الزائد، CAPTCHA
خادم منزليتحكم كامل من دون استئجار VPSيجب أن يعمل الجهاز باستمرار؛ إعداد الوصول الخارجي أصعب
خادم VPS خاص بكتشغيل على مدار الساعة، نطاق، HTTPS، والوصول من أجهزة مختلفةيجب تحديث الحاويات ومراقبة الأمان

تفيد نسخة SearXNG الخاصة بالعائلة أو الفريق أو المطور أو الأدوات المحلية المعتمدة على الذكاء الاصطناعي. أما للبحث العرضي، فتبقى النسخة العامة أبسط.

ما مواصفات خادم VPS التي يحتاج إليها SearXNG؟

يعتمد الحمل على عدد المستخدمين والمصادر والاستعلامات المتزامنة. وهذه تهيئات ابتدائية عملية:

السيناريوCPURAMالتخزين
مستخدم واحد1 vCPU1 GB10 GB
عائلة أو فريق صغير2 vCPU2 GB20 GB
API وخدمات إضافية2–4 vCPUمن 4 GBمن 30 GB

لا تحتاج إلى قرص كبير. فجودة الشبكة وعنوان IP المستقر وذاكرة RAM الاحتياطية أهم.

يصلح Linux VPS من tropic.host لهذا السيناريو: يمكنك البدء بتهيئة صغيرة وزيادة الموارد مع إضافة مستخدمين أو إتاحة 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

أنشئ تجزئة لكلمة مرور قوية:

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'REPLACE_WITH_PASSWORD'

أدخل التجزئة الناتجة في Caddyfile:

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser INSERT_HASH_HERE
    }

    reverse_proxy searxng:8080 {
        header_up X-Real-IP {remote_host}
    }
}

يخزن Caddy التجزئة بدلًا من كلمة المرور النصية. وبدل 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، ثم أضف SearXNG إلى المتصفح عبر OpenSearch. لتحديثه، شغّل:

sudo docker compose pull
sudo docker compose up -d

أنشئ نسخة احتياطية من .env وCaddyfile ومجلد searxng. فعّل JSON API عند الحاجة فقط، ولا تتركه من دون كلمة مرور وتحديد لمعدل الطلبات.

أخطاء شائعة

الخطأالنتيجةالحل
جعل النسخة عامةتنشئ الروبوتات حملًا ويُقيّد العنوان كثيرًااستخدم كلمة مرور أو VPN أو تسجيل دخول موحد
تفعيل مصادر كثيرة جدًانتائج بطيئة ومهلات انتظارأبقِ على بضعة محركات مستقرة
التعامل مع SearXNG كأنه فهرس خاص بهتختفي بعض النتائج عند تعطل الأنظمة الخارجيةضع اعتماده على المصادر في الحسبان
توقع إخفاء هوية كاملما زال موقع الوجهة قادرًا على تتبع المتصفحاستخدم حماية المتصفح أو VPN أو Tor
تشغيله من دون HTTPSتنتقل الاستعلامات وكلمة المرور بطريقة غير آمنةاستخدم وكيلًا عكسيًا مع TLS

الخلاصة

يجمع SearXNG مصادر مختلفة في واجهة واحدة، ويقلل التخصيص، ويوفر خدمة بحث واحدة للمتصفح أو البرامج النصية أو الذكاء الاصطناعي المحلي. تكفي النسخة العامة لتجربته. أما للاستخدام المنتظم، فالأفضل تشغيل خادمك الخاص مع HTTPS والمصادقة والمحدِّد ومجموعة صغيرة من المصادر المستقرة.

يمكنك البدء بذاكرة RAM قدرها 1 GB. زد الموارد مع ارتفاع عدد المستخدمين أو عند تفعيل API أو تشغيل حاويات إضافية.

FAQ

هل SearXNG مجهول الهوية تمامًا؟

لا. فهو يخفي بعض البيانات عن محركات البحث الخارجية، لكن يستطيع مسؤول النسخة الاحتفاظ بالسجلات. وبعد فتح موقع ما، تنطبق آليات التتبع الخاصة به.

هل SearXNG أفضل من Google؟

إنه يحل مشكلة مختلفة. عادةً ما يكون Google أسرع ويخصص النتائج بدرجة أكبر. يمنحك SearXNG تحكمًا أكبر، ويتيح جمع المصادر، ويعتمد بدرجة أقل على ملف المستخدم.

هل يمكن استخدام SearXNG من دون VPS؟

نعم. يمكنك استخدام نسخة عامة أو حاسوب منزلي أو NAS أو خادم صغير. تحتاج إلى VPS إذا أردت الوصول إليه على مدار الساعة من أي شبكة.

ما مقدار ذاكرة RAM المطلوبة؟

لمستخدم واحد، يُعد البدء بذاكرة 1 GB خيارًا مناسبًا. أما للعائلة أو الفريق أو API أو الحاويات الإضافية، فمن الأفضل تخصيص 2–4 GB.

هل يمكن ربط SearXNG بالمتصفح أو بالذكاء الاصطناعي؟

نعم. يستطيع المتصفح استخدام OpenSearch، بينما يمكن للتطبيقات استخدام HTTP API. يجب حماية الوصول إلى API بالمصادقة وبمحدِّد لمعدل الطلبات.