
🔐 لوحة تحكم آمنة للمراقبة في الوقت الفعلي لوكلاء OpenClow AI. المصادقة، التحقق الثنائي TOTP، تتبع التكاليف، التغذية المباشرة، متصفح الذاكرة والمزيد.
لوحة تحكم جميلة وآمنة ومراقبة فورية لوكلاء OpenClaw. تتبع الجلسات، وراقب استخدام واجهة API، وعرض التكاليف، وإدارة ملفات الذاكرة، وتابع صحة النظام — كل ذلك في مكان واحد.

| نظرة عامة | الجلسات | التكاليف |
|---|---|---|
![]() | ![]() | ![]() |
| حدود المعدل | البث المباشر | السجلات |
|---|---|---|
![]() | ![]() | ![]() |
git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git cd openclaw-dashboard
export WORKSPACE_DIR=/path/to/your/openclaw/workspace
node server.js
قم بزيارة `http://localhost:7000` في متصفحك. في الزيارة الأولى، سترى **شاشة التسجيل** حيث تنشئ اسم المستخدم وكلمة المرور. بعد التسجيل، قم بتسجيل الدخول باستخدام بيانات اعتمادك.
## 📦 التثبيت
### المتطلبات الأساسية
- **Node.js** الإصدار 18 أو أعلى (تحقق باستخدام `node --version`)
- **OpenClaw** مثبت ويعمل
- **Systemd** (اختياري، لتثبيت الخدمة على لينكس)
#### التبعيات الاختيارية
| الأداة | مطلوب لـ | التثبيت |
|------|-------------|---------|
| `jq` | صفحة إدارة دوكر | `sudo apt install jq` |
| `tmux` | ماسح استخدام واجهة سطر أوامر Claude | `sudo apt install tmux` |
| `python3` | محلل استخدام واجهة سطر أوامر Claude | عادة ما يكون مثبت مسبقًا |
| `docker` | صفحة إدارة دوكر | [docs.docker.com](https://docs.docker.com/engine/install/) |
### التثبيت اليدوي
1. **استنساخ المستودع** ```bash
git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git
cd openclaw-dashboard
سيقوم الخادم بطباعة: ``` 🚀 Dashboard running on http://localhost:7000 🔑 Recovery token: abc123def456...
**احفظ رمز الاسترداد** — ستحتاج إليه إذا نسيت كلمة المرور.
4. **الوصول إلى لوحة التحكم**
افتح `http://localhost:7000` وسجل حسابك.
### Systemd Service (install.sh)
لتشغيل لوحة التحكم كخدمة نظام مع بدء تلقائي واسترداد الأعطال:```bash
sudo ./install.sh
سيقوم هذا بما يلي:
/etc/systemd/system/agent-dashboard.service/etc/systemd/system/agent-dashboard.service.d/override.confعرض السجلات:```bash journalctl -u agent-dashboard -f
### Docker```bash
# Build
docker build -t openclaw-dashboard .
# Run
docker run -d \
--name openclaw-dashboard \
-p 3001:3001 \
-e WORKSPACE_DIR=/app/workspace \
-e DASHBOARD_ALLOW_HTTP=true \
-v ~/.openclaw:/home/node/.openclaw:ro \
-v ~/.openclaw/workspace:/app/workspace \
openclaw-dashboard
للوصول إلى صفحة إدارة Docker، قم بتمرير مقبس Docker:```bash
docker run -d
--name openclaw-dashboard
-p 3001:3001
-e WORKSPACE_DIR=/app/workspace
-e DASHBOARD_ALLOW_HTTP=true
-v ~/.openclaw:/home/node/.openclaw:ro
-v ~/.openclaw/workspace:/app/workspace
-v /var/run/docker.sock:/var/run/docker.sock:ro
--group-add $(stat -c '%g' /var/run/docker.sock)
openclaw-dashboard
### متغيرات البيئة
| المتغير | الوصف | الافتراضي |
|----------|-------------|---------|
| `DASHBOARD_PORT` | منفذ الخادم | `7000` |
| `DASHBOARD_TOKEN` | رمز الاسترداد لإعادة تعيين كلمة المرور | يتم إنشاؤه تلقائياً عند بدء التشغيل |
| `WORKSPACE_DIR` | مسار مساحة عمل OpenClaw | `$OPENCLAW_WORKSPACE` أو الدليل الحالي |
| `OPENCLAW_DIR` | دليل تكوين OpenClaw | `~/.openclaw` |
| `OPENCLAW_AGENT` | معرف الوكيل للمراقبة | `main` |
| `DASHBOARD_ALLOW_HTTP` | السماح بـ HTTP من عناوين IP غير محلية | `false` |
**أمثلة:**```bash
# Custom port
DASHBOARD_PORT=8080 node server.js
# Custom recovery token
DASHBOARD_TOKEN=my_secret_token_12345 node server.js
# Different workspace
WORKSPACE_DIR=/mnt/data/openclaw node server.js
تستخدم لوحة التحكم مصادقة اسم المستخدم وكلمة المرور مع جلسات آمنة من جانب الخادم.
http://localhost:7000)localStorage)sessionStorage)لمنع هجمات القوة العمياء:
أضف طبقة أمان إضافية باستخدام كلمات المرور لمرة واحدة القائمة على الوقت (TOTP).
بمجرد التفعيل، كل تسجيل دخول يتطلب:
إذا فقدت الوصول إلى تطبيق المصادقة الخاص بك (فقدان الهاتف، إلغاء تثبيت التطبيق، إلخ):
مهم: قم بتعديل المسار /root/clawd/data/credentials.json إذا كان مساحة العمل الخاصة بك في مكان آخر.
إذا نسيت كلمة المرور الخاصة بك:
يتم طباعة رمز الاسترداد (DASHBOARD_TOKEN) عند بدء تشغيل الخادم. يمكنك العثور عليه في عدة أماكن:
journalctl -u agent-dashboard | grep "Recovery token"
المخرجات:```
🔑 Recovery token: 3e6b91f352418b486a9aa9d82fbbc1b1
cat /etc/systemd/system/agent-dashboard.service.d/override.conf
ابحث عن:```ini
Environment=DASHBOARD_TOKEN=3e6b91f352418b486a9aa9d82fbbc1b1
إذا قمت بتعيينه يدويًا:```bash echo $DASHBOARD_TOKEN
### تغيير كلمة المرور
لتغيير كلمة المرور أثناء تسجيل الدخول:
1. اذهب إلى صفحة **الأمان**
2. أدخل **كلمة المرور الحالية**
3. أدخل **كلمة المرور الجديدة**
4. انقر على **"تغيير كلمة المرور"**
5. سيتم إبطال جميع الجلسات الأخرى (ستحتاج إلى تسجيل الدخول مرة أخرى في مكان آخر)
### إعادة تعيين الحساب بالكامل (الخيار النووي)
إذا كان كل شيء مقفلاً ولا يمكنك تسجيل الدخول:
1. **الاتصال عبر SSH بالخادم الخاص بك**
2. **حذف ملف بيانات الاعتماد**:
rm /path/to/credentials.db
bash
rm /root/clawd/data/credentials.json
3. **إعادة تشغيل لوحة المعلومات**: ```bash
systemctl restart agent-dashboard
تحذير: هذا يحذف اسم المستخدم وكلمة المرور وإعدادات MFA. ملفات الذاكرة وسجلات التدقيق لا تتأثر.
تم بناء لوحة التحكم وفق أفضل ممارسات الأمان:
data/audit.log*).bak قبل الكتابة فوق ملفات مساحة العمللوحة التحكم مصممة للوصول المحلي أو عبر Tailscale:
http://localhost:7000http://100.x.x.x:7000
DASHBOARD_ALLOW_HTTP=true)افتراضيًا، لوحة التحكم تحظر الوصول عبر HTTP من عناوين IP غير محلية. الاستثناءات:
بالنسبة للشبكات الأخرى، تتطلب لوحة التحكم HTTPS أو رأس X-Forwarded-Proto: https (من وكيل عكسي).
للسماح بـ HTTP من جميع عناوين IP (غير موصى به):```bash DASHBOARD_ALLOW_HTTP=true node server.js
### لا تعرض للإنترنت العام
**لوحة التحكم هذه ليست مصممة للتعرض للإنترنت العام.** على الرغم من أنها تحتوي على مصادقة وتقييد للمعدل، إلا أنها مصممة للشبكات الخاصة. إذا كان عليك تعريضها:
- استخدم وكيل عكسي (nginx، Caddy) مع HTTPS
- أضف قائمة بيضاء للعناوين IP
- فكر في استخدام VPN (Tailscale، WireGuard) بدلاً من ذلك
## 🛠️ استكشاف الأخطاء وإصلاحها
### "محاولات فاشلة كثيرة جداً"
**المشكلة:** ترى رسالة "محاولات تسجيل دخول فاشلة كثيرة جداً. يرجى المحاولة مرة أخرى لاحقاً."
**الحلول:**
- انتظر **15 دقيقة** لانتهاء فترة الإغلاق المؤقت
- أعد تشغيل الخدمة لمسح حدود المعدل:
``` ```bash
systemctl restart agent-dashboard
المشكلة: تم تغيير كلمة المرور الخاصة بك ولكن لا يمكنك تسجيل الدخول.
الحل: استخدم إجراء "نسيت كلمة المرور؟" باستخدام رمز الاسترداد الخاص بك لتعيين كلمة مرور جديدة.
المشكلة: يتم رفض رمز TOTP المكون من 6 أرقام.
الحلول:
المشكلة: يعرض المتصفح صفحة فارغة أو خطأ في الاتصال.
الحلول:
يجب أن يعيد: ```json {"authenticated": false, "requiresRegistration": false}
### خطأ "HTTPS مطلوب"
**المشكلة:** المتصفح يعرض "HTTPS مطلوب. الوصول عبر localhost أو Tailscale أو تمكين HTTPS."
**الحلول:**
- الوصول عبر **localhost**: `http://localhost:7000`
- الوصول عبر **Tailscale**: `http://100.x.x.x:7000`
- تعيين `DASHBOARD_ALLOW_HTTP=true` في البيئة (غير موصى به): ```bash
# Add to /etc/systemd/system/agent-dashboard.service.d/override.conf
Environment=DASHBOARD_ALLOW_HTTP=true
# Reload and restart
systemctl daemon-reload
systemctl restart agent-dashboard
المشكلة: لوحة التحكم تظهر صفحة فارغة بعد سحب الكود الجديد.
الحلول:
Ctrl+Shift+R (ويندوز/لينكس) أو Cmd+Shift+R (ماك)تعرّض لوحة التحكم واجهة REST API للوصول البرمجي. تتطلب جميع نقاط النهاية المصادقة عبر عنوان Authorization: Bearer <sessionToken>.
GET /api/auth/status — التحقق من حالة المصادقةPOST /api/auth/login — تسجيل الدخول باسم المستخدم/كلمة المرور (+ TOTP إذا تم تفعيل MFA)POST /api/auth/register — تسجيل حساب جديد (فقط إذا لم تكن هناك بيانات اعتماد موجودة)POST /api/auth/reset-password — إعادة تعيين كلمة المرور باستخدام رمز الاستردادتتطلب جميع نقاط النهاية الأخرى المصادقة:
GET /api/config — تكوين لوحة التحكمGET /api/sessions — سرد جميع جلسات الوكيلGET /api/usage — بيانات استخدام نافذة متجددة لمدة 5 ساعاتGET /api/costs — بيانات الإنفاق حسب اليوم والنموذج والجلسةGET /api/system — مقاييس صحة النظامGET /api/memory-files — سرد ملفات الذاكرةGET /api/memory-file?path=<path> — قراءة ملف ذاكرةGET /api/key-files — سرد ملفات مساحة العمل (المهارات، التكوينات)GET /api/key-file?path=<name> — قراءة ملف مساحة العملPOST /api/key-file — الكتابة إلى ملف مساحة العمل (مع نسخ احتياطي)GET /api/crons — سرد مهام cronPOST /api/cron/<id>/toggle — تمكين/تعطيل مهمة cronللحصول على أمثلة مفصلة للطلب/الاستجابة، راجع الإصدار السابق من هذا الملف README أو استكشف API في علامة التبويب Network في المتصفح.
تخزّن لوحة التحكم البيانات في دليل مساحة العمل الخاص بك:
هيكل ملف بيانات الاعتماد:```json { "username": "admin", "passwordHash": "pbkdf2_sha512$100000$...", "salt": "...", "mfaSecret": "BASE32SECRET..." // Only if MFA enabled }
## 🔗 تكامل OpenClaw
تكتشف لوحة التحكم تلقائيًا:
- **الجلسات** من `$OPENCLAW_DIR/agents/$AGENT_ID/sessions/`
- **مهام Cron** من `$OPENCLAW_DIR/cron/jobs.json`
- **ملفات الذاكرة** من `$WORKSPACE_DIR/MEMORY.md` و `HEARTBEAT.md` و `memory/*.md`
- **مستودعات Git** من `$WORKSPACE_DIR/projects/*/`
- **بيانات الصحة** المحفوظة في `$WORKSPACE_DIR/data/health-history.json`
### الملفات المطلوبة
تعمل لوحة التحكم بشكل أفضل عند وجود هذه الملفات:
- `$WORKSPACE_DIR/MEMORY.md` - الذاكرة طويلة المدى للوكيل
- `$WORKSPACE_DIR/HEARTBEAT.md` - قائمة مهام نبضات القلب
- `$WORKSPACE_DIR/memory/YYYY-MM-DD.md` - ملاحظات الذاكرة اليومية
- `$WORKSPACE_DIR/scripts/scrape-claude-usage.sh` - ماسح استخدام Claude
- `$WORKSPACE_DIR/scripts/parse-claude-usage.py` - محلل استخدام Claude
- `$WORKSPACE_DIR/scripts/scrape-gemini-usage.sh` - ماسح استخدام Gemini
- `$WORKSPACE_DIR/scripts/parse-gemini-usage.py` - محلل استخدام Gemini
## ⌨️ اختصارات لوحة المفاتيح
| المفتاح | الإجراء |
|-----|--------|
| `1` | التبديل إلى النظرة العامة |
| `2` | التبديل إلى الجلسات |
| `3` | التبديل إلى التكاليف |
| `4` | التبديل إلى حدود المعدل |
| `5` | التبديل إلى الذاكرة |
| `6` | التبديل إلى الملفات |
| `7` | التبديل إلى التغذية المباشرة |
| `8` | التبديل إلى السجلات |
| `9` | التبديل إلى الأمان |
| `Space` | إيقاف/استئناف التغذية (عند وجودك في صفحة التغذية المباشرة) |
| `/` | تركيز مربع البحث |
| `Esc` | إغلاق النوافذ المنبثقة والتراكبات |
| `?` | إظهار تعليمات اختصارات لوحة المفاتيح |
## 🤝 المساهمة
المساهمات مرحب بها! يرجى اتباع هذه الإرشادات:
1. **انشعاب** المستودع
2. **إنشاء** فرع ميزة (`git checkout -b feature/amazing-feature`)
3. **الالتزام** بالتغييرات (`git commit -m 'Add amazing feature'`)
4. **الدفع** إلى الفرع (`git push origin feature/amazing-feature`)
5. **فتح** طلب سحب
### إعداد التطوير```bash
git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git
cd openclaw-dashboard
export WORKSPACE_DIR=/path/to/test/workspace
node server.js
لوحة التحكم ليس بها خطوة بناء — قم بتعديل server.js أو index.html وأعد التحميل.
رخصة MIT - انظر ملف LICENSE للتفاصيل.
مصنوع بـ ✨ بواسطة Tuğcan Topaloğlu
jq (صفحة Docker)، tmux + python3 (أداة استخراج استخدام Claude CLI)، docker (إدارة Docker)POST /api/cron/<id>/run — تشغيل مهمة cron يدويًاGET /api/logs?service=<service>&lines=<N> — جلب سجلات النظامPOST /api/action/<action> — تشغيل الإجراءات السريعة (إعادة تشغيل openclaw، إعادة تشغيل لوحة التحكم، إلخ.)POST /api/claude-usage-scrape — تشغيل جمع استخدام ClaudeGET /api/claude-usage — الحصول على آخر استخدام مجمّع لكلودPOST /api/gemini-usage-scrape — تشغيل جمع استخدام GeminiGET /api/gemini-usage — الحصول على آخر استخدام مجمّع لجيمينيGET /api/live — تدفق أحداث الخادم للرسائل في الوقت الفعليGET /api/notifications?limit=<N> — أحداث سجل التدقيق لمركز الإشعاراتPOST /api/reauth — إعادة المصادقة للصفحات الحساسة (الأمان، التكوين)GET /api/openclaw-config — قراءة ملف تكوين OpenClawPUT /api/openclaw-config — حفظ التكوين مع نسخ احتياطي تلقائي وإعادة تشغيل البوابةGET /api/sys-security — معلومات أمان النظام (UFW، المنافذ، fail2ban، سجلات SSH)GET /api/docker — سرد حاويات Docker والصور واستخدام النظامPOST /api/docker/action — إجراءات Docker (بدء/إيقاف/إعادة تشغيل حاوية، تنظيف)GET /api/services — سرد خدمات systemdPOST /api/services/action — إجراءات الخدمة (بدء/إيقاف/إعادة تشغيل، مسموح بها فقط)| الملف | الغرض |
|---|
data/credentials.json | اسم المستخدم + كلمة المرور المشفرة + سر MFA |
data/audit.log | سجل تدقيق الأمان (يدور تلقائيًا عند 10 ميغابايت) |
data/health-history.json | سجل CPU/RAM/Temp/Disk للرسومات الشرطية |
data/claude-usage.json | آخر بيانات استخدام Claude المجمعة |
data/gemini-usage.json | آخر بيانات استخدام Gemini المجمعة |