Dex App — Mission Control
Dashboard personnel de Dex — Veille, kanban, système, et outils pour le quotidien.
Stack
| Composant | Technologie |
|---|---|
| Framework | Next.js 16 + React 19 |
| Style | Tailwind CSS 4 (dark mode, palette Apple-like) |
| Runtime | Node.js 22 |
| Build | Turbopack |
| Port | 3000 |
| URL | https://board.homemap.fr |
Pages
/ — Dashboard
Vue d'ensemble avec KPIs cliquables.
KPIs Tâches : Drafts, En cours, À valider, Fait, Urgent → /kanban
KPIs Services : Wishlist (livres SF) → /wishlist, YouTube (pending) → /youtube
KPI Sécurité : Badge vert/jaune/gris. Cliquable → modale avec rapport d'audit complet (markdown rendu)
Métriques Système : CPU, RAM, disque, réseau via Glances API
/kanban — Board de Tâches
Kanban drag & drop, 6 colonnes : draft → in_progress → to_validate → done → archived
Données : ~/.openclaw/workspace/kanban-tasks.json
/veille — Veille Continue
Articles collectés par le pipeline de veille automatique.
Fonctionnalités : - Filtre par score minimum (75+, 80+, 90+) - Bouton Wishlist (ajouter/retirer de la veille) - Bouton Générer (lancer sous-agent pour article IDex) - Lien Source (ouvrir l'article original) - Pitch affiché (extrait du résumé auto-généré)
/wishlist — Wishlist SF 📚
Livres de science-fiction avec recommandations personnalisées.
Fonctionnalités : - Score personnalisé (0-5) avec badge couleur (orange ≥4, yellow ≥3, gray <3) - Tri par score décroissant - Chevron dépliable → 4ème de couverture + recommandation personnalisée ("Pourquoi ça te plairait") - Bouton Télécharger (recherche Shelfmark) - Bouton Lu / Supprimer - 22 livres (scan complet des Morning Briefs mars 2026)
Sources fusionnées (dans l'ordre de priorité) :
1. wishlist-scan.json — Scan sous-agent avec blurb, why_marc, score (écrase les autres)
2. wishlist-compiled.json — Compilé depuis MB (méta-données basiques)
3. wishlist.json — Ajouts manuels
Cron quotidien (18h00) : Sous-agent scanne les 3 derniers jours de MB, extrait les livres SF, les score et génère blurb + recommandation personnalisée basée sur les lectures de Marc.
/youtube — YouTube Wishlist
Vidéos YouTube en attente avec scoring automatique (0-25, 5 critères).
/library — Bibliothèque Calibre
Accès à la bibliothèque Calibre via NFS (~/mnt/calibre-library).
/activity — Journal d'Activité
Parse les fichiers memory/YYYY-MM-DD.md (7 derniers jours).
/images — Gestion Médias
Upload et notation d'images.
/cron — Cron Jobs
Dashboard des jobs OpenClaw avec détail et historique des runs.
API
| Endpoint | Méthode | Description |
|---|---|---|
/api/kanban |
GET/POST | CRUD tâches kanban |
/api/security |
GET | Résumé audit (badge KPI) |
/api/security/report |
GET | Rapport audit complet (markdown) |
/api/veille |
GET | Articles veille filtrés par min_score |
/api/veille/generate |
POST | Lancer génération article |
/api/veille/wishlist/add |
POST | Ajouter article en wishlist veille |
/api/veille/wishlist/remove |
POST | Retirer de wishlist veille |
/api/wishlist-books |
GET | Liste livres SF (fusion 3 sources, triés par score) |
/api/wishlist-books |
POST | Actions : download, read, remove |
/api/wishlist |
GET | KPIs dashboard (compteurs youtube + wishlist) |
/api/youtube |
GET | Liste vidéos wishlist |
/api/youtube/rate |
POST | Noter vidéo |
/api/youtube/toggle-watched |
POST | Marquer vue |
/api/youtube/remove |
POST | Supprimer vidéo |
/api/library |
GET | Catalogue Calibre |
/api/activities |
GET | Activité 7 jours |
/api/system |
GET | Métriques Glances |
/api/tasks |
GET | Tâches |
/api/cron |
GET | Liste cron jobs |
/api/cron/[id] |
GET | Détail + historique job |
/api/images |
GET/POST | Liste / upload images |
/api/images/rate |
POST | Noter image |
/api/images/[id] |
DELETE | Supprimer image |
Données
| Fichier | Description |
|---|---|
~/.openclaw/workspace/kanban-tasks.json |
Tâches kanban |
~/.openclaw/workspace/veille/selections-*.json |
Articles veille (quotidien) |
~/.openclaw/workspace/services/data/wishlist.json |
Wishlist livres (ajouts manuels) |
~/.openclaw/workspace/services/data/wishlist-compiled.json |
Wishlist compilée (script legacy) |
~/.openclaw/workspace/services/data/wishlist-scan.json |
Wishlist scan sous-agent (blurb + why_marc + score) |
~/.openclaw/workspace/services/data/youtube-wishlist.json |
YouTube wishlist |
~/.openclaw/workspace/memory/security/security-report-*.md |
Rapports audit |
~/.openclaw/workspace/memory/YYYY-MM-DD.md |
Journal activité |
Architecture
~/Documents/mission-control/
├── src/
│ ├── app/ # Pages Next.js (App Router)
│ │ ├── page.tsx # Dashboard
│ │ ├── kanban/ # Board tâches
│ │ ├── veille/ # Veille continue
│ │ ├── wishlist/ # Wishlist SF (blurb + recommandation)
│ │ ├── youtube/ # YouTube wishlist
│ │ ├── library/ # Calibre
│ │ ├── activity/ # Journal
│ │ ├── images/ # Médias
│ │ ├── cron/ # Jobs OpenClaw
│ │ └── api/ # Endpoints API
│ └── components/
│ ├── Sidebar.tsx # Navigation latérale
│ └── SystemMetrics.tsx # Glances
└── public/
Wishlist SF — Détails
Scoring personnalisé (0-5)
Basé sur les lectures de Marc (USER.md) :
| Critère | Points |
|---|---|
| Même auteur qu'un livre déjà lu | +2 |
| Même univers/cycle (Culture, Hyperion...) | +1 |
| Même thème récurrent (conscience IA, singularité, post-humanité) | +1 |
| Mentionné dans un MB récent | +1 |
| Déjà lu | -2 |
Format livre enrichi
{
"title": "Exhalation",
"author": "Ted Chiang",
"year": 2008,
"score": 3,
"blurb": "Une civilisation d'êtres mécaniques...",
"why_marc": "Acceptation lucide de la finitude...",
"score_details": "same_author: 2, same_theme: 1, recent_mb: 0"
}
Cron de scan
Nom : Scan MB Book Recommendations
Horaire : Tous les jours à 18h00
Mode : Sous-agent isolé
Action :
1. Scan des MB des 3 derniers jours
2. Extraction des livres SF
3. Scoring personnalisé
4. Génération blurb + recommandation
5. Sauvegarde dans wishlist-scan.json
6. Annonce Telegram si nouveaux livres
Audit Sécurité
Rapport complet accessible : Clic sur le KPI Sécu → modale avec rapport markdown rendu.
- Titres (##, ###)
- Tableaux
- Badges (⚠️ alertes, ✅ ok)
- Sections : Supply Chain, Docker, Réseau, Credentials, Intégrité
Dark Mode
Palette Apple-like :
| Élément | Couleur |
|---|---|
| Texte principal | #f5f5f7 |
| Texte secondaire | #98989d |
| Cards | #2c2c2e |
| Background sidebar | #1a1a2e |
| Borders | #48484a |
Cron Jobs Liés
| Job | Heure | Description |
|---|---|---|
| Veille collecte | 12h00 | Scan RSS + scoring articles |
| Veille propositions | 21h30 | Envoie propositions Telegram |
| Veille production | 22h00 | Génère articles validés |
| Scan wishlist SF | 18h00 | Sous-agent scanne MB pour livres |
| Security audit | 04h00 | Audit automatisé infrastructure |
| Morning Brief | 06h30 | Bulletin quotidien |
Déploiement
Note : Pas encore de service systemd. Le serveur doit être relancé manuellement après un build.
Historique des changements (28 mars 2026)
- ✅ Rapport audit sécurité — Modale complète sur dashboard
- ✅ Page Veille — Fix structure données (selections vs articles), pitch objet géré
- ✅ Page Wishlist SF — Blurb, recommandation personnalisée, scoring, téléchargement
- ✅ Cron scan livres — Sous-agent quotidien 18h, scoring personnalisé
- ✅ Suppression IPs locales — Tous les liens pointent vers routes internes
- ✅ Documentation — Cet article
Dex App v2 — 28 mars 2026