لماذا تستضيف Huginn ذاتيًا على خادم VPS
بينما ينسّق Node-RED التدفقات عبر السحب والإفلات، يفكّر Huginn على شكل وكلاء يشتركون ويُصدرون "events". تكمن قوته الكبرى في مراقبة الويب: يستخرج الـ Website Agent محتوى صفحة عبر محددات CSS أو XPath، ويكتشف التغييرات، ويطلق وكيلًا آخر عند تحقق شرط ما. يُستخدم لتتبّع سعر، أو مراقبة توفّر منتج، أو تجميع مصادر RSS، أو تلقّي تنبيه عند تغيّر صفحة — دون الاعتماد على IFTTT أو Zapier اللذين يفرضان رسومًا ويضعان حدودًا على عدد عمليات التنفيذ. باستضافته الذاتية على خادم VPS، يعمل Huginn باستمرار، ويحافظ على خصوصية سيناريوهاتك وبيانات اعتمادك، ولا يفرض أي حد على عدد الوكلاء أو عمليات الفحص.
الفوائد الملموسة للاستضافة الذاتية
- وكلاء مراقبة ويب عبر محددات CSS/XPath، مع اكتشاف التغييرات.
- سيناريوهات متسلسلة: يطلق event من وكيلٍ إجراءَ وكيلٍ آخر.
- تنبيهات عبر البريد الإلكتروني أو webhook أو Telegram أو الرسائل القصيرة وفق شرط مخصّص.
- تجميع خلاصات RSS وواجهات API متعددة في لوحة تحكم واحدة.
- لا حدود على عمليات التنفيذ ولا فوترة حسب المهمة، على خلاف خدمات SaaS.
- بيانات الاعتماد وسيناريوهات المراقبة محفوظة بخصوصية على خادم VPS الخاص بك.
المتطلبات العتادية والبرمجية
Huginn تطبيق مبني على Ruby on Rails مصحوب بقاعدة بيانات (MySQL/MariaDB أو PostgreSQL) وبعمّال (workers) في الخلفية، ما يجعله أكثر استهلاكًا للموارد من Node-RED. خصّص خادم VPS بذاكرة 2 vCPU / 2 غيغابايت RAM كحد أدنى، ويُفضّل 4 غيغابايت إن كنت تشغّل عددًا كبيرًا من الوكلاء بالتوازي. احسب من 10 إلى 20 غيغابايت من القرص للتطبيق وقاعدة البيانات وسجل الـ events. على الصعيد البرمجي: Ubuntu 22.04، وDocker وDocker Compose (المسار الأبسط الذي يجمع التطبيق + قاعدة البيانات + الـ worker)، وحساب SMTP لإشعارات البريد الإلكتروني، ونطاق فرعي من نوع agents.mydomain.com.
النشر خطوة بخطوة
تحضير الحزمة
عبر SSH، ثبّت Docker وDocker Compose. احصل على ملف docker-compose.yml الرسمي الخاص بـ Huginn، الذي يعرّف ثلاث خدمات: تطبيق الويب، وقاعدة البيانات، والـ worker الذي ينفّذ الوكلاء على فترات منتظمة.
ضبط متغيرات البيئة
املأ المتغيرات الحيوية: APP_SECRET_TOKEN (المولّد بواسطة openssl rand -hex 64)، وDOMAIN=agents.mydomain.com، وإعدادات SMTP (SMTP_USER_NAME وSMTP_PASSWORD وSMTP_SERVER) لتفعيل الإشعارات وإنشاء الحسابات.
التشغيل وتهيئة قاعدة البيانات
ابدأ بالأمر docker compose up -d. عند أول تشغيل، يُنشئ Huginn مخطط قاعدة البيانات وحساب مسؤول افتراضيًا (admin / password): سجّل الدخول وغيّر كلمة المرور هذه فورًا.
التحقق من الـ worker
تحقّق من أن الـ worker يعمل باستخدام docker compose logs -f. فهو الذي يوقظ الوكلاء وفق جدولتهم (schedule): من دون worker نشط، لن يُنفَّذ وكلاء المراقبة لديك أبدًا.
إعداد الوكيل العكسي وشهادة SSL
ضع Caddy أو Nginx أمام المنفذ 3000 الذي يعرضه Huginn لـ agents.mydomain.com، مع شهادة Let's Encrypt. تأكّد من أن DOMAIN يطابق النطاق العام، وإلا ستُصبح الروابط في رسائل البريد الإلكتروني معطّلة.
إنشاء أول وكيل
في الواجهة، أنشئ Website Agent يراقب صفحة، واضبط استخراج CSS، ثم اربطه بـ Email Agent. شغّل "Dry Run" للتحقق من الاستخراج قبل تفعيل الجدولة.
من أجل استخراج موثوق، اختبر محددات CSS/XPath عبر "Dry Run" لكل وكيل قبل الجدولة: سترى الـ events المُنتَجة دون إطلاق أي إجراء فعلي. اجمع بين Website Agent وEvent Formatting Agent وTrigger Agent (شرط على قيمة) لتلقّي تنبيه فقط عند تجاوز عتبة معيّنة — مثلًا سعر ينخفض دون هدف محدّد — بدلًا من تلقّي إشعار عند كل عملية فحص. احرص على ضبط schedule بشكل معقول (كل ساعة بدلًا من كل دقيقة) حتى لا تحظرك المواقع التي تراقبها.