ديسكو - أداة إدارة حوارات الصدفة التفاعلية مع إشعارات تيليجرام

disco - أداة إدارة Discourse عبر واجهة تفاعلية مع إشعارات تيليجرام

:information_source: ملخص غلاف سطر أوامر لإدارة Discourse مع واجهة قائمة تفاعلية وإشعارات تيليجرام تلقائية لعمليات الصيانة
:hammer_and_wrench: رابط المستودع GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild · GitHub
:open_book: التوثيق دليل التثبيت · البدء السريع · أمثلة

:wave: مقدمة

مرحبًا بالجميع!

أود مشاركة حل قمت بإنشائه أثناء إدارة منتدى مجتمعي. مثل الكثير منكم، لدي مجموعة تيليجرام لمجتمعي، وكنت أتلقى باستمرار أسئلة حول “هل المنتدى معطل؟” أو “متى ستنتهي الصيانة؟” كلما احتجت إلى تحديث أو إعادة تشغيل Discourse.

ولحل هذه المشكلة (وتبسيط حياتي)، قمت ببناء disco - غلاف سطر أوامر لإدارة Discourse يتضمن إشعارات تيليجرام تلقائية وواجهة قائمة تفاعلية.


:dart: المشكلة التي يحلها

  • لا مزيد من أسئلة “هل المنتدى معطل؟” - إشعارات تلقائية لمجموعة تيليجرام الخاصة بك
  • إدارة مبسطة - قائمة تفاعلية بدلاً من تذكر أوامر التشغيل
  • الأمان أولاً - تأكيدات للعمليات الخطرة (إعادة البناء، الإيقاف، التنظيف)
  • رؤية أفضل - حالة فورية، سجلات، ومراقبة الموارد
  • استكشاف أسرع للأخطاء - جميع العمليات في مكان واحد مع مخرجات واضحة

:sparkles: الميزات

:video_game: واجهة قائمة تفاعلية

شغّل disco بدون أي معطيات للحصول على قائمة رقمية جميلة:

╔════════════════════════════════════════════════════════════╗
║  🚀 Discourse Manager v1.2.0                        ║
║  📦 Container: app | Status: 🟢 Running          ║
╚════════════════════════════════════════════════════════════╝

 1.  📊 عرض الحالة
 2.  🔄 إعادة تشغيل الحاوية
 3.  📝 عرض السجلات (آخر 100 سطر)
 4.  📺 مراقبة مباشرة
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 5.  🔧 إعادة بناء كاملة (مع التحديثات) ⚠
 6.  ⚡ إعادة بناء سريعة
 7.  💾 إنشاء نسخة احتياطية
 8.  🧹 تنظيف موارد Docker ⚠
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 9.  ▶️  تشغيل الحاوية
10.  ⏸️  إيقاف الحاوية ⚠
11.  🐚 الدخول إلى غلاف الحاوية
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12.  📥 تحديث المشغّل
13.  📱 اختبار إشعارات تيليجرام
14.  ⚙️  عرض الإعدادات
15.  🔄 تحديث disco
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 0.  ❌ الخروج

الميزات:

  • اكتب رقمًا فقط (1-15) لاختيار الإجراء
  • حالة الحاوية في الوقت الفعلي في الرأس
  • تحذيرات بصرية (:warning:) للعمليات الحرجة
  • تأكيدات أمان - اكتب “yes” لتأكيد الإجراءات الخطرة
  • اكتشاف ذكي لـ sudo - يحذرك عند الحاجة إلى صلاحيات الجذر

:iphone: إشعارات تيليجرام

تحافظ الإشعارات التلقائية على اطلاع مجتمعك:

عند بدء إعادة البناء:

🔧 المنتدى يدخل في وضع الصيانة

⏱ الوقت المتوقع: ~10 دقائق

نعتذر عن الإزعاج المؤقت.

عند الانتهاء:

✅ عاد المنتدى إلى العمل!

⏱ وقت الصيانة: 7 دقائق و57 ثانية
🔖 الإصدار: 3.2.0.beta4

شكرًا لصبركم! 🚀

في حالة الأخطاء:

❌ فشل تحديث المنتدى

⏱ مدة المحاولة: 3 دقائق و12 ثانية

⚠️ يتطلب انتباه المسؤول!
تحقق من السجلات: disco logs

:bar_chart: المراقبة والتشخيص

نظرة عامة على الحالة:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 حالة Discourse
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📦 الحاوية: app
🟢 الحالة: قيد التشغيل
⏱  مدة التشغيل: 3 أيام
🔖 الإصدار: 3.2.0.beta4
💻 المعالج: 2.5%
🧠 الذاكرة: 1.2 جيجابايت / 4 جيجابايت

الميزات:

  • استخدام المعالج والذاكرة في الوقت الفعلي
  • تتبع مدة تشغيل الحاوية
  • اكتشاف تلقائي للإصدار عبر واجهة برمجة التطبيقات
  • مراقبة السجلات المباشرة مع وضع المتابعة
  • لوحة تحكم لمراقبة الموارد

:shield: ميزات الأمان

  • مطالبات التأكيد للعمليات الحرجة (إعادة البناء، الإيقاف، التنظيف)
  • اكتشاف sudo - يحذرك عند الحاجة إلى صلاحيات
  • عرض الإصدار - تعرف دائمًا على الإصدار قيد التشغيل
  • تحذيرات مفصلة - يشرح بالضبط ما ستفعله كل إجراء حرج

:zap: عمليات سريعة

جميع عمليات Discourse القياسية متاحة:

  • إدارة الحاويات - تشغيل، إيقاف، إعادة تشغيل، الدخول إلى الغلاف
  • الصيانة - إعادة بناء (كاملة/سريعة)، نسخ احتياطي، تنظيف
  • المراقبة - الحالة، السجلات، مراقبة الموارد المباشرة
  • التحديثات - تحديثات المشغّل بأمر واحد

:inbox_tray: التثبيت

تثبيت سريع

# تحميل وتثبيت
curl -o disco https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/disco
chmod +x disco
sudo mv disco /usr/local/bin/

# التحقق من التثبيت
disco version

# تشغيل القائمة التفاعلية
disco

:gear: الإعداد

الإعداد الأساسي

أنشئ ملف إعدادات في أحد المواقع التالية:

  • ~/.disco.env (موصى به)
  • /etc/disco/.env
  • بجانب السكربت
# نسخ إعدادات المثال
curl -o ~/.disco.env https://raw.githubusercontent.com/DigneZzZ/discourse-cli/main/.env.example

# تعديل الإعدادات
nano ~/.disco.env

مثال على الإعدادات

# الإعدادات الأساسية
DISCOURSE_PATH=/var/discourse
CONFIG_NAME=app

# إشعارات تيليجرام (اختياري)
TELEGRAM_BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_CHAT_ID=-1001234567890
TELEGRAM_THREAD_ID=1

إعداد إشعارات تيليجرام

1. إنشاء بوت:

  • أرسل رسالة إلى @BotFather على تيليجرام
  • أرسل أمر /newbot
  • اتبع التعليمات
  • احفظ رمز البوت

2. الحصول على معرف الدردشة:

  • أرسل أي رسالة إلى البوت الخاص بك
  • قم بزيارة: https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
  • ابحث عن "chat":{"id":...} في الاستجابة

3. الحصول على معرف الموضوع (للمجموعات التي تحتوي على مواضيع):

  • أرسل رسالة إلى الموضوع المطلوب في مجموعتك
  • في استجابة getUpdates، ابحث عن message_thread_id

4. اختبار الإشعارات:

disco test-telegram

:rocket: الاستخدام

القائمة التفاعلية (موصى به)

# تشغيل القائمة التفاعلية
disco

# مع sudo للإجراءات الإدارية
sudo disco

ما عليك سوى كتابة رقم الإجراء الذي تريد تنفيذه!

وضع سطر الأوامر

للأتمتة أو العمليات السريعة:

# الحالة والمراقبة
disco status                    # عرض حالة الحاوية
disco logs                      # عرض آخر 100 سطر
disco logs 500                  # عرض آخر 500 سطر
disco monitor                   # مراقبة الموارد في الوقت الفعلي

# إدارة الحاويات
sudo disco start                # تشغيل الحاوية
sudo disco stop                 # إيقاف الحاوية
sudo disco restart              # إعادة تشغيل الحاوية
disco enter                     # الدخول إلى غلاف الحاوية

# الصيانة
sudo disco rebuild              # إعادة بناء كاملة مع التحديثات
sudo disco fast-rebuild         # إعادة بناء سريعة (بدون تحديث المشغّل)
sudo disco backup               # إنشاء نسخة احتياطية (تلقائي الاسم)
sudo disco backup my-name       # إنشاء نسخة احتياطية (اسم مخصص)
sudo disco cleanup              # تنظيف موارد Docker

# أدوات مساعدة
sudo disco update-launcher      # تحديث مشغّل Discourse
disco test-telegram             # اختبار إشعارات تيليجرام
disco show-config               # عرض إعدادات disco
disco version                   # عرض الإصدار
disco help                      # عرض المساعدة

:page_facing_up: الإعدادات

الاسم الوصف الافتراضي مطلوب
DISCOURSE_PATH المسار إلى دليل تثبيت Discourse /var/discourse لا
CONFIG_NAME اسم تكوين الحاوية app لا
TELEGRAM_BOT_TOKEN رمز بوت تيليجرام من @BotFather - لا (للإشعارات)
TELEGRAM_CHAT_ID معرف الدردشة أو المجموعة على تيليجرام للإشعارات - لا (للإشعارات)
TELEGRAM_THREAD_ID معرف الموضوع في المجموعة التي تحتوي على مواضيع - لا (اختياري)

:bulb: حالات الاستخدام

مدير المجتمع

  • إبقاء المجتمع على اطلاع تلقائي أثناء الصيانة
  • لا مزيد من أسئلة “هل المنتدى معطل؟”
  • إشعارات صيانة احترافية

مسؤول النظام

  • قائمة تفاعلية للمهام الإدارية العرضية
  • تمنح تأكيدات الأمان الحوادث
  • وصول سريع إلى السجلات والحالة

فرق DevOps

  • وضع سطر الأوامر للأتمتة والسكربتات
  • عمليات متسقة بين أعضاء الفريق
  • تكامل سهل مع أنظمة المراقبة

:chart_with_upwards_trend: الأثر في العالم الحقيقي

منذ نشر هذه الأداة:

  • :white_check_mark: صفر أسئلة “هل المنتدى معطل؟” في مجموعة تيليجرام لدينا
  • :white_check_mark: عمليات صيانة أسرع - لا حاجة للتبديل بين الطرفية ورسائل الدردشة
  • :white_check_mark: أخطاء أقل أثناء التحديثات - تعمل تأكيدات الأمان!
  • :white_check_mark: مراقبة أفضل - وصول سريع إلى السجلات واستخدام الموارد

:books: التوثيق


:heart: لماذا بنيت هذا

إدارة Discourse عبر المشغّل القياسي قوية، ولكن:

  • الأوامر صعبة التذكر
  • لا يوجد نظام إشعارات مدمج للمجتمع
  • من السهل ارتكاب أخطاء في العمليات الحرجة
  • أعضاء المجتمع يسألون دائمًا عن وقت التوقف

يغلف disco المشغّل بواجهة سهلة الاستخدام ويبقي الجميع على اطلاع تلقائيًا.


:handshake: المساهمة

المساهمات مرحب بها! إذا كانت لديك أفكار أو اقتراحات:

  1. انسخ المستودع
  2. أنشئ فرعًا للميزة
  3. قم بتغييراتك
  4. أرسل طلب سحب (Pull Request)

أو ببساطة افتح مشكلة مع ملاحظاتك!


:page_with_curl: الترخيص

رخصة MIT - مجانية تمامًا للاستخدام والتعديل.



مستودع GitHub: GitHub - DigneZzZ/discourse-cli: Discourse CLI interface with TG events when rebuild · GitHub

إعجابَين (2)