دليل النشر

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

انشر على VPS Cloud ←

الاستضافة الذاتية9 دقيقة قراءة

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

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

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

تُقدّم خدمات ‎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

01

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

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

02

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

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

03

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

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

04

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

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

05

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

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

06

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

يفتح ‎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 بأمان — وتثبيت الإصدار

01

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

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

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

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

02

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

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

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

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

03

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

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

docker compose pull changedetection
docker compose up -d changedetection

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

04

الرجوع من 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يُفتح في علامة تبويب جديدة