Initial commit: OpenClaw Agent Fleet Dashboard
- Kanban board with 5 columns (Backlog, Todo, In Progress, Review, Done) - Agent assignment for all OpenClaw agents - Priority levels and tags - Wiki auto-generation on task completion - REST API for agent heartbeat integration - Real-time updates via WebSocket - SQLite database for task storage - Docker deployment configuration - Traefik ingress configuration
This commit is contained in:
138
README.md
Normal file
138
README.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# OpenClaw Agent Fleet Dashboard
|
||||
|
||||
A real-time task coordination board for the OpenClaw agent fleet.
|
||||
|
||||
## Features
|
||||
|
||||
- **Kanban Board**: Backlog → Todo → In Progress → Review → Done
|
||||
- **Agent Assignment**: Assign tasks to specific OpenClaw agents
|
||||
- **Priority Levels**: High, Medium, Low
|
||||
- **Tags**: Categorize tasks with tags
|
||||
- **Wiki Auto-Generation**: Completed tasks generate wiki documentation
|
||||
- **Real-time Updates**: WebSocket-powered live updates
|
||||
- **REST API**: For agent heartbeat integration
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
cd /home/bear/homelab/ubuntu/taskboard
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Access at: https://agentdash.local.tophermayor.com
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Tasks
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/tasks` | List all tasks (filter: `?assignee=ubuntu&status=todo`) |
|
||||
| GET | `/api/tasks/:id` | Get single task |
|
||||
| POST | `/api/tasks` | Create task |
|
||||
| PATCH | `/api/tasks/:id` | Update task |
|
||||
| POST | `/api/tasks/:id/complete` | Complete task (creates wiki) |
|
||||
| DELETE | `/api/tasks/:id` | Delete task |
|
||||
|
||||
### Wiki
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/wiki` | List wiki pages |
|
||||
| GET | `/api/wiki/:filename` | Get wiki page content |
|
||||
|
||||
### Agent Heartbeat
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/heartbeat/:agent` | Get pending tasks for agent |
|
||||
|
||||
## Agent Integration
|
||||
|
||||
Add to agent's HEARTBEAT.md:
|
||||
|
||||
```bash
|
||||
# Check for assigned tasks
|
||||
TASKS=$(curl -s http://192.168.50.61:8395/api/heartbeat/ubuntu)
|
||||
|
||||
# If tasks pending, process them
|
||||
if echo "$TASKS" | jq -e '.pending_tasks > 0' > /dev/null; then
|
||||
echo "Processing assigned tasks..."
|
||||
# Process tasks...
|
||||
fi
|
||||
```
|
||||
|
||||
## Example: Create Task via API
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8395/api/tasks \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"title": "Restart PostgreSQL container",
|
||||
"description": "The postgres-shared container needs a restart for config changes",
|
||||
"assignee": "ubuntu",
|
||||
"priority": "high",
|
||||
"tags": ["docker", "database"]
|
||||
}'
|
||||
```
|
||||
|
||||
## Example: Complete Task with Wiki
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8395/api/tasks/TASK_ID/complete \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"implementation_details": "Restarted the container using docker restart postgres-shared. Verified connections working.",
|
||||
"files_changed": ["/home/bear/homelab/ubuntu/postgres/docker-compose.yml"]
|
||||
}'
|
||||
```
|
||||
|
||||
## Task Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"title": "string",
|
||||
"description": "string",
|
||||
"assignee": "ubuntu|pve|truenas|grizzley|ice|panda|zeroclaw|docs",
|
||||
"status": "backlog|todo|in_progress|review|done",
|
||||
"priority": "high|medium|low",
|
||||
"tags": ["array", "of", "tags"],
|
||||
"created_at": "ISO timestamp",
|
||||
"updated_at": "ISO timestamp",
|
||||
"completed_at": "ISO timestamp or null",
|
||||
"wiki_path": "filename.md or null"
|
||||
}
|
||||
```
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
taskboard/
|
||||
├── docker-compose.yml
|
||||
├── Dockerfile
|
||||
├── README.md
|
||||
├── package.json
|
||||
├── server.js
|
||||
├── client/
|
||||
│ └── index.html
|
||||
├── public/
|
||||
│ ├── index.html
|
||||
│ └── app.js
|
||||
├── data/
|
||||
│ └── tasks.db (SQLite)
|
||||
└── wiki/
|
||||
└── (auto-generated wiki pages)
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
The taskboard is deployed on the ubuntu host at:
|
||||
- **URL**: https://agentdash.local.tophermayor.com
|
||||
- **Port**: 8395
|
||||
- **Container**: openclaw-taskboard
|
||||
- **Traefik Route**: /home/bear/homelab/ubuntu/traefik/config/dynamic/taskboard.yml
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user