
🔐 OpenClaw AI एजेंटों के लिए सुरक्षित, रीयल-टाइम मॉनिटरिंग डैशबोर्ड। प्रमाणीकरण, TOTP MFA, लागत ट्रैकिंग, लाइव फीड, मेमोरी ब्राउज़र और अधिक।
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
Visit `http://localhost:7000` अपने ब्राउज़र में। पहली बार जाने पर, आपको एक **पंजीकरण स्क्रीन** दिखाई देगी जहाँ आप अपना उपयोगकर्ता नाम और पासवर्ड बनाते हैं। पंजीकरण के बाद, अपने क्रेडेंशियल्स से लॉग इन करें।
## 📦 स्थापना
### पूर्वापेक्षाएँ
- **Node.js** v18 या उच्चतर (`node --version` से जाँचें)
- **OpenClaw** स्थापित और चल रहा हो
- **Systemd** (वैकल्पिक, Linux पर सेवा स्थापना के लिए)
#### वैकल्पिक निर्भरताएँ
| उपकरण | के लिए आवश्यक | स्थापना |
|------|-------------|---------|
| `jq` | डॉकर प्रबंधन पृष्ठ | `sudo apt install jq` |
| `tmux` | Claude CLI उपयोग स्क्रैपर | `sudo apt install tmux` |
| `python3` | Claude CLI उपयोग पार्सर | आमतौर पर पहले से स्थापित |
| `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 सेवा (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
### पर्यावरण चर
| Variable | विवरण | डिफ़ॉल्ट |
|----------|-------------|---------|
| `DASHBOARD_PORT` | सर्वर पोर्ट | `7000` |
| `DASHBOARD_TOKEN` | पासवर्ड रीसेट के लिए रिकवरी टोकन | स्टार्टअप पर स्वतः-जनरेटेड |
| `WORKSPACE_DIR` | OpenClaw वर्कस्पेस पथ | `$OPENCLAW_WORKSPACE` या वर्तमान निर्देशिका |
| `OPENCLAW_DIR` | OpenClaw कॉन्फ़िग निर्देशिका | `~/.openclaw` |
| `OPENCLAW_AGENT` | मॉनिटर करने के लिए एजेंट ID | `main` |
| `DASHBOARD_ALLOW_HTTP` | गैर-स्थानीय IPs से HTTP अनुमति दें | `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. **क्रेडेंशियल्स फ़ाइल हटाएं**: ```bash
rm /root/clawd/data/credentials.json
चेतावनी: इससे आपका उपयोगकर्ता नाम, पासवर्ड और MFA सेटिंग्स हटा दी जाती हैं। मेमोरी फ़ाइलें और ऑडिट लॉग प्रभावित नहीं होते हैं।
डैशबोर्ड सुरक्षा सर्वोत्तम प्रथाओं के साथ बनाया गया है:
data/audit.log में लॉग की जाती हैं*) अनुमति नहीं.bak फ़ाइलें बनाई जाती हैंडैशबोर्ड स्थानीय या Tailscale एक्सेस के लिए डिज़ाइन किया गया है:
http://localhost:7000http://100.x.x.x:7000
DASHBOARD_ALLOW_HTTP=true सेट करें)डिफ़ॉल्ट रूप से, डैशबोर्ड गैर-स्थानीय IP से HTTP पहुँच को अवरुद्ध करता है। छूट:
अन्य नेटवर्क के लिए, डैशबोर्ड को HTTPS या X-Forwarded-Proto: https हेडर (रिवर्स प्रॉक्सी से) की आवश्यकता होती है।
सभी IP से HTTP की अनुमति देने के लिए (अनुशंसित नहीं):```bash DASHBOARD_ALLOW_HTTP=true node server.js
### सार्वजनिक इंटरनेट पर न रखें
**यह डैशबोर्ड सार्वजनिक इंटरनेट पर रखने के लिए सुरक्षित नहीं है।** इसमें प्रमाणीकरण और दर सीमा है, लेकिन यह निजी नेटवर्क के लिए डिज़ाइन किया गया है। यदि आपको इसे सार्वजनिक करना ही है, तो:
- HTTPS के साथ रिवर्स प्रॉक्सी (nginx, Caddy) का उपयोग करें
- IP श्वेतसूची जोड़ें
- इसके बजाय VPN (Tailscale, WireGuard) पर विचार करें
## 🛠️ समस्या निवारण
### "असफल प्रयासों की संख्या बहुत अधिक"
**समस्या:** आप "बहुत अधिक असफल लॉगिन प्रयास। कृपया बाद में पुनः प्रयास करें।" देख रहे हैं।
**समाधान:**
- सॉफ्ट लॉकआउट समाप्त होने के लिए **15 मिनट** प्रतीक्षा करें
- दर सीमाएँ साफ़ करने के लिए सेवा पुनरारंभ करें: ```bash
systemctl restart agent-dashboard
दर सीमाएँ मेमोरी में होती हैं और पुनरारंभ होने पर रीसेट हो जाती हैं
समस्या: आपका पासवर्ड बदला गया था लेकिन आप लॉग इन नहीं कर पा रहे हैं।
समाधान: नया पासवर्ड सेट करने के लिए अपने रिकवरी टोकन के साथ "पासवर्ड भूल गए?" प्रक्रिया का उपयोग करें।
समस्या: 6-अंकीय TOTP कोड अस्वीकृत हो जाता है।
समाधान:
समस्या: ब्राउज़र खाली पृष्ठ या कनेक्शन त्रुटि दिखाता है।
समाधान:
वापस करना चाहिए: ```json {"authenticated": false, "requiresRegistration": false}
### "HTTPS required" त्रुटि
**समस्या:** ब्राउज़र दिखाता है "HTTPS required. Access via localhost, Tailscale, or enable 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 (macOS)डैशबोर्ड प्रोग्रामेटिक एक्सेस के लिए एक 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 — क्रॉन जॉब्स की सूची बनाएंPOST /api/cron/<id>/toggle — क्रॉन जॉब को सक्षम/अक्षम करेंविस्तृत अनुरोध/प्रतिक्रिया उदाहरणों के लिए, इस README के पिछले संस्करण को देखें या ब्राउज़र के नेटवर्क टैब में API का अन्वेषण करें।
डैशबोर्ड आपकी वर्कस्पेस निर्देशिका में डेटा संग्रहीत करता है:
क्रेडेंशियल फ़ाइल संरचना:```json { "username": "admin", "passwordHash": "pbkdf2_sha512$100000$...", "salt": "...", "mfaSecret": "BASE32SECRET..." // Only if MFA enabled }
## 🔗 OpenClaw एकीकरण
डैशबोर्ड स्वचालित रूप से पहचानता है:
- **सत्र** `$OPENCLAW_DIR/agents/$AGENT_ID/sessions/` से
- **क्रॉन जॉब्स** `$OPENCLAW_DIR/cron/jobs.json` से
- **मेमोरी फ़ाइलें** `$WORKSPACE_DIR/MEMORY.md`, `HEARTBEAT.md`, और `memory/*.md` से
- **गिट रिपॉजिटरी** `$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` - क्लॉड उपयोग स्क्रैपर
- `$WORKSPACE_DIR/scripts/parse-claude-usage.py` - क्लॉड उपयोग पार्सर
- `$WORKSPACE_DIR/scripts/scrape-gemini-usage.sh` - जेमिनी उपयोग स्क्रैपर
- `$WORKSPACE_DIR/scripts/parse-gemini-usage.py` - जेमिनी उपयोग पार्सर
## ⌨️ कीबोर्ड शॉर्टकट
| कुंजी | कार्रवाई |
|-----|--------|
| `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
The dashboard has no build step — edit server.js or index.html and reload.
MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें।
✨ द्वारा बनाया गया Tuğcan Topaloğlu
jq (Docker पेज), tmux + python3 (Claude CLI उपयोग स्क्रैपर), docker (Docker प्रबंधन)POST /api/cron/<id>/run — मैन्युअल रूप से क्रॉन जॉब ट्रिगर करेंGET /api/logs?service=<service>&lines=<N> — सिस्टम लॉग प्राप्त करेंPOST /api/action/<action> — त्वरित कार्रवाई चलाएं (restart-openclaw, restart-dashboard, आदि)POST /api/claude-usage-scrape — क्लॉड उपयोग स्क्रैप ट्रिगर करेंGET /api/claude-usage — अंतिम स्क्रैप किया गया क्लॉड उपयोग प्राप्त करेंPOST /api/gemini-usage-scrape — जेमिनी उपयोग स्क्रैप ट्रिगर करेंGET /api/gemini-usage — अंतिम स्क्रैप किया गया जेमिनी उपयोग प्राप्त करेंGET /api/live — रीयल-टाइम संदेशों की सर्वर-सेंट इवेंट स्ट्रीमGET /api/notifications?limit=<N> — सूचना केंद्र के लिए ऑडिट लॉग घटनाएंPOST /api/reauth — संवेदनशील पृष्ठों के लिए पुनः प्रमाणीकरण (सुरक्षा, कॉन्फ़िग)GET /api/openclaw-config — OpenClaw कॉन्फ़िगरेशन फ़ाइल पढ़ेंPUT /api/openclaw-config — ऑटो-बैकअप और गेटवे पुनरारंभ के साथ कॉन्फ़िग सहेजेंGET /api/sys-security — सिस्टम सुरक्षा जानकारी (UFW, पोर्ट, fail2ban, SSH लॉग)GET /api/docker — Docker कंटेनरों, इमेजों और सिस्टम उपयोग की सूची बनाएंPOST /api/docker/action — Docker कार्रवाइयां (कंटेनर प्रारंभ/रोकें/पुनरारंभ करें, प्रून)GET /api/services — systemd सेवाओं की सूची बनाएंPOST /api/services/action — सेवा कार्रवाइयां (प्रारंभ/रोकें/पुनरारंभ, केवल श्वेतसूचीबद्ध)| फ़ाइल | उद्देश्य |
|---|
data/credentials.json | उपयोगकर्ता नाम + हैशेड पासवर्ड + MFA गुप्त |
data/audit.log | सुरक्षा ऑडिट ट्रेल (10MB पर ऑटो-रोटेट होता है) |
data/health-history.json | स्पार्कलाइन के लिए CPU/RAM/Temp/डिस्क इतिहास |
data/claude-usage.json | अंतिम स्क्रैप किया गया क्लॉड उपयोग डेटा |
data/gemini-usage.json | अंतिम स्क्रैप किया गया जेमिनी उपयोग डेटा |