Web Dashboard¶
The Web Dashboard provides a modern browser-based interface for Kubernetes management with full AI integration.
Overview¶
The Web UI offers:
- Modern Interface: Responsive design with dark/light themes
- Real-time Updates: Live resource status updates
- AI Assistant: Integrated chat interface
- Multi-cluster: Switch between contexts
- Reports: Generate cluster analysis reports
Getting Started¶
Launch Web Mode¶
# Start web server on default port 8080
k13d -web
# Specify custom port
k13d -web -port 3000
# With authentication
k13d -web -password "your-secure-password"
# With embedded LLM (no API key needed)
k13d -web --embedded-llm
Access the Dashboard¶
Open your browser to: http://localhost:8080
Interface Layout¶
┌─────────────────────────────────────────────────────────────────┐
│ k13d │ Context: prod │ Namespace: default │ [Settings] [Help] │
├───────────┬─────────────────────────────────────────────────────┤
│ │ │
│ Resources │ Resource Table │
│ ─────────│ │
│ Pods │ NAME READY STATUS AGE │
│ Services │ nginx-abc 1/1 Running 2d │
│ Deploys │ api-def 2/2 Running 5d │
│ ConfigMaps│ │
│ Secrets │ │
│ ... │ │
│ │ │
├───────────┴─────────────────────────────────────────────────────┤
│ AI Assistant │
│ ───────────────────────────────────────────────────────────────│
│ Ask me anything about your cluster... │
│ [Send] │
└─────────────────────────────────────────────────────────────────┘
Navigation¶
Sidebar¶
| Section | Description |
|---|---|
| Workloads | Pods, Deployments, StatefulSets, DaemonSets |
| Config | ConfigMaps, Secrets |
| Network | Services, Ingresses, Endpoints |
| Storage | PVs, PVCs, StorageClasses |
| Cluster | Nodes, Namespaces, Events |
| Helm | Helm releases |
Resource Table¶
- Click row to view details
- Search bar for filtering
- Namespace dropdown for switching
- Refresh button for manual refresh
Resource Actions¶
Right-Click Menu¶
Right-click on any resource to see available actions:
| Action | Description |
|---|---|
| View YAML | Display full YAML manifest |
| Describe | Show resource description |
| Edit | Edit resource (opens YAML editor) |
| Delete | Delete resource (with confirmation) |
| AI Analyze | Get AI analysis |
Quick Actions¶
| Button | Description |
|---|---|
| 📋 | Copy resource name |
| 📄 | View YAML |
| 🔍 | Describe |
| 🗑️ | Delete |
| 🤖 | AI Analyze |
AI Assistant¶
Chat Interface¶
- Type your question in the input field
- Click "Send" or press Enter
- View streaming response
- Approve/reject tool requests
Example Queries¶
"Why is my nginx pod crashing?"
"Scale the api deployment to 5 replicas"
"Show me all pods with high CPU usage"
"Explain this HPA configuration"
Tool Approval¶
When AI needs to execute a command:
┌──────────────────────────────────────┐
│ Tool Approval Required │
│ │
│ kubectl get pods -n production │
│ │
│ [Approve] [Reject] │
└──────────────────────────────────────┘
Features¶
Dark/Light Theme¶
Toggle theme in Settings or click the theme icon in the header.
Real-time Updates¶
Resources update automatically. Configure refresh interval:
Settings → General → Refresh Interval
Keyboard Shortcuts¶
| Key | Action |
|---|---|
| Ctrl+K | Focus search |
| Ctrl+/ | Toggle AI panel |
| Esc | Close modal |
| ? | Show shortcuts |
Settings¶
LLM Configuration¶
Settings → AI → LLM Configuration
| Setting | Description |
|---|---|
| Provider | OpenAI, Ollama, Gemini, Anthropic |
| Model | gpt-4, llama3.2, etc. |
| Endpoint | Custom API endpoint |
| API Key | Provider API key |
MCP Servers¶
Settings → AI → MCP Servers
Manage external MCP servers for extended AI capabilities.
User Management¶
Settings → Admin → Users
| Action | Description |
|---|---|
| Add User | Create new user |
| Edit | Modify user settings |
| Delete | Remove user |
Reports¶
Generate comprehensive cluster reports with selectable sections:
- Navigate to Reports section
- Select report type:
- Cluster Overview - General health
- Security Audit - Security findings
- Cost Analysis - Resource costs
- Choose which sections to include (Nodes, Namespaces, Workloads, Events, Security, FinOps, Metrics)
- Configure options:
- Namespace filter
- Output format
- Click "Generate"
Custom Resource Detail¶
Click on any Custom Resource to view a rich detail modal:
- Overview tab with auto-detected status, metadata, key fields, spec/status summary, conditions table, labels, and annotations
- YAML tab with full manifest
- Events tab with related Kubernetes events
Pod Actions¶
View Logs¶
- Click on a pod
- Select container (if multiple)
- View streaming logs
- Options:
- Previous logs
- Follow
- Timestamps
- Download
Execute Shell¶
- Click on a pod
- Click "Exec" or 🖥️ icon
- Select container
- Enter commands in terminal
Port Forward¶
- Click on a pod
- Click "Port Forward"
- Configure:
- Local port
- Container port
- Click "Start"
- Access at
localhost:<port>
Deployment Actions¶
Scale¶
- Select deployment
- Click "Scale" or use slider
- Enter replica count
- Confirm
Restart¶
- Select deployment
- Click "Restart"
- Confirm rollout restart
Rollback¶
- Select deployment
- Click "Rollback"
- Select revision
- Confirm
Node Actions¶
Cordon/Uncordon¶
- Select node
- Click "Cordon" to prevent scheduling
- Click "Uncordon" to allow scheduling
Drain¶
- Select node
- Click "Drain"
- Configure options:
- Ignore DaemonSets
- Delete local data
- Force
- Confirm
API Access¶
The Web UI exposes REST APIs:
# Get pods
curl http://localhost:8080/api/k8s/pods
# With authentication
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/api/k8s/pods
# AI chat
curl -X POST http://localhost:8080/api/chat/agentic \
-H "Content-Type: application/json" \
-d '{"message": "list pods"}'
Mobile Support¶
The Web UI is responsive and works on mobile devices:
- Touch-friendly navigation
- Swipe gestures
- Collapsible panels
- Optimized for smaller screens
Security¶
Authentication¶
Enable password authentication:
Or in config:
HTTPS¶
For production, use a reverse proxy (nginx, traefik) with TLS.
Troubleshooting¶
WebSocket Connection Failed¶
- Check if port is accessible
- Verify no firewall blocking
- Try different browser
Slow Performance¶
- Reduce refresh interval
- Limit namespace scope
- Use filters to reduce data
AI Not Responding¶
- Check LLM configuration
- Verify API key
- Check network connectivity
Next Steps¶
- TUI Dashboard - Terminal interface
- Keyboard Shortcuts - All shortcuts
- Configuration - Full options