شغّل خادم مراقبة الشبكة الخاص بك
ثبّت الإصدار بلا واجهة على مضيف Linux أو Windows أو Docker، فيصبح DeviceShelf مجمّعاً محلياً لاكتشاف الأجهزة، ووقت التشغيل/SLA، وصحة البنية التحتية، وفحوص الخدمات، والنبضات، والتنبيهات، والتقارير، وأتمتة API، وPrometheus وMCP. نفس ترخيص سطح المكتب والهاتف.
ماذا يفعل إصدار الخادم
مراقبة دائمة
يعمل بلا واجهة على مدار الساعة ويظل يراقب الشبكات التي تهمّك — حتى عندما يكون حاسوبك مطفأً.
تتبّع وقت التشغيل & SLA
توفّر يومي لكل جهاز وخدمة، مع إعادة المحاولات والتبعيات وتصدير CSV.
تنبيهات دون طوفان
بريد/SMTP، وntfy، وGotify، وwebhooks — مع توجيه حسب الخطورة وتجميع في مُلخّصات.
صفحة حالة عامة
صفحة صحة اختيارية للقراءة فقط يمكن للجميع رؤيتها — دون تسجيل دخول.
اكتشاف عبر الشبكات الفرعية
دعم SNMP وبطاقات شبكة متعددة للوصول إلى شبكات خارج المقطع المحلي.
اسأل ذكاءك الاصطناعي (MCP)
اعرض جردك الحيّ لمساعد ذكاء اصطناعي — محلي بحت، للقراءة فقط، معطّل افتراضياً.
تقارير وحالة ونسخ احتياطي
نسبة وقت التشغيل، وأشرطة توفّر يومية، وتصدير CSV، وصفحة حالة عامة للقراءة فقط، واستيراد/تصدير الإعدادات.
REST API وPrometheus
كل شيء قابل للبرمجة عبر واجهة API المحمية بالرمز، مع `/metrics` لـ Grafana والأتمتة.
Home Assistant
ينشر أجهزتك في Home Assistant عبر MQTT. الحضور والمُصنّع والنوع، إضافة إلى أحداث الشبكة التي يمكن لأتمتة أن تتفاعل معها.
Docker الأسهل
احفظ هذا باسم docker-compose.yml وشغّل docker compose up -d. تتيح له network_mode: host رؤية شبكتك المحلية؛ القدرتان مشروحتان أدناه.
services:
deviceshelf:
image: ghcr.io/wealthwallet/deviceshelf-server:1.9.75
network_mode: host
cap_add:
- NET_RAW # ARP scan (raw sockets)
- NET_BIND_SERVICE # passive DHCP fingerprinting (UDP/67) → Fingerbank
volumes:
- ./data:/data # chown 10001:10001 ./data
restart: unless-stopped
# optional: environment: { DEVICESHELF_FINGERBANK_KEY: "<free key from fingerbank.org>" }
لماذا هاتان القدرتان؟ يُعرّف DeviceShelf Server الأجهزة جزئياً عبر بصمة DHCP الخاصة بها ويستمع بشكل سلبي على منفذ UDP رقم 67. ولأن الحاوية تعمل عمداً كمستخدم غير مميّز (uid 10001)، فإن ربط منفذ النظام هذا يحتاج القدرة المحدودة NET_BIND_SERVICE — دون root، ودون NET_ADMIN، فقط فتح المنافذ المنخفضة. بدونها يبدأ الخادم بشكل طبيعي، لكن دون تعريف DHCP/Fingerbank. NET_RAW لمسح ARP.
Debian / Ubuntu (.deb)
ثبّت من الطرفية — لا تنقر نقراً مزدوجاً. على Ubuntu 24.04، يفتح ملف .deb بالنقر المزدوج في App Center، وقد يفشل بصمت مع حزم الأطراف الثالثة. الطرفية تحلّ التبعيات وتبدأ خدمة deviceshelf-server:
تنزيل .deb — amd64 (Intel/AMD) تنزيل .deb — arm64 (Raspberry Pi)
sudo apt install ./DeviceShelf-Server-*.deb
على ARM (Raspberry Pi، خوادم ARM) استخدم ملف -arm64.deb.
macOS Server (.pkg)
نزّل الحزمة العالمية وافتحها. تُثبّت الخادم كـ LaunchDaemon في الخلفية وتُبقيه يعمل بعد تسجيل الدخول. لوحة التحكم متاحة على المنفذ 8088؛ والتحديثات تحافظ على بيانات الخادم وتنشئ أولاً نسخة احتياطية موثّقة.
Windows Server / Windows 11
نزّل ملف zip، فكّ ضغطه، وانقر نقراً مزدوجاً على install.bat — وأكّد طلب مسؤول Windows (UAC). يُثبّت ويبدأ خدمة 24/7، ثم يُظهر عنوان لوحة التحكم ورمز الوصول ويفتح اللوحة. أزل التثبيت بـ uninstall.bat.
إصدار Windows غير موقّع بعد، لذا قد يحذّر Windows: في SmartScreen انقر مزيد من المعلومات ← تشغيل على أي حال؛ وإذا كان Smart App Control مفعّلاً فإنه يحظر التطبيقات غير الموقّعة تماماً حتى نُطلق إصداراً موقّعاً. قبل فكّ الضغط، يمكنك النقر بالزر الأيمن على zip ← الخصائص ← تحديد إلغاء الحظر. كل التفاصيل في ملف README داخل zip (7 لغات). بصمة DHCP السلبية غير متوفّرة على Windows؛ كل ما عداها — المسح والمراقبة وSNMP والتنبيهات ولوحة التحكم وAPI — مشمول.
البدء الأول: رمز الوصول
عند البدء الأول يطبع الخادم رمز API مُولّداً تلقائياً في سجلّه. خذه، ثم افتح واجهة الويب على المنفذ 8088 والصقه:
# .deb / systemd:
journalctl -u deviceshelf-server | grep -iA1 auto-generated
# Docker:
docker logs deviceshelf-server | grep -iA1 auto-generated
ثم افتح http://<host>:8088 في متصفّحك والصق الرمز.
قراءة الخادم من تطبيقي سطح المكتب والهاتف
لست مضطراً للعمل في لوحة الويب. يقترن تطبيق سطح المكتب لأنظمة macOS وWindows وLinux وتطبيق الهاتف بالخادم ويعرضان بياناته في واجهتهما الخاصة. على سطح المكتب افتح الخوادم البعيدة، واضغط بحث أو أدخل المضيف والمنفذ، ثم الصق رمز API المذكور أعلاه. بعدها اختر الخادم في محدد المصدر فوق قائمة الأجهزة، وحده أو مدموجاً مع الفحص المحلي. ما ينتقل: الأجهزة مع سجلها، والتنبيهات التي يمكنك الإقرار بها، والفحوص، والمراقبة، والحالة، وDocker، وProxmox، والطوبولوجيا.
الأجهزة التي يبلّغ عنها الخادم للقراءة فقط في التطبيقات. إيقاظها أو فحص منافذها أو الاتصال بها كان سينفَّذ من الجهاز الذي بين يديك لا من الخادم، لذلك تبقى هذه الإجراءات للفحص المحلي. إذا أردت أن يكون الخادم هو الفاحص الوحيد، فعطّل الفحص التلقائي في إعدادات تطبيق سطح المكتب.
إشعارات البريد الإلكتروني (SMTP)
أضف حساب بريدك الخاص كمُرسِل في إعدادات التنبيهات بلوحة التحكم. للمزوّدين الشائعين — Gmail وYahoo وOutlook/Hotmail وiCloud وGMX وغيرهم — اترك حقل خادم SMTP فارغاً؛ يكتشف DeviceShelf الخادم الصحيح تلقائياً. بسبب تسجيل الدخول بخطوتين، تتطلب Gmail وYahoo وOutlook كلمة مرور تطبيق (تُنشأ في إعدادات أمان حساب بريدك)، لا كلمة مرورك العادية. لأي مزوّد آخر أو ذاتي الاستضافة، املأ خادم SMTP والمنفذ والأمان. تُرسَل التنبيهات عندئذ عبر حسابك إلى المستلمين الذين تحدّدهم.
مراقب خارجي
كل تنبيه يرسله DeviceShelf ينطلق من جهازك أنت، ولهذا لا يصلك أي تنبيه حين يكون الجهاز نفسه هو المشكلة: انقطاع الكهرباء أو تعطل البرنامج أو انقطاع الخط. المراقب الخارجي يغطي هذه الحالة بالذات. من الإعدادات ← مراقب خارجي تلصق رابط النبض (heartbeat) الخاص بخدمة مراقبة؛ يرسل DeviceShelf نبضة كل 60 ثانية، وحين تتوقف النبضات تنبّهك تلك الخدمة. استخدم Healthchecks.io أو UptimeRobot (مراقب Heartbeat) أو Better Stack أو Cronitor أو مستقبِلًا خاصًا بك — لكلها خطة مجانية تكفي شبكة منزلية. اضبط مهلة السماح هناك على نحو ثلاثة أضعاف الفاصل الزمني، ثم اضغط إرسال نبضة تجريبية مرة واحدة للتأكد من أن كل شيء متصل.
نحن لا نشغّل هذه الخدمة بأنفسنا، وهذا قرار مقصود. المراقب يجب أن يكون أعلى توفرًا مما يراقبه، ويجب أن يكون خارج شبكتك — وهو عكس ما بُني DeviceShelf من أجله تمامًا.
اسأل ذكاءك الاصطناعي عن شبكتك MCP
يستطيع الخادم عرض جردك المباشر لمساعد ذكاء اصطناعي عبر Model Context Protocol. تسأل «ما المتصل الآن؟» أو «لماذا لا أصل إلى جهاز NAS؟» أو «ما مدى خطورة هذه الشبكة؟» فتحصل على إجابات من بياناتك أنت، 37 أداة في المجموع. الأمر محلي بالكامل: نقطة النهاية تعمل داخل خادمك، خلف الرمز نفسه، ولا يمكن الوصول إليها إلا من شبكتك المحلية. لا يوجد موصّل سحابي لـ DeviceShelf. معطّل افتراضياً، للقراءة فقط، ومضمّن في ترخيصك (وفي فترة التجربة أيضاً).
# enable it in the dashboard: Settings → AI assistant → tick "Serve the MCP endpoint"
# (takes effect at once, no restart; a second box allows actions)
# or pin it from /etc/deviceshelf/server.env (or your Docker env), which needs a restart:
DEVICESHELF_MCP_ENABLE=true
# then point Claude Desktop at it via the mcp-remote bridge:
# http://<host>:8088/mcp (Authorization: Bearer <your-token>)
يشرح الإعلان طريقة الإعداد، ويشرح منشور 1.9.14 أدوات استكشاف الأعطال والسجل وWake-on-LAN. تبقى الإجراءات (إعادة تسمية جهاز، تأكيد إنذار، تشغيل فحص، ping أو إيقاظ مضيف) معطّلة حتى تفعّلها صراحةً، ولا تغادر شبكتك الفرعية أبداً.
اربط وكيل الذكاء الاصطناعي MCP
فعّل MCP أولاً (أعلاه)، ثم وجّه عميل الذكاء الاصطناعي إلى نقطة النهاية /mcp للخادم برمز API الخاص بك. استبدل <host> و<token> أدناه. معظم العملاء يتحدثون Streamable HTTP أصلياً:
Claude Code
claude mcp add --transport http deviceshelf http://<host>:8088/mcp \
--header "Authorization: Bearer <token>"
Cursor — ~/.cursor/mcp.json
{ "mcpServers": { "deviceshelf": {
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
VS Code (Copilot agent) — .vscode/mcp.json
{ "servers": { "deviceshelf": {
"type": "http",
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Windsurf — ~/.codeium/windsurf/mcp_config.json (note: serverUrl)
{ "mcpServers": { "deviceshelf": {
"serverUrl": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Cline — cline_mcp_settings.json ("type": "streamableHttp" is required, else it falls back to SSE and fails)
{ "mcpServers": { "deviceshelf": {
"type": "streamableHttp",
"url": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Gemini CLI — ~/.gemini/settings.json (note: httpUrl)
{ "mcpServers": { "deviceshelf": {
"httpUrl": "http://<host>:8088/mcp",
"headers": { "Authorization": "Bearer <token>" }
} } }
Claude Desktop — claude_desktop_config.json. It has no native static-token remote support, so bridge it with mcp-remote (keep --allow-http for plain http; the token goes in an env var to avoid a Windows arg-quoting bug). Fully quit and relaunch after saving.
{ "mcpServers": { "deviceshelf": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://<host>:8088/mcp",
"--transport", "http-only", "--allow-http",
"--header", "Authorization:${AUTH}"],
"env": { "AUTH": "Bearer <token>" }
} } }
موصّلات ChatGPT تعمل في سحابة OpenAI ولا يمكنها الوصول مباشرة إلى خادم على الشبكة المحلية. لاستخدامها، ضع الخادم خلف نفق HTTPS عام (Secure MCP Tunnel من OpenAI، أو ngrok، أو Cloudflare Tunnel) ليصبح له عنوان https://…/mcp. لإعداد محلي بحت، فضّل أحد العملاء أعلاه.
جاهز للتشغيل الدائم
أصبح إصدار الخادم الآن جزءاً من خط منتجات DeviceShelf العادي. لا يزال يتطوّر بسرعة، لكن التموضع بسيط: شغّله باستمرار، وأبقِ بياناتك محلية، واستخدم مفتاح الترخيص نفسه المستخدم في تطبيقات سطح المكتب والهاتف. راجع ملاحظات الإصدار لمعرفة ما تغيّر في هذا الإصدار.
للصورة الأوسع، تتناول مراقبة الشبكة ذاتية الاستضافة ما الذي يمنحك إياه تشغيل المراقبة على أجهزتك الخاصة مقارنةً بلوحة تحكم سحابية.