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:
2026-06-19 11:04:29 +02:00
parent 312d47d677
commit 530c3a10b2
16 changed files with 3072 additions and 1 deletions
+60
View File
@@ -0,0 +1,60 @@
{
"name": "ptt-live-desktop",
"version": "0.3.0",
"description": "PTT Live - Desktop Server Application",
"main": "main.js",
"scripts": {
"start": "electron .",
"dev": "electron . --dev",
"build": "electron-builder",
"build:mac": "electron-builder --mac",
"build:linux": "electron-builder --linux"
},
"build": {
"appId": "com.pttlive.desktop",
"productName": "PTT Live Server",
"directories": {
"output": "dist"
},
"files": [
"main.js",
"preload.js",
"ui/**/*",
"../server/**/*",
"!../server/node_modules",
"../server/node_modules/**/*"
],
"mac": {
"category": "public.app-category.utilities",
"icon": "assets/icon.icns",
"target": [
"dmg",
"zip"
]
},
"linux": {
"category": "AudioVideo",
"icon": "assets/icon.png",
"target": [
"deb",
"AppImage"
]
}
},
"keywords": [
"electron",
"webrtc",
"intercom",
"audio"
],
"author": "",
"license": "MIT",
"devDependencies": {
"electron": "^28.0.0",
"electron-builder": "^24.9.1"
},
"dependencies": {
"electron-store": "^8.1.0",
"qrcode": "^1.5.4"
}
}