feat: QR code dans script séparé show-qr.sh pour logs propres
- Création show-qr.sh : génère et affiche QR code avant lancement serveur - Détection auto mode dev/prod pour URL correcte - start.sh appelle show-qr.sh puis lance serveur silencieusement - Logs serveur uniquement dans server.log (terminal propre) - Suppression génération QR dans server/index.js (plus nécessaire) - Suppression dépendance qrcode-terminal dans server (utilisé via npx dans show-qr.sh)
This commit is contained in:
@@ -21,8 +21,10 @@ class AudioBridgeManager extends EventEmitter {
|
||||
|
||||
/**
|
||||
* Démarre le bridge audio avec la configuration actuelle
|
||||
* @param {Object} options - Options de démarrage
|
||||
* @param {string} options.liveKitUrl - URL LiveKit résolue (déjà avec IP si AUTO)
|
||||
*/
|
||||
async start() {
|
||||
async start(options = {}) {
|
||||
if (this.isRunning) {
|
||||
console.warn('⚠️ AudioBridge déjà démarré');
|
||||
return;
|
||||
@@ -83,11 +85,14 @@ class AudioBridgeManager extends EventEmitter {
|
||||
const inputDeviceId = audioConfig.device?.inputDeviceId || null;
|
||||
const outputDeviceId = audioConfig.device?.outputDeviceId || null;
|
||||
|
||||
// Utiliser l'URL résolue passée en option, sinon fallback config
|
||||
const liveKitUrl = options.liveKitUrl || config.server?.livekit?.url || 'ws://localhost:7880';
|
||||
|
||||
// Créer l'instance avec la config
|
||||
this.bridge = new AudioBridge({
|
||||
...audioConfig,
|
||||
// Options LiveKit
|
||||
liveKitUrl: config.server?.livekit?.url || 'ws://localhost:7880',
|
||||
liveKitUrl,
|
||||
liveKitToken,
|
||||
roomName: 'main',
|
||||
// Options de routing
|
||||
|
||||
+1
-14
@@ -9,7 +9,6 @@ import { dirname, join } from 'path';
|
||||
import { networkInterfaces } from 'os';
|
||||
import YAML from 'yaml';
|
||||
import { AccessToken } from 'livekit-server-sdk';
|
||||
import qrcode from 'qrcode-terminal';
|
||||
import adminRouter, { registerUser, addLog } from './api/admin.js';
|
||||
import configManager from './config/ConfigManager.js';
|
||||
import audioBridgeManager from './bridge/AudioBridgeManager.js';
|
||||
@@ -428,18 +427,6 @@ async function start() {
|
||||
log('info', ` Dev : ${clientUrl}`);
|
||||
log('info', ` Prod : ${prodUrl} (redirige → HTTPS)`);
|
||||
log('info', '');
|
||||
log('info', '📲 Scannez le QR code avec votre smartphone :');
|
||||
log('info', '');
|
||||
|
||||
// Générer QR code (utilise URL dev par défaut, ou prod si dist existe)
|
||||
const clientDistPath = join(__dirname, '..', 'client', 'dist');
|
||||
const qrUrl = existsSync(clientDistPath) ? prodUrl : clientUrl;
|
||||
|
||||
qrcode.generate(qrUrl, { small: true }, (qr) => {
|
||||
console.log(qr);
|
||||
});
|
||||
|
||||
log('info', '');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -451,7 +438,7 @@ async function start() {
|
||||
// 3. Démarrer Audio Bridge Manager (Phase 2.5)
|
||||
log('info', '');
|
||||
log('info', '🎵 Démarrage Audio Bridge Manager...');
|
||||
await audioBridgeManager.start();
|
||||
await audioBridgeManager.start({ liveKitUrl: LIVEKIT_URL });
|
||||
log('info', '✓ Audio Bridge Manager prêt (mode placeholder)');
|
||||
|
||||
// Gérer erreur port déjà utilisé
|
||||
|
||||
Reference in New Issue
Block a user