Initial dashboard skill - Vite+React+Tailwind web UI

This commit is contained in:
Azat
2026-02-02 23:57:37 +01:00
commit 65ec6ad1ec
27 changed files with 2264 additions and 0 deletions

130
SKILL.md Normal file
View File

@@ -0,0 +1,130 @@
---
name: dashboard
description: Web dashboard for managing skills, memory, and system status
metadata:
version: "1.0.0"
vibestack:
main: false
requires:
- caddy
- supervisor
---
# Dashboard Skill
Web-based control panel for the VibeStack agent machine.
## Features
- **Skills Overview**: View all installed skills, their status, and capabilities
- **Memory Browser**: Search and browse agent memory (conversations, findings, etc.)
- **Backup Management**: View backup status, trigger manual backups, restore
- **Logs Viewer**: Real-time log tailing with filtering
- **System Stats**: Disk, memory, CPU usage
- **Skill Discovery**: Browse and install new skills (via skill-downloader)
## Awareness
This dashboard is aware of:
### Caddy Configuration
- Reads `/skills/caddy/Caddyfile` and `snippets.d/*.caddy`
- Shows which domains/routes are configured
- Displays TLS certificate status
### Installed Skills
- Scans `/skills/*/SKILL.md` for all installed skills
- Parses YAML frontmatter for metadata (name, version, requires, etc.)
- Shows skill dependencies and relationships
- Reads skill documentation for capabilities
### Extensibility
- **skill-downloader** (planned): Install new skills from git repositories
- **skill-creator** (planned): Create new skills from templates or AI generation
## Configuration
### Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `DASHBOARD_PORT` | `3000` | Dashboard port |
| `DASHBOARD_DOMAIN` | (none) | Domain for Caddy auto-config |
| `SUPERVISOR_URL` | `http://localhost:9001` | Supervisor XML-RPC URL |
| `MEMORY_URL` | `http://localhost:8081` | Memory API URL |
## Tech Stack
- **Vite** - Build tool
- **React 18** - UI framework
- **TypeScript** - Type safety
- **Tailwind CSS** - Styling
- **Lucide React** - Icons
- **React Query** - Data fetching
## API Endpoints
The dashboard backend provides:
```
GET /api/skills # List all skills with metadata
GET /api/skills/:name # Get skill details
GET /api/supervisor/status # Process status from supervisor
POST /api/supervisor/:name/restart # Restart a process
GET /api/caddy/config # Caddy configuration
GET /api/system/stats # System resource usage
GET /api/logs/:skill # Tail logs for a skill
```
## Pages
| Route | Description |
|-------|-------------|
| `/` | Overview dashboard with quick stats |
| `/skills` | All skills with status and controls |
| `/skills/:name` | Skill detail with docs and logs |
| `/memory` | Memory browser with search |
| `/backups` | Backup status and controls |
| `/logs` | Multi-skill log viewer |
| `/settings` | Caddy config, system settings |
## Caddy Integration
If `DASHBOARD_DOMAIN` is set, auto-registers with Caddy:
```caddyfile
dashboard.example.com {
reverse_proxy localhost:3000
}
```
## Development
```bash
# Start in dev mode
cd /skills/dashboard/ui
npm run dev
# Build for production
npm run build
```
## Screenshots
```
┌─────────────────────────────────────────────────────────┐
│ VibeStack Dashboard [user] [⚙] │
├─────────┬───────────────────────────────────────────────┤
│ │ │
│ Overview│ Skills: 8 running, 1 stopped │
│ Skills │ Memory: 1,234 entries │
│ Memory │ Last Backup: 2h ago ✓ │
│ Backups │ Disk: 45% used │
│ Logs │ │
│ Settings│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ │ postgres│ │ redis │ │ caddy │ │
│ │ │ ● run │ │ ● run │ │ ● run │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │
│ │ │
└─────────┴───────────────────────────────────────────────┘
```