دليل النشر

مراقبة تغييرات المواقع مع Changedetection.io

انشر على VPS Cloud ←

دليل عملي

مراقبة تغييرات المواقع مع Changedetection.io

الاستضافة الذاتية9 دقائق للقراءةعدد الخطوات: 10

يُعدّ تتبّع أسعار المنافسين وتنبيهات إعادة التخزين والمناقصات العامة وتحديثات العقود يدويًا أمرًا مُضنيًا. يؤدي ‎Changedetection.io‎ (رخصة ‎Apache 2.0‎، أكثر من 24 ألف نجمة) هذه المهمة تلقائيًا: يراقب أي عنوان ‎URL‎ ويُرسل إشعارًا فور حدوث أي تغيير — عبر البريد الإلكتروني أو ‎Telegram‎ أو ‎Slack‎ أو ‎Discord‎ أو ‎ntfy‎ أو أكثر من 80 قناة أخرى. اكتشف هنا كيفية نشره على خادم ‎ServOrbit VPS‎ في دقائق، وكيفية تحديثه بأمان دون التعرض لأي تراجع.

المحتويات· لماذا الاستضافة الذاتية لأداة كشف التغييرات1/7
  1. 01لماذا الاستضافة الذاتية لأداة كشف التغييرات
  2. 02ما تحصل عليه مع Changedetection.io ذاتي الاستضافة
  3. 03المتطلبات الأساسية
  4. 04نشر Changedetection.io على خادمك VPS
  5. 05حالات الاستخدام العملية للمطورين والشركات الصغيرة
  6. 06التراجعات الفعّالة في الإصدار v0.60.2 — ما تحتاج معرفته
  7. 07تحديث Changedetection.io بأمان — وتثبيت الإصدار

لماذا الاستضافة الذاتية لأداة كشف التغييرات

تُقدّم خدمات ‎SaaS‎ لكشف التغييرات خدماتها بحساب لكل فحص، وتضع حدودًا لعدد عناوين ‎URL‎ المراقبة، وتُمرّر محتواك عبر خوادمها. يعكس ‎Changedetection.io‎ هذا النموذج: تشغّله على خادمك الخاص، وتراقب عددًا غير محدود من عناوين ‎URL‎ بالتردد الذي تختاره، وتبقى جميع البيانات على بنيتك التحتية.

بما أنه يعتمد على تخزين الملفات دون قاعدة بيانات خارجية، فالحِمل التشغيلي ضئيل — يستهلك الحاوي أقل من 256 ‎MB‎ من الذاكرة في وضع الخمول ويبدأ في أقل من 10 ثوانٍ. تُحفظ لقطات كل صفحة مراقبة محليًا في وحدة ‎Docker‎ مُركّبة على مجلد /datastore: لا تغادر بياناتك خادمك قط، حتى بالنسبة للصفحات المحمية بكلمة مرور.

أضف ‎Sidecar Playwright/Chromium‎ للصفحات المُصيَّرة بـ‎JavaScript‎ لتحصل على دقة متصفح كامل لتطبيقات ‎SPA‎ وعدادات الطلبات وعناصر الأسعار المحمّلة ديناميكيًا — أشياء لا يمكن لطلب ‎HTTP‎ بسيط رؤيتها أبدًا.

ما تحصل عليه مع Changedetection.io ذاتي الاستضافة

  • مراقبة عدد غير محدود من عناوين URL — صفحات المنتجات وبوابات المناقصات والمواقع المنافسة ولوحات الوظائف — بأي فترة فحص.
  • فلاتر محدد CSS وXPath والكلمات المفتاحية — راقب العنصر الذي يهمك فقط، لا الصفحة بأكملها.
  • أكثر من 80 قناة إشعار عبر Apprise: البريد الإلكتروني (SMTP) وTelegram وSlack وDiscord وntfy وGotify وMatrix والـ webhooks وغيرها الكثير.
  • Sidecar Playwright/Chromium اختياري للصفحات المُصيَّرة بـJavaScript — يتم التصيير في متصفح حقيقي، لا في عميل HTTP بسيط.
  • عارض الفروقات الكامل — شاهد بالضبط ما الذي تغيّر، مُميَّزًا في سياقه، مع سجل اللقطات السابقة.
  • فحوصات مجدولة مع توزيع عشوائي للتوقيت — من كل دقيقة إلى كل 24 ساعة؛ التوقيت العشوائي يتجنب أنماط كشف البوتات.
  • حاوي Docker واحد، تخزين قائم على الملفات، أقل من 256 MB من الذاكرة — لا تبعيات خارجية.
  • رخصة Apache 2.0 — لا رسوم لكل فحص، لا حساب سحابي، لا بيانات تتبع.

المتطلبات الأساسية

خادم ‎ServOrbit VPS‎ يعمل بنظام ‎Ubuntu 24.04‎ مع ذاكرة وصول عشوائي لا تقل عن 1 ‎GB‎. يستهلك ‎Changedetection.io‎ وحده أقل من 256 ‎MB‎ في وضع الخمول؛ إذا أضفت ‎Sidecar Playwright‎، احسب لنفسك 2 ‎GB‎ إجمالًا.

يتم توفير ‎Docker‎ و‎Docker Compose‎ تلقائيًا عند النشر عبر ‎ServOrbit Marketplace‎. لا يلزم اسم نطاق — يمكن الوصول إلى واجهة الويب مباشرةً على المنفذ 5000، غير أن وضعها خلف ‎reverse proxy‎ بـ‎HTTPS‎ موصى به للنشرات طويلة الأمد.

ملاحظة بشأن الإصدار المُنشر. يتتبع وسم latest أحدث وسم منشور على ‎GitHub‎. منذ صدور الإصدار ‎v0.60.2‎ في 2 سبتمبر 2026، يشهد هذا الوسم تراجعَين فعّالَين (راجع القسم المخصص أدناه). إذا كنت تنشر اليوم دون قراءة قسم استكشاف الأخطاء، ثبّت صراحةً dgtlmoon/changedetection.io:0.55.8 في ملف docker-compose.yml حتى صدور الإصلاح.

نشر Changedetection.io على خادمك VPS

  1. النشر بنقرة واحدة من ServOrbit Marketplace

    افتح لوحة تحكم ‎ServOrbit‎، انتقل إلى ‎Marketplace → Monitoring & Observability → Changedetection.io‎، ثم انقر على نشر. يسحب ‎Docker‎ الصورة dgtlmoon/changedetection.io:latest ويشغّل الحاوي. تصبح واجهة الويب متاحة على المنفذ 5000 في أقل من 10 ثوانٍ — دون إنشاء حساب، دون إعداد مبدئي.

  2. إضافة أول عنوان URL للمراقبة

    انتقل إلى http://<your-vps-ip>:5000. انقر على الزر الأزرق + في أعلى اليمين، الصق عنوان ‎URL‎ الذي تريد مراقبته — صفحة منتج أو إعلان وظيفة أو بوابة عامة — ثم انقر على مراقبة. يسحب ‎Changedetection.io‎ الصفحة فورًا ويحفظها كقاعدة مرجعية. يُجدوَل الفحص التالي وفق فترتك الافتراضية (دقائق أو ساعات).

  3. إضافة فلتر لعزل العنصر الذي يهمك

    بدون فلتر، يكتشف ‎Changedetection.io‎ أي تغيير في الصفحة — بما فيها لافتات الإعلانات والطوابع الزمنية وتحديثات التنقل. للتركيز فقط على حقل السعر أو المخزون، افتح إعدادات المراقبة (أيقونة القلم)، انتقل إلى تبويب الفلاتر، وأدخل محدد ‎CSS‎ مثل .price أو #stock-status أو span.availability. يمكنك أيضًا استخدام تعبيرات ‎XPath‎ أو مشغّل بالكلمات المفتاحية (تنبّه فقط عند ظهور نص "In stock" أو اختفائه).

  4. إعداد قناة إشعار

    افتح إعدادات المراقبة → تبويب الإشعارات. يستخدم ‎Changedetection.io‎ مكتبة ‎Apprise‎ للإشعارات. لإرسال رسالة ‎Telegram‎، أدخل tgram://bottoken/chatid. للبريد الإلكتروني، استخدم mailto://user:[email protected]. لـ‎Slack‎، استخدم صيغة عنوان الـ‎webhook‎ slack://tokenA/tokenB/tokenC. يمكنك تراكم عدة قنوات — انخفاضات الأسعار مثلًا يمكن أن تصل إلى ‎Telegram‎ للاستلام الفوري على الهاتف، وتُسجَّل أيضًا في ‎webhook‎ للوحة مراقبتك.

  5. تفعيل Playwright للصفحات المُصيَّرة بـJavaScript (اختياري)

    إذا كانت الصفحة التي تريد مراقبتها تطبيقًا أحاديًا بـ‎React‎ أو ‎Vue‎، أو تحمّل عداد الأسعار بشكل غير متزامن، فلن يرى طلب ‎HTTP‎ البسيط سوى صدفة فارغة. لتفعيل دعم ‎Playwright‎، أضف حاويًا ثانيًا — browserless/chrome أو playwright-stealth — بجانب ‎Changedetection.io‎ في ملف ‎Docker Compose‎، وضع متغير البيئة PLAYWRIGHT_DRIVER_URL ليشير إليه. في إعدادات المراقبة، بدّل الـ‎Fetch Backend‎ إلى playwright. سيُشغّل ‎Changedetection.io‎ حينئذٍ متصفحًا بدون واجهة، وينتظر تصيير الصفحة، ثم يلتقط صورة ‎DOM‎ المباشرة.

  6. أول دخول للنظام

    يفتح ‎Changedetection.io‎ مباشرةً على قائمة المراقبة دون حساب أو بيانات دخول: يمكنك إضافة أول عنوان ‎URL‎ فورًا. أول ما يجب فعله بعد ذلك: فتح ‎Settings → General‎ وتعيين كلمة مرور.

حالات الاستخدام العملية للمطورين والشركات الصغيرة

يغطي ‎Changedetection.io‎ نطاقًا واسعًا بشكل مفاجئ من احتياجات الأتمتة بما يتجاوز مجرد «تنبيهات إعادة التخزين».

الاستخبارات التنافسية: راقب صفحة أسعار منافس بمحدد ‎CSS‎ يستهدف جدول الأسعار. بمجرد تغيّر أي عمود — التحول من الفوترة الشهرية إلى السنوية، أو إضافة طبقة مؤسسية جديدة — تصلك إشعارات فورية دون زيارات يدوية للموقع.

تتبع إصدارات البرمجيات: أعدّ مراقبة على صفحة ‎GitHub Releases‎ لأداة تعتمد عليها. فلتر بالكلمات المفتاحية على v أو Release وإشعار ‎Slack‎: لن تفوتك أي تحديث أمني حرج.

المناقصات العامة والمشتريات: تنشر بوابات المناقصات نتائجها في أوقات غير متوقعة. مراقبة صفحة النتائج بفحص كل ساعة توفّر عليك دخولات يدوية متعددة يوميًا.

تنبيهات إعادة التخزين للتجارة الإلكترونية: فلتر ‎CSS‎ على .in-stock، وفترة 15 دقيقة، وإشعار ‎ntfy‎ على هاتفك — يكفي لاصطياد أي إعادة تخزين لمنتج نافد المخزون.

أي عنوان ‎URL‎، أي عنصر، أي قناة إشعار — مزيج فلاتر ‎CSS‎ والمشغّلات بالكلمات المفتاحية وأكثر من 80 ‎backend‎ في ‎Apprise‎ يجعله وحدة مراقبة قابلة للتركيب حقًا.

التراجعات الفعّالة في الإصدار v0.60.2 — ما تحتاج معرفته

يُدخل الإصدار ‎v0.60.2‎ الصادر في 2 سبتمبر 2026 تراجعَين متزامنَين موثّقَين في متتبّع ‎GitHub‎:

التراجع الأول — زر «Recheck» يُعيد خطأ HTTP 404 (المشكلة #4369). حوّل تمرير تحسين الأمان نقطة نهاية من ‎GET‎ إلى ‎POST‎ فقط دون إنشاء معالج ‎POST‎ المقابل. يفشل زر إعادة الفحص اليدوي عند كل استدعاء. حلٌّ مؤقت متاح إذا كنت تستخدم ‎Traefik‎ كـ‎reverse proxy‎: أضف متغير البيئة SOCKETIO_CORS_ORIGINS=https://<your-domain> إلى الحاوي. فُتح طلب سحب (#4370) في اليوم ذاته من قِبل الفريق؛ لم يُدمج حتى 5 سبتمبر 2026.

التراجع الثاني — «Time Between Check» يتوقف عن الإطلاق بعد التحديث (المشكلة #4368). لم تعد فترة الفحص المجدول تُنفَّذ بعد الترقية إلى ‎v0.60.2‎. تبدو المراقبات النشطة في الواجهة لكنها لا تُطلق أي فحص تلقائي. سيكون زر ‎Recheck‎ اليدوي الحلَّ المؤقت الوحيد — لكنه مُعطَّل بدوره بسبب التراجع الأول.

التوصية: ابقَ على الإصدار ‎v0.55.8‎ أو ارجع إليه إذا كنت قد حدّثت بالفعل، حتى صدور إصلاح ‎v0.60.x‎ يُعالج المشكلتين معًا. يُفصّل القسم التالي إجراء التحديث الآمن مع تثبيت الإصدار.

تحديث Changedetection.io بأمان — وتثبيت الإصدار

  1. لا تستخدم وسم `latest` في بيئة الإنتاج أبدًا

    يتتبع وسم latest تلقائيًا أحدث وسم منشور على ‎Docker Hub‎. قد يُدخل تحديث صامت (‎Docker Watchtower‎، سحب تلقائي عند إعادة التشغيل) تراجعًا دون علمك. ثبّت دائمًا إصدارًا محددًا في ملف docker-compose.yml:

    services:
      changedetection:
        image: dgtlmoon/changedetection.io:0.55.8

    حدّث الإصدار يدويًا وبوعي، بعد مراجعة سجل التغييرات على ‎GitHub‎ والمشكلات المفتوحة للإصدار المستهدف.

  2. نسخ احتياطي من datastore قبل أي تحديث

    تعيش جميع الإعدادات وسجل اللقطات في وحدة التخزين المُركّبة على /datastore. قبل تغيير الإصدار:

    docker compose stop changedetection
    cp -r /opt/changedetection/datastore /opt/changedetection/datastore.bak-$(date +%Y%m%d)

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

  3. التحديث إلى إصدار محدد

    عدّل ملف docker-compose.yml ليشير إلى الوسم الجديد، ثم اسحب الصورة وأعد التشغيل:

    docker compose pull changedetection
    docker compose up -d changedetection

    تحقق أن الإصدار المعروض في ‎Settings → General‎ يطابق الإصدار الذي ثبّتّه. إذا لم يعمل شيء ما — زر ‎Recheck‎ معطوب أو توقف الفحوصات المجدولة — فلديك نسختك الاحتياطية للعودة الفورية.

  4. الرجوع من v0.60.2 إلى v0.55.8

    إذا حدّثت بالفعل إلى ‎v0.60.2‎ وتلاحظ التراجعين الموصوفين أعلاه، إليك الإجراء:

    docker compose stop changedetection
    # عدّل image: إلى dgtlmoon/changedetection.io:0.55.8 في docker-compose.yml
    docker compose pull changedetection
    docker compose up -d changedetection

    مخزن البيانات ‎datastore‎ متوافق بين الإصدارين: تُحفظ مراقباتك وفلاتركم وسجلات لقطاتكم.

اختر فترة فحص أطول (30 إلى 60 دقيقة) للمواقع العامة لتكون مواطنًا محترمًا على الويب وتتجنب التقييد بمعدل الطلبات أو الحجب بالـ‎IP‎. فعّل خيار التوزيع العشوائي للتوقيت لتوزيع الفحوصات على كامل نافذة الفترة وتجنب استجواب الخادم الهدف في الثانية ذاتها في كل مرة. إذا كان الفحص يجب أن يكون متكررًا (كل 5 دقائق)، فضّل استهداف عنصر محدد جدًا عبر محدد ‎CSS‎ بدلًا من الصفحة بأكملها: يُسرّع ذلك حساب الفروقات ويُنتج نتائج إيجابية كاذبة أقل.

ابدأ مراقبة المواقع — انشر Changedetection.io على خادم ServOrbit VPS

تثبيت بنقرة واحدة، أقل من 256 ميغابايت RAM، 80+ قناة إشعار.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة