33800 Docs

← Retour

Proposition: Lot 3 — Pages restantes Dashboard

Date: 16/02/2026 Status : IMPLEMENTEE Priorite: HAUTE (suite directe Lot 1-2)


Pages manquantes vs ancien dashboard

Page Script ancien Donnees necessaires Backend existant?
Architecture 09-architecture.sh VMs Proxmox, containers groupes par stack, ZFS, reseaux Partiel (docker, zfs, system)
Montages 06-montages.sh NFS mounts, symlinks, Docker volumes par serveur NON
Crons 08-crons.sh Status crons, historique rsync/gitlab, timeline 24h, schedulers containers NON
LinkedIn 15-linkedin.sh Profile LinkedIn, messages, campagne NON (tres specifique)

Analyse detaillee

1. Architecture (/architecture/)

Contenu: Vue globale infra — 2 hyperviseurs avec VMs, containers groupes par stack avec couleurs, stockage ZFS, reseaux.

Backend:

Nouveau backend necessaire:

Complexite: MOYENNE


2. Montages (/mounts/)

Contenu: Par serveur — NFS mounts, symlinks, Docker volumes.

Backend:

Nouveau backend necessaire:

Complexite: MOYENNE (SSH deja en place pour les 5 hosts)


3. Crons (/crons/)

Contenu: 4 crons systeme (monitoring, rsync 8to, rsync 1to, gitlab backup) avec:

Backend:

Nouveau backend necessaire:

Complexite: HAUTE (parsing logs, timeline JS, plusieurs SSH)


4. LinkedIn (/linkedin/)

Contenu: Profil LinkedIn, messages recents, campagne rebranding.

Analyse: Page tres specifique a la campagne LinkedIn (temporaire). Les donnees viennent de browser-connector qui n'est pas connecte au backend dashboard. La majorite du contenu est du texte statique (posts, headlines, checklist).

Recommendation: DEPRIORITISER — pas de valeur ops pour le monitoring. Si voulu, faire une page simple avec le contenu statique de la campagne sans backend.

Complexite: BASSE (si statique) / HAUTE (si connecte a browser-connector)


Proposition d'implementation

Ordre recommande

# Page Backend Frontend Justification
1 Architecture 1 endpoint (VMs Proxmox) Assemblage multi-endpoints Vue la plus utile, donne le contexte global
2 Montages 1 endpoint (SSH mounts) Cartes par serveur Utile, backend simple
3 Crons 3 endpoints (status, logs, schedulers) Timeline 24h + logs Le plus complexe, timeline JS
4 LinkedIn Aucun (statique) Page statique ou skip Optionnel

Detail implementation

Architecture — Backend

Nouveau fichier backend/src/collectors/proxmox.ts:

// Collecte VMs via Proxmox API (PVE + PVE155)
// GET /api2/json/nodes/{node}/qemu
// Retourne: [{name, vmid, status, maxmem, maxdisk, cpu}]

Nouveau endpoint GET /api/infra/vms dans routes/infra.ts (cache 120s)

Frontend: assemble /api/infra/vms + /api/docker/containers + /api/infra/zfs + data semi-statique (reseaux)

Montages — Backend

Ajout dans backend/src/collectors/ssh.ts:

export async function collectMounts(): Promise<MountInfo[]>
// SSH sur chaque host: mount -t nfs,nfs4 + docker volume ls

Nouveau endpoint GET /api/infra/mounts (cache 300s)

Crons — Backend

Nouveau fichier backend/src/collectors/crons.ts:

export async function collectCrons(): Promise<CronJob[]>
// SSH pour lire les logs rsync + gitlab backup
// Parse timestamps + status

export async function collectCronLogs(name: string): Promise<string>
// SSH pour tail -20 du log specifique

Endpoints:


Navigation mise a jour

Ajouts dans layout.tsx:

Infra ▼
  Overview
  RAIDZ
  Architecture    ← NEW
  Montages        ← NEW
  Syncthing
Crons             ← NEW

Estimation fichiers

Fichier Repo Action
backend/src/collectors/proxmox.ts monitoring CREER
backend/src/collectors/crons.ts monitoring CREER
backend/src/collectors/ssh.ts monitoring MODIFIER (ajout collectMounts)
backend/src/routes/infra.ts monitoring MODIFIER (ajout /vms, /mounts)
backend/src/routes/crons.ts monitoring CREER
backend/src/index.ts monitoring MODIFIER (ajout cronsRoutes)
src/routes/architecture/index.tsx frontend CREER
src/routes/mounts/index.tsx frontend CREER
src/routes/crons/index.tsx frontend CREER
src/lib/api.ts frontend MODIFIER
src/lib/types.ts frontend MODIFIER
src/routes/layout.tsx frontend MODIFIER