Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
openclaw-dashboard — 🔐 OpenClaw AI 에이전트를 위한 안전한 실시간 모니터링 대시보드. 인증, TOTP MFA, 비용 추적, 라이브 피드, 메모리 브라우저 등. | Kitploit
도구/GitHubGitHub/tugcantopaloglu/openclaw-dashboard
Container SecurityConfiguration AuditingNetwork SecurityCloud SecurityDevSecOpsSecret DetectionAuthenticationIncident ResponseAPI SecurityLog Analysis
GitHubtugcantopaloglu/openclaw-dashboard

openclaw-dashboard

6981205개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🔐 OpenClaw AI 에이전트를 위한 안전한 실시간 모니터링 대시보드. 인증, TOTP MFA, 비용 추적, 라이브 피드, 메모리 브라우저 등.

저장소 보기웹사이트
헤더

OpenClaw 에이전트 대시보드

License: MIT Node.js OpenClaw

OpenClaw 에이전트를 위한 아름답고 안전하며 실시간 모니터링 대시보드입니다. 세션 추적, API 사용량 모니터링, 비용 확인, 메모리 파일 관리, 시스템 상태 확인을 한곳에서 수행할 수 있습니다.

대시보드 미리보기

📸 스크린샷

개요세션비용
개요세션비용
속도 제한라이브 피드로그
제한피드로그

✨ 기능

  • 🤖 세션 관리 - 모든 에이전트 세션을 실시간 활동 상태로 확인
  • 📊 속도 제한 모니터링 - Claude 및 Gemini API 사용량을 롤링 윈도우 기준으로 추적
  • 💰 비용 분석 - 모델, 세션, 기간별 상세 지출 내역
  • ⚡ 라이브 피드 - 모든 세션의 에이전트 메시지를 실시간 스트리밍
  • 🧠 메모리 뷰어 - 에이전트 메모리 파일(MEMORY.md, HEARTBEAT.md, 일일 노트) 열람 및 읽기
  • 📁 파일 관리자 - 작업 공간 파일, 스킬, 설정을 보안 강화된 상태로 확인 및 편집
  • 📈 시스템 상태 - CPU, RAM, 디스크, 온도 모니터링 (스파크라인 포함)
  • 🔄 서비스 제어 - OpenClaw, 대시보드 또는 기타 서비스를 빠르게 재시작
  • 📋 로그 뷰어 - 자동 새로고침으로 실시간 시스템 로그 확인
  • ⏰ Cron 관리 - cron 작업 조회, 활성화/비활성화, 수동 실행
  • 🌐 Tailscale 통합 - Tailscale 상태, IP, 연결된 피어 확인
  • 🎯 활동 히트맵 - 최근 30일간 피크 사용 시간 시각화
  • 🔥 연속 트래킹 - 일일 활동 연속 일수 모니터링
  • 🔍 세션 검색 및 필터링 - 상태, 모델, 날짜 범위로 필터링 (라이브 검색)
  • 🎨 다크/라이트 테마 - 다크 모드와 라이트 모드 전환 (선호도 유지)
  • ⌨️ 키보드 단축키 - 단축키(1-7, Space, /, Esc, ?)로 빠른 탐색
  • 📱 모바일 반응형 - 휴대폰 및 태블릿에서 작동
  • 🔔 브라우저 알림 - 사용량 제한에 근접할 때 알림
  • 📊 타임라인 뷰 - 세션 활동의 시각적 타임라인
  • 💾 Git 활동 - 리포지토리의 최근 커밋 추적
  • 🎛️ Claude 사용량 스크레이퍼 - Claude Code CLI에서 실제 사용량 데이터 가져오기
  • 🔷 Gemini 사용량 추적 - 모델별 세분화된 Google Gemini 사용량 모니터링
  • 🔀 프로바이더 전환 - 개요 카드에서 Claude와 Gemini 사용량 간 전환
  • 📊 모델별 선택기 - 표시할 모델/윈도우 선택 (Opus, Sonnet, Pro, Flash 등)
  • 🔄 자동 새로고침 - 5초마다 데이터 실시간 업데이트
  • 🌟 평생 통계 - 최초 세션 이후 총 토큰, 메시지, 비용
  • 📈 상태 기록 - 24시간 CPU, RAM, 온도, 디스크 사용량 스파크라인
  • 🎯 빠른 작업 - 원클릭 시스템 유지보수 (업데이트, 정리, 재시작)
  • 🍎 macOS 호환 - macOS 시스템 통계, 서비스, 메모리 보고 완벽 지원
  • 🛡️ 시스템 보안 대시보드 - UFW 규칙, 열린 포트, fail2ban, SSH 로그, 보안 감사 (재인증 필요)
  • ⚙️ 설정 편집기 - JSON 검증, 자동 백업, 게이트웨이 재시작 기능이 있는 OpenClaw 설정 편집 (재인증 필요)
  • 🐳 Docker 관리 - 컨테이너, 이미지, 시스템 사용량 확인; 컨테이너 시작/중지/재시작; 사용하지 않는 리소스 정리
  • 🔔 알림 센터 - 읽지 않은 배지 카운터가 있는 감사 로그 이벤트 피드 (로그인, 설정 변경, 보안 이벤트)
  • 🔐 - PBKDF2 비밀번호 해싱을 사용한 보안 등록

🚀 빠른 시작```bash

Clone the repository

git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git cd openclaw-dashboard

Set your OpenClaw workspace path (optional, auto-detects if not set)

export WORKSPACE_DIR=/path/to/your/openclaw/workspace

Start the dashboard

node server.js

root@kitploit:~
`http://localhost:7000`을 브라우저에서 방문하세요. 처음 방문 시 사용자 이름과 비밀번호를 생성하는 **등록 화면**이 나타납니다. 등록 후에는 자격 증명으로 로그인합니다.

## 📦 설치

### 사전 요구 사항

- **Node.js** v18 이상 (`node --version`으로 확인)
- **OpenClaw** 설치 및 실행 중
- **Systemd** (선택 사항, Linux에서 서비스 설치용)

#### 선택적 종속성

| 도구 | 필요 용도 | 설치 방법 |
|------|-----------|-----------|
| `jq` | Docker 관리 페이지 | `sudo apt install jq` |
| `tmux` | Claude CLI 사용량 스크레이퍼 | `sudo apt install tmux` |
| `python3` | Claude CLI 사용량 파서 | 일반적으로 사전 설치됨 |
| `docker` | Docker 관리 페이지 | [docs.docker.com](https://docs.docker.com/engine/install/) |

### 수동 설치

1. **저장소 클론**   ```bash
   git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git
   cd openclaw-dashboard
  1. 환경 구성 (선택 사항) ```bash export DASHBOARD_PORT=7000 export WORKSPACE_DIR=/path/to/your/workspace export OPENCLAW_DIR=$HOME/.openclaw export OPENCLAW_AGENT=main
    root@kitploit:~
  2. 서버 시작 ```bash node server.js
    root@kitploit:~

서버가 출력합니다: ``` 🚀 Dashboard running on http://localhost:7000 🔑 Recovery token: abc123def456...

root@kitploit:~
**복구 토큰 저장** — 비밀번호를 잊어버릴 경우 필요합니다.

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

root@kitploit:~
### 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 socket을 전달하십시오:```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

root@kitploit:~
### 환경 변수

| 변수 | 설명 | 기본값 |
|----------|-------------|---------|
| `DASHBOARD_PORT` | 서버 포트 | `7000` |
| `DASHBOARD_TOKEN` | 비밀번호 재설정을 위한 복구 토큰 | 시작 시 자동 생성 |
| `WORKSPACE_DIR` | OpenClaw 작업 공간 경로 | `$OPENCLAW_WORKSPACE` 또는 현재 디렉터리 |
| `OPENCLAW_DIR` | OpenClaw 설정 디렉터리 | `~/.openclaw` |
| `OPENCLAW_AGENT` | 모니터링할 에이전트 ID | `main` |
| `DASHBOARD_ALLOW_HTTP` | 로컬이 아닌 IP의 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

🔐 인증

대시보드는 보안 서버 측 세션과 함께 사용자 이름 및 비밀번호 인증을 사용합니다.

최초 등록

  1. 대시보드 URL(예: http://localhost:7000)을 방문하세요.
  2. 등록 화면이 나타납니다.
  3. 사용자 이름과 비밀번호를 선택하세요.
  4. 등록을 클릭하세요.
  5. 새 자격 증명으로 로그인하세요.

로그인

  • 사용자 이름과 비밀번호를 입력하세요.
  • 선택적으로 **"로그인 유지"**를 체크하면 3시간 동안 로그인 상태가 유지됩니다(localStorage 사용).
  • "로그인 유지" 없이 세션은 브라우저를 닫을 때까지만 지속됩니다(sessionStorage 사용).

비밀번호 보안

  • PBKDF2 해싱 — SHA-512로 100,000회 반복
  • 무작위 솔트 — 비밀번호마다 고유
  • 서버 측 세션 — 비밀번호는 브라우저에 저장되지 않으며 세션 토큰만 저장됩니다.
  • 타이밍 안전 비교 — 비밀번호 확인 시 타이밍 공격 방지

속도 제한

무차별 대입 공격을 방지하려면:

  • 5회 로그인 실패 → 15분 소프트 잠금
  • 20회 로그인 실패 → 하드 잠금(서비스 재시작 필요)
  • 속도 제한은 메모리 내에서 유지되며 서비스 재시작 시 초기화됩니다.

🔑 다중 인증(MFA)

시간 기반 일회용 비밀번호(TOTP)로 추가 보안 계층을 제공합니다.

MFA 활성화

  1. 대시보드에 로그인하세요.
  2. 보안 페이지(사이드바)로 이동하세요.
  3. **"MFA 활성화"**를 클릭하세요.
  4. QR 코드가 나타납니다 — 인증 앱으로 스캔하세요:
    • Google Authenticator (iOS, Android)
    • Authy (iOS, Android, Desktop)
    • Microsoft Authenticator (iOS, Android)
    • 1Password, Bitwarden 또는 모든 TOTP 호환 앱
  5. 앱에 표시된 6자리 코드를 입력하여 확인하세요.
  6. MFA가 활성화되었습니다! 🎉

MFA 사용

활성화 후, 모든 로그인 시 다음이 필요합니다:

  1. 사용자 이름과 비밀번호(평소와 같이)
  2. 인증 앱의 6자리 TOTP 코드
  • 코드는 30초마다 갱신됩니다.
  • 대시보드는 시계 오차를 위해 ±1 윈도우 허용(30초 전/후) 코드를 수락합니다.

MFA 비활성화

  1. 보안 페이지로 이동하세요.
  2. **"MFA 비활성화"**를 클릭하세요.
  3. 현재 6자리 TOTP 코드를 입력하여 확인하세요.
  4. MFA가 비활성화되었습니다.

MFA 재설정(잠긴 경우)

인증 앱에 접근할 수 없는 경우(휴대폰 분실, 앱 제거 등):

  1. 서버에 SSH로 접속하세요.
  2. MFA 비밀을 지우려면 다음 명령을 실행하세요: ```bash node -e "const fs=require('fs');const c=JSON.parse(fs.readFileSync('/root/clawd/data/credentials.json','utf8'));delete c.mfaSecret;fs.writeFileSync('/root/clawd/data/credentials.json',JSON.stringify(c,null,2));console.log('MFA cleared')"
    root@kitploit:~
  3. 대시보드 다시 시작: ```bash systemctl restart agent-dashboard
    root@kitploit:~
  4. 사용자 이름과 비밀번호만으로 로그인합니다.
  5. 새 QR 코드로 MFA를 다시 활성화합니다.

중요: 작업 공간이 다른 곳에 있다면 경로 /root/clawd/data/credentials.json를 조정하세요.

🔓 비밀번호 복구

비밀번호를 잊으셨나요?

비밀번호를 잊은 경우:

  1. 로그인 화면에서 **"비밀번호를 잊으셨나요?"**를 클릭합니다.
  2. 복구 토큰을 입력합니다(아래 "복구 토큰 찾기" 참조).
  3. 새 비밀번호를 설정합니다.
  4. 새 비밀번호로 로그인합니다.

복구 토큰 찾기

복구 토큰(DASHBOARD_TOKEN)은 서버 시작 시 출력됩니다. 여러 위치에서 찾을 수 있습니다:

서버 시작 로그 확인```bash

journalctl -u agent-dashboard | grep "Recovery token"

root@kitploit:~
출력:```
🔑 Recovery token: 3e6b91f352418b486a9aa9d82fbbc1b1

Systemd 오버라이드 설정 확인```bash

cat /etc/systemd/system/agent-dashboard.service.d/override.conf

root@kitploit:~
찾기:```ini
Environment=DASHBOARD_TOKEN=3e6b91f352418b486a9aa9d82fbbc1b1

환경 변수 확인

수동으로 설정한 경우:```bash echo $DASHBOARD_TOKEN

root@kitploit:~
### 비밀번호 변경

로그인 상태에서 비밀번호를 변경하려면:

1. **보안** 페이지로 이동합니다.
2. **현재 비밀번호**를 입력합니다.
3. **새 비밀번호**를 입력합니다.
4. **"비밀번호 변경"**을 클릭합니다.
5. 다른 모든 세션이 무효화됩니다 (다른 곳에서 다시 로그인해야 함).

### 완전 계정 초기화 (최후의 수단)

모든 것이 잠겨 있고 로그인할 수 없는 경우:

1. **서버에 SSH로 접속하세요**
2. **자격 증명 파일을 삭제하세요**:   ```bash
   rm /root/clawd/data/credentials.json
  1. 대시보드 다시 시작: ```bash systemctl restart agent-dashboard
    root@kitploit:~
  2. 대시보드 방문 — 등록 화면이 나타납니다
  3. 새 계정 생성 처음부터

경고: 이 작업은 사용자 이름, 비밀번호 및 MFA 설정을 삭제합니다. 메모리 파일과 감사 로그는 영향을 받지 않습니다.

🛡️ 보안 기능

대시보드는 보안 모범 사례를 기반으로 구축되었습니다:

  • PBKDF2 비밀번호 해싱 — 100,000 반복, SHA-512, 무작위 솔트
  • 타이밍 안전 비교 — 토큰/비밀번호 검증에 대한 타이밍 공격 방지
  • 서버 측 세션 — 세션 토큰은 메모리에 저장되며, 비밀번호는 브라우저로 전송되지 않음
  • 속도 제한 — 로그인 시도에 대한 통합 속도 제한기 (소프트 5회 / 하드 20회 잠금)
  • HTTPS 강제 적용 — localhost 및 Tailscale(100.64.0.0/10)을 제외한 HTTP 차단
  • 보안 헤더:
    • HSTS — 향후 방문 시 HTTPS 강제
    • CSP — 콘텐츠 보안 정책 (인라인 스크립트 금지, 동일 출처)
    • X-Frame-Options: DENY — 클릭재킹 방지
    • X-Content-Type-Options: nosniff — MIME 스니핑 방지
    • X-XSS-Protection: 1; mode=block — 레거시 XSS 보호
  • 감사 로깅 — 모든 인증 이벤트 및 파괴적 작업이 data/audit.log에 기록됨
  • CORS — 동일 출처 전용, 와일드카드(*) 허용 안 함
  • 입력 검증:
    • 로그 및 작업에 대한 서비스 화이트리스트
    • 파일 접근에 대한 경로 탐색 보호
    • 페이로드 크기 제한 (최대 1MB)
  • 자동 백업 — 작업 공간 파일을 덮어쓰기 전에 .bak 파일 생성

🌐 네트워크 보안

대시보드는 로컬 또는 Tailscale 접근을 위해 설계되었습니다:

권장 접근 방법

  1. Localhost — 동일한 시스템에서 접근: http://localhost:7000
  2. Tailscale — Tailscale 네트워크에서 접근: http://100.x.x.x:7000
    • Tailscale은 자동 TLS 암호화를 제공합니다 (MagicDNS + HTTPS)
    • Tailscale IP(100.64.0.0 ~ 100.127.255.255)는 HTTPS 강제 적용에서 제외됩니다
  3. 로컬 네트워크 — LAN에서 접근 (HTTPS 사용 또는 DASHBOARD_ALLOW_HTTP=true 설정)

HTTPS 강제 적용

기본적으로 대시보드는 로컬이 아닌 IP의 HTTP 접근을 차단합니다. 예외:

  • Localhost (127.0.0.1, ::1)
  • Tailscale IP (100.64.0.0/10)

다른 네트워크의 경우, 대시보드는 HTTPS 또는 X-Forwarded-Proto: https 헤더(리버스 프록시로부터)를 요구합니다.

모든 IP에서 HTTP를 허용하려면 (권장되지 않음):```bash DASHBOARD_ALLOW_HTTP=true node server.js

root@kitploit:~
### 공용 인터넷에 노출하지 마십시오

**이 대시보드는 공용 인터넷 노출에 대해 보안이 강화되지 않았습니다.** 인증 및 속도 제한이 있지만, 사설 네트워크용으로 설계되었습니다. 노출해야 한다면:
- HTTPS와 함께 리버스 프록시(nginx, Caddy) 사용
- IP 허용 목록 추가
- 대신 VPN(Tailscale, WireGuard) 고려

## 🛠️ 문제 해결

### "너무 많은 로그인 실패"

**문제:** "너무 많은 로그인 시도가 실패했습니다. 나중에 다시 시도하십시오."라는 메시지가 표시됩니다.

**해결 방법:**
- 소프트 잠금이 해제될 때까지 **15분** 기다리십시오.
- 속도 제한을 초기화하려면 서비스를 다시 시작하십시오:  ```bash
  systemctl restart agent-dashboard
  • 속도 제한은 메모리 내에 있으며 재시작 시 초기화됩니다

비밀번호 변경 후 로그인 불가

문제: 비밀번호가 변경되었지만 로그인할 수 없습니다.

해결 방법: 복구 토큰을 사용하여 "비밀번호를 잊으셨나요?" 절차를 진행하여 새 비밀번호를 설정하세요.

MFA 코드가 작동하지 않음

문제: 6자리 TOTP 코드가 거부됩니다.

해결 방법:

  • 휴대폰 시계가 동기화되어 있는지 확인하세요:
    • iOS: 설정 → 일반 → 날짜 및 시간 → 자동 설정
    • Android: 설정 → 시스템 → 날짜 및 시간 → 자동 날짜 및 시간
  • TOTP 코드는 시계 오차에 대해 ±30초 허용 범위가 있습니다.
  • 다음 코드를 입력해 보세요(코드가 갱신될 때까지 30초 기다림).
  • 그래도 실패하면 SSH를 통해 MFA를 재설정하세요("MFA 재설정" 섹션 참조).

대시보드가 로드되지 않음

문제: 브라우저에 빈 페이지 또는 연결 오류가 표시됩니다.

해결 방법:

  1. 서비스 상태 확인: ```bash systemctl status agent-dashboard
    root@kitploit:~
  2. 로그 확인: ```bash journalctl -u agent-dashboard -n 50
    root@kitploit:~
  3. 포트 확인: ```bash curl http://localhost:7000/api/auth/status
    root@kitploit:~

반환해야 합니다: ```json {"authenticated": false, "requiresRegistration": false}

root@kitploit:~
### "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 (Windows/Linux) 또는 Cmd+Shift+R (macOS)
  • 대시보드 URL의 브라우저 캐시 지우기
  • 브라우저 콘솔 확인 (F12 → Console 탭)하여 JavaScript 오류 확인

📡 API 참조

대시보드는 프로그래밍 방식 액세스를 위한 REST API를 제공합니다. 모든 엔드포인트는 Authorization: Bearer <sessionToken> 헤더를 통한 인증이 필요합니다.

인증되지 않은 엔드포인트

  • GET /api/auth/status — 인증 상태 확인
  • POST /api/auth/login — 사용자 이름/비밀번호로 로그인 (+ MFA가 활성화된 경우 TOTP)
  • 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의 이전 버전을 참조하거나 브라우저의 Network 탭에서 API를 탐색하세요.

📂 데이터 파일

대시보드는 작업 공간 디렉토리에 데이터를 저장합니다:

자격 증명 파일 구조:```json { "username": "admin", "passwordHash": "pbkdf2_sha512$100000$...", "salt": "...", "mfaSecret": "BASE32SECRET..." // Only if MFA enabled }

root@kitploit:~
## 🔗 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` - Heartbeat 작업 목록
- `$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. 저장소를 **Fork** 하세요
2. 기능 브랜치를 **생성**하세요 (`git checkout -b feature/amazing-feature`)
3. 변경 사항을 **커밋**하세요 (`git commit -m 'Add amazing feature'`)
4. 브랜치에 **Push**하세요 (`git push origin feature/amazing-feature`)
5. Pull Request를 **열어**주세요

### 개발 환경 설정```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 파일을 참조하세요.

🙏 감사의 말

  • Claude Code로 제작됨
  • OpenClaw를 위해 제작됨
  • 현대적인 대시보드(Grafana, Vercel, Railway)에서 영감을 받음
  • 폰트: Inter 및 JetBrains Mono

📞 지원

  • 이슈: GitHub Issues
  • 트위터: @tugcantopaloglu

✨로 만든 Tuğcan Topaloğlu

도구 다운로드
사용자 이름/비밀번호 인증
  • 🔑 TOTP MFA - 선택적 이중 인증 (Google Authenticator 호환)
  • 💾 로그인 유지 - 세션 전용 또는 3시간 지속 로그인
  • 🛡️ 보안 강화 - HSTS, CSP, 속도 제한, 타이밍 안전 비교, 감사 로깅
  • 📦 최소 의존성 - 순수 Node.js, 데이터베이스나 npm 패키지 불필요. 선택 사항: 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 — Claude 사용량 스크랩 실행
  • GET /api/claude-usage — 마지막으로 스크랩한 Claude 사용량 가져오기
  • POST /api/gemini-usage-scrape — Gemini 사용량 스크랩 실행
  • GET /api/gemini-usage — 마지막으로 스크랩한 Gemini 사용량 가져오기
  • GET /api/live — 실시간 메시지의 Server-Sent Events 스트림
  • 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/온도/디스크 기록
    data/claude-usage.json마지막으로 스크랩한 Claude 사용량 데이터
    data/gemini-usage.json마지막으로 스크랩한 Gemini 사용량 데이터