Backend Go 1.23+ : - API REST + WebSocket (chi, gorilla/websocket) - Authentification PAM via SSH + JWT RS256 - Chiffrement AES-256-GCM pour secrets SQLite - Pool SSH, client Proxmox REST, hub WebSocket pub/sub - Système de modules compilés à initialisation conditionnelle - Audit log, migrations SQLite versionnées Frontend Vue 3 + Vite + TypeScript : - Thème Neumorphism sombre/clair (CSS custom properties) - Wizard d'installation, Dashboard drag-drop, Terminal xterm.js - Toutes les vues CORE + stubs modules optionnels - i18n EN/FR (vue-i18n v11) Infrastructure : - Docker multi-stage (Go → alpine, Node → nginx) - docker-compose.yml, .gitattributes, LICENSE MIT, README Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
# Module — Dashboard
|
|
|
|
**Type**: Core (always enabled)
|
|
|
|
Provides the main dashboard with a configurable, per-user widget grid.
|
|
|
|
## Features
|
|
|
|
- Drag-and-drop widget reordering (saved per user in SQLite)
|
|
- Add and remove widgets via modal
|
|
- Widget layout persisted across sessions
|
|
|
|
## Widget Types
|
|
|
|
| Type | Description |
|
|
|------|-------------|
|
|
| `shortcut` | Clickable link card (icon + label + URL) |
|
|
| `lxc_status` | Live status of a specific LXC container |
|
|
| `metrics` | Host CPU/RAM/disk summary |
|
|
|
|
## API Endpoints
|
|
|
|
| Method | Path | Auth | Description |
|
|
|--------|------|------|-------------|
|
|
| GET | `/api/dashboard/widgets` | JWT | Get current user's widget layout |
|
|
| PUT | `/api/dashboard/widgets` | JWT | Save widget layout |
|
|
|
|
## Widget Layout Format
|
|
|
|
```json
|
|
[
|
|
{ "id": "w1", "type": "shortcut", "config": { "label": "Proxmox", "url": "https://proxmox.example.com", "icon": "server" } },
|
|
{ "id": "w2", "type": "lxc_status", "config": { "vmid": 100 } },
|
|
{ "id": "w3", "type": "metrics", "config": {} }
|
|
]
|
|
```
|
|
|
|
## Database
|
|
|
|
Layouts are stored in the `user_widgets` table, keyed by user ID.
|
|
|
|
## License
|
|
|
|
MIT — see [LICENSE](../../LICENSE)
|