[{"data":1,"prerenderedAt":138},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-ntfy-على-vps-إشعارات-فورية-من-سكريبتاتك-وcicd-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":80,"ctaBody":81,"ctaButton":82,"ctaUrl":83,"relatedPosts":84},194,"استضافة-ntfy-على-vps-إشعارات-فورية-من-سكريبتاتك-وcicd",{"fr":10,"en":11,"ar":8},"self-host-ntfy-vps","self-host-ntfy-on-a-vps-push-notifications-for-scripts-and-cicd","استضافة ntfy على VPS: إشعارات فورية من سكريبتاتك وCI\u002FCD","انشر ntfy على VPS الخاص بك وأرسل إشعارات push من أي سكريبت أو مهمة cron أو خط CI\u002FCD بأمر curl بسيط — بدون SaaS أو API key أو اشتراك.",4,0,false,"2026-07-28T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-ntfy-vps-poster.svg",{"categorySlug":30,"appSlug":31},"المراقبة-وقابلية-الرصد","ntfy","Slack يُكلف بالمقعد. رسائل البريد الإلكتروني تضيع في الضوضاء. ntfy (Apache 2.0، ~32 ألف ⭐، v2.26.3) يحل المشكلة بطريقة مختلفة: خادم pub\u002Fsub HTTP خفيف الوزن تستضيفه ذاتيًا على VPS، ويرسل إليه أي سكريبت تنبيهًا بـ `curl -d`. يتلقى التطبيق المحمول الإشعار فورًا. حاوية Docker واحدة، أقل من 30 ميغابايت RAM، لا حساب مطلوب.",[34,38,50,53,76],{"type":35,"title":36,"body":37},"h2","المشكلة: أدوات مراقبة كثيرة وقنوات إشعارات متفرقة","Uptime Kuma يراقب خدماتك، Beszel يراقب مقاييس VPS، Changedetection.io يراقب صفحاتك، ومهام cron تصمت ليلًا — إلا حين تفشل. لكل أداة قناة إشعارات خاصة: Slack، بريد إلكتروني، webhook، Telegram. النتيجة: خمس تكاملات مختلفة للصيانة وعدم وجود رؤية موحدة حين يتعطل شيء الساعة 3 صباحًا. يحل ntfy هذه المشكلة بطريقة معكوسة: أنت تستضيف مركز الإشعارات، وكل أداة أو سكريبت يرسل تنبيهاته إليه عبر HTTP بسيط.",{"type":39,"title":40,"items":41},"ul","ما يمنحك إياه ntfy مباشرةً",[42,43,44,45,46,47,48,49],"أرسل إشعارًا بأمر curl بسيط — `curl -d \"فشل البناء\" http:\u002F\u002Fvps\u002Fتنبيهات-ci` — بدون SDK أو مكتبة.","استقبل الإشعارات على Android وiOS والمتصفح وواجهة ntfy الويب — جميعها تشترك في نفس الموضوع.","إجراءات الإشعارات — أزرار تُطلق استدعاءات HTTP أو تفتح URLs أو تُشغّل أوامر على الجهاز.","إشعارات مجدولة — تسليم مؤجل (`X-Delay: 30min`) لجدولة التذكيرات من السكريبتات.","مستويات الأولوية (دنيا \u002F منخفضة \u002F افتراضية \u002F عالية \u002F عاجلة) مع تجاوز وضع عدم الإزعاج.","مرفقات — صور أو ملفات حتى 15 ميغابايت عبر رأس `X-Attach`.","التحكم في الوصول — أضف مستخدمين وكلمات مرور وقوائم تحكم بالوصول عبر ntfy CLI.","أقل من 30 ميغابايت RAM وSQLite وحاوية واحدة — أخف خادم إشعارات push مستضاف ذاتيًا.",{"type":35,"title":51,"body":52},"البنية: pub\u002Fsub HTTP في حاوية واحدة","ntfy هو ثنائي Go يعمل في حاوية Docker واحدة. يكشف واجهة HTTP بسيطة: `PUT` أو `POST` على `\u002Fموضوعك` ينشر رسالة؛ أي عميل يستمع لهذا الموضوع (عبر WebSocket أو SSE أو التطبيق المحمول) يتلقاها فورًا. تُخزَّن الرسائل في SQLite مع استبقاء قابل للتكوين (12 ساعة افتراضيًا). `NTFY_BEHIND_PROXY=true` يخبر ntfy أنه خلف nginx.",{"type":54,"title":55,"items":56,"steps":72},"steps","نشر واستخدام ntfy في 5 خطوات",[57,60,63,66,69],{"title":58,"body":59},"انشر ntfy من متجر ServOrbit","افتح لوحة ServOrbit → السوق → المراقبة → ntfy → نشر. يسحب Docker صورة `binwiederhier\u002Fntfy:latest` ويبدأ ntfy على المنفذ 8080، وتكون واجهة الويب متاحة في أقل من 5 ثوانٍ.",{"title":61,"body":62},"أرسل أول إشعار","من أي طرفية بها curl:\n```bash\ncurl -d \"مرحبًا من VPS الخاص بي\" http:\u002F\u002Fip-vps:8080\u002Fموضوعي\n```\nافتح واجهة ntfy الويب على نفس العنوان، انتقل إلى `موضوعي` وسترى رسالتك مباشرة.",{"title":64,"body":65},"اشترك على هاتفك","ثبّت تطبيق ntfy (Android: F-Droid أو Play Store؛ iOS: App Store). اضغط +، أدخل URL الخادم واسم الموضوع. ستتلقى إشعارات push فور نشر أي شيء — حتى عندما يكون التطبيق في الخلفية.",{"title":67,"body":68},"اربط أدوات المراقبة","في Uptime Kuma: الإعدادات → الإشعارات → ntfy → أدخل URL الخادم والموضوع. كرر مع Beszel وChangedetection.io وGrafana — كل أداة بموضوع مختلف على نفس خادم ntfy. جميع تنبيهاتك في مكان واحد.",{"title":70,"body":71},"أرسل تنبيهات من السكريبتات ومهام cron","أضف سطرًا لكل سكريبت حرج:\n```bash\n# عند النجاح\ncurl -H \"Title: نسخ احتياطي ليلي\" -H \"Priority: high\" -d \"اكتمل في $(date)\" http:\u002F\u002Fvps:8080\u002Fcron-jobs\n# عند الفشل\ncurl -H \"Tags: warning\" -d \"فشل: كود $?\" http:\u002F\u002Fvps:8080\u002Fcron-jobs\n```\nالصمت يصبح إشارة الخطأ؛ الإشعار يؤكد التنفيذ الطبيعي.",[73],{"title":74,"body":75},"أول تسجيل دخول","يبدأ ntfy دون أي حساب أو كلمة مرور: يفتح الرابط الواجهة مباشرة، وكل من يعرف العنوان يمكنه القراءة والنشر في أي موضوع. وإذا كان خادمك متاحاً من الإنترنت، فعّل المصادقة قبل استخدامه بشكل جدّي.",{"type":77,"title":78,"body":79},"tip","نصيحة: أسماء المواضيع كفضاءات أسماء","نظّم تنبيهاتك حسب المصدر: `ci-builds` لـ GitHub Actions\u002FGitLab CI، `server-alerts` لـ Uptime Kuma\u002FBeszel، `cron-jobs` للسكريبتات. يتيح تطبيق ntfy كتم بعض المواضيع ليلًا مع إبقاء `server-alerts` على أعلى أولوية.","مركز إشعاراتك تحت سيطرتك","انشر ntfy على VPS من ServOrbit وأجمع كل تنبيهات المراقبة وCI\u002FCD ومهام cron في مركز إشعارات مستضاف ذاتيًا — بلا SaaS وبلا اشتراك.","نشر ntfy","\u002Fmarketplace\u002Fالمراقبة-وقابلية-الرصد\u002Fntfy",[85,101,122],{"id":86,"slug":87,"slugs":88,"title":91,"excerpt":92,"readTime":93,"views":15,"isPinned":16,"publishedAt":94,"category":95,"categories":96,"featuredImage":26,"bgImage":27,"posterImage":98,"relatedSolution":99},133,"استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم",{"fr":89,"en":90,"ar":87},"self-host-beszel-vps","self-host-beszel-multi-server-monitoring-hub-on-your-vps","استضف Beszel على VPS: المراقبة والتنبيهات والأمان","انشر Beszel على VPS، راقب كامل أسطولك من مركز واحد، هيّئ تنبيهات Telegram والبريد الإلكتروني، فعّل المصادقة الثنائية وحلّ مشاكل الوكلاء الصامتين وأخطاء TLS والمنافذ المحجوبة.",10,"2026-02-14T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[97],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":30,"appSlug":100},"beszel",{"id":102,"slug":103,"slugs":104,"title":107,"excerpt":108,"readTime":14,"views":109,"isPinned":16,"publishedAt":110,"category":111,"categories":117,"featuredImage":26,"bgImage":27,"posterImage":119,"relatedSolution":120},167,"استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا",{"fr":105,"en":106,"ar":103},"self-host-dozzle-vps","how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer","استضافة Dozzle على VPS: عارض سجلّات Docker لحظياً","انشر Dozzle على خادم VPS الخاص بك — عارض سجلّات Docker مفتوح المصدر وعديم الحالة. ابثّ سجلّات جميع حاوياتك وابحث فيها وتابِعها في المتصفح، دون SSH أو تخزين للسجلّات.",1,"2026-07-06T00:00:00+00:00",{"id":112,"name":113,"slug":114,"color":115,"icon":116},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[118],{"id":112,"name":113,"slug":114,"color":115,"icon":116},"\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":30,"appSlug":121},"dozzle",{"id":123,"slug":124,"slugs":125,"title":128,"excerpt":129,"readTime":130,"views":15,"isPinned":16,"publishedAt":131,"category":132,"categories":133,"featuredImage":26,"bgImage":27,"posterImage":135,"relatedSolution":136},182,"استضافة-changedetectionio-على-vps-مراقبة-تغييرات-المواقع",{"fr":126,"en":127,"ar":124},"self-host-changedetection-vps","self-host-changedetectionio-on-a-vps-monitor-any-website","استضافة Changedetection.io على VPS: مراقبة تغييرات المواقع","انشر Changedetection.io على خادمك — أداة مراقبة مفتوحة المصدر مع فلاتر CSS\u002FXPath و80+ قناة إشعار ودعم Playwright الاختياري للصفحات المُصيَّرة بـ JavaScript.",5,"2026-07-17T00:00:00+00:00",{"id":112,"name":113,"slug":114,"color":115,"icon":116},[134],{"id":112,"name":113,"slug":114,"color":115,"icon":116},"\u002Fblog\u002Fcovers\u002Fself-host-changedetection-vps-poster.svg",{"categorySlug":30,"appSlug":137},"changedetection",1787580942941]