Commit Graph

7 Commits

Author SHA1 Message Date
benoit 865d40b7db fix: appliquer rendererReady check aux events stdout aussi
Complète le commit précédent : tous les webContents.send() vérifient rendererReady
2026-06-19 13:31:55 +02:00
benoit bc2d5a0940 fix: attendre que le renderer soit prêt avant d'envoyer events
Problème : mainWindow.webContents.send() appelé avant que la page soit chargée
→ Events perdus, interface ne se met pas à jour

Solution :
- Nouveau flag rendererReady
- Event 'did-finish-load' pour détecter quand le renderer est prêt
- Tous les webContents.send() vérifient maintenant rendererReady
- Envoi de l'état initial du serveur quand interface charge

Résultat : Interface reçoit toujours les updates d'état serveur
2026-06-19 13:31:38 +02:00
benoit ad214f644b fix: démarrage manuel et gestion état serveur
Corrections :
- Serveur NE démarre PLUS automatiquement au lancement
- Utilisateur doit cliquer "Démarrer" (contrôle explicite)
- Logs stderr LiveKit traités comme INFO (pas ERROR)
- Détection démarrage dans stderr aussi ("starting LiveKit server")
- Frontend : charge données seulement si serveur actif
- Polling démarre/arrête selon état serveur
- État initial : bouton Démarrer enabled, Arrêter disabled

Expérience :
1. Lancer app → Interface visible, serveur arrêté
2. Cliquer "Démarrer" → Serveur démarre
3. Dashboard se met à jour automatiquement
4. Cliquer "Arrêter" → Serveur s'arrête, polling stop

Plus de démarrage automatique surprise !
2026-06-19 13:29:11 +02:00
benoit f0cf363408 feat: setup automatique certificats SSL au premier lancement
Nouveau : setup-helper.js
- Détecte si mkcert est installé
- Installe mkcert automatiquement (Homebrew macOS, curl Linux)
- Installe CA locale (mkcert -install)
- Génère certificats pour localhost + IP réseau
- Détection automatique IP WiFi

Intégration dans main.js :
- Vérifie certificats au démarrage
- Si absents : dialog onboarding + setup auto
- Dialog progress "Configuration en cours..."
- Dialog success avec IP réseau
- Dialog error si échec (fallback manuel)
- Ne démarre serveur que si certificats OK

Expérience utilisateur :
1. Lancer l'app (première fois)
2. Dialog : "Première utilisation, configuration..."
3. Cliquer "Continuer"
4. Attendre 1-2 min (installation mkcert + CA + certificats)
5. Dialog : "Configuration terminée, IP: 192.168.x.x"
6. Serveur démarre automatiquement

Prochaines fois : détection certificats OK → démarre direct

L'utilisateur n'a RIEN à faire manuellement !
2026-06-19 13:24:51 +02:00
benoit 8a7e98ae47 fix: déplacer handlers IPC dans app.whenReady()
Les handlers ipcMain.handle() doivent être définis après app.whenReady()
sinon ipcMain est undefined

Résout: TypeError: Cannot read properties of undefined (reading 'handle')
2026-06-19 13:14:54 +02:00
benoit 17afd6e5f1 fix: correction démarrage serveur dans Electron
- Logs LiveKit vont dans stderr (normal pour Go), ne pas traiter comme erreurs
- Transmettre tous les logs au renderer (stdout + stderr)
- Détecter "Serveur prêt" dans stdout pour confirmer démarrage
- Timeout augmenté à 15s avec health check avant de résoudre
- Suppression filtres logs verbeux qui cachaient les messages importants

Résout : serveur tué immédiatement après démarrage
2026-06-19 13:13:41 +02:00
benoit 530c3a10b2 feat: application desktop Electron avec interface graphique complète
- Main Process spawn serveur automatiquement avec IPC sécurisé
- Dashboard temps réel : stats, utilisateurs, QR Code
- Configuration audio : devices, sample rate, bitrate, jitter buffer
- Gestion groupes : CRUD complet via API admin
- Monitoring : logs temps réel filtrables par niveau
- Notifications : toast visuelles avec auto-dismiss
- Packaging : electron-builder pour macOS (.dmg) et Linux (.deb/.AppImage)
- Documentation : README technique, QUICKSTART, CHANGELOG, guide utilisateur

Structure :
- electron/main.js (333 lignes) : Main Process + spawn serveur
- electron/preload.js (31 lignes) : IPC bridge sécurisé
- electron/ui/index.html (187 lignes) : interface dashboard
- electron/ui/styles.css (556 lignes) : dark theme
- electron/ui/app.js (626 lignes) : logic frontend

Total : 1733 lignes de code

Lancement : ./start-desktop.sh

API utilisées : /admin/stats, /admin/users, /admin/groups, /admin/config, /admin/devices/list

TODO : WebSocket VU-mètres, icônes, tray menu, graphiques monitoring
2026-06-19 11:04:29 +02:00