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
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* PTT Live Desktop - Preload Script
|
||||
* Bridge sécurisé entre Main Process et Renderer Process
|
||||
*/
|
||||
|
||||
const { contextBridge, ipcRenderer } = require('electron');
|
||||
|
||||
// Exposer l'API au renderer de manière sécurisée
|
||||
contextBridge.exposeInMainWorld('electronAPI', {
|
||||
// Contrôle serveur
|
||||
server: {
|
||||
start: () => ipcRenderer.invoke('server:start'),
|
||||
stop: () => ipcRenderer.invoke('server:stop'),
|
||||
status: () => ipcRenderer.invoke('server:status'),
|
||||
ping: () => ipcRenderer.invoke('server:ping'),
|
||||
|
||||
// Écouter les événements du serveur
|
||||
onStatus: (callback) => {
|
||||
ipcRenderer.on('server:status', (event, data) => callback(data));
|
||||
},
|
||||
onLog: (callback) => {
|
||||
ipcRenderer.on('server:log', (event, data) => callback(data));
|
||||
}
|
||||
},
|
||||
|
||||
// Helpers
|
||||
platform: process.platform,
|
||||
version: process.env.npm_package_version || '0.3.0'
|
||||
});
|
||||
|
||||
console.log('✅ Preload script chargé');
|
||||
Reference in New Issue
Block a user