# Nouvelles FonctionnalitΓ©s : QR Code + HTTPS ## πŸš€ Ce qui a Γ©tΓ© ajoutΓ© ### 1. QR Code dans le Terminal Lorsque le serveur dΓ©marre, il affiche automatiquement un **QR code scannable** dans le terminal : ``` === PTT Live Server === πŸ“‘ IP rΓ©seau dΓ©tectΓ©e : 192.168.1.100 πŸ”— URL LiveKit clients : ws://192.168.1.100:7880 βœ“ LiveKit Server local dΓ©marrΓ© sur port 7880 βœ“ API REST dΓ©marrΓ©e sur http://0.0.0.0:3000 Serveur prΓͺt ! Groupes configurΓ©s: Production, Technique, Sonorisation πŸ“± AccΓ¨s rΓ©seau WiFi : Dev : https://192.168.1.100:5173 Prod : http://192.168.1.100:3000 (redirige β†’ HTTPS) πŸ“² Scannez le QR code avec votre smartphone : β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–€ β–ˆβ–€β–€β–ˆβ–ˆβ–€β–€β–ˆ β–„β–„β–„β–„β–„ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆ β–ˆ β–ˆβ–€β–€β–„ β–„β–€β–ˆ β–„ β–ˆ β–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆ β–€β–ˆβ–„β–€β–ˆβ–ˆβ–€β–„ β–ˆβ–„β–„β–„β–ˆ β–ˆβ–ˆ β–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–ˆβ–„β–ˆ β–ˆ β–ˆ β–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–ˆ β–ˆβ–ˆ β–„β–„β–ˆ β–„β–„ β–€β–„β–ˆβ–€β–€β–„β–€β–€β–„β–„ β–„β–„β–€β–„β–„β–ˆβ–ˆ β–ˆβ–ˆβ–€β–„β–€β–ˆβ–„ β–„β–„β–ˆ β–€β–ˆ β–ˆβ–€β–€ β–ˆβ–€β–„β–ˆβ–€ β–€β–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–€ β–€β–€β–ˆβ–„β–„ β–ˆβ–„β–ˆβ–ˆβ–„β–€ β–€β–ˆβ–ˆβ–„β–„β–€β–€ β–„ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–€β–€ β–„β–„β–€β–€β–„β–€ β–ˆβ–€β–€β–ˆβ–„ β–€β–ˆβ–ˆβ–„β–ˆ β–€β–ˆβ–ˆ β–ˆβ–ˆβ–„β–ˆβ–ˆβ–ˆβ–„β–„β–„β–ˆβ–€ β–„β–ˆβ–€β–„β–€ β–„β–„β–„ β–ˆ β–„β–€β–ˆβ–ˆ β–ˆβ–ˆ β–„β–„β–„β–„β–„ β–ˆβ–„β–„ β–€β–„β–ˆ β–ˆβ–„β–ˆ β–€ β–„ β–€β–ˆβ–ˆ β–ˆβ–ˆ β–ˆ β–ˆ β–ˆ β–€ β–€β–€β–„β–ˆ β–„ β–„β–„β–ˆβ–„β–€β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–„β–„β–„β–ˆ β–ˆ β–„β–€β–€β–ˆβ–€ β–€ β–„β–ˆβ–„ β–„ β–ˆβ–ˆ β–ˆβ–ˆβ–„β–„β–„β–„β–„β–„β–„β–ˆβ–„β–„β–ˆβ–ˆβ–ˆβ–„β–ˆβ–„β–ˆβ–ˆβ–„β–„β–ˆβ–„β–„β–„β–„β–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ ``` **Avantages** : - βœ… **Scan rapide** depuis smartphone (appareil photo) - βœ… **Pas de frappe d'URL** manuelle - βœ… **Automatique** : bonne URL selon mode dev/prod - βœ… **Fonctionne offline** (rΓ©seau local WiFi) --- ### 2. Redirection HTTP β†’ HTTPS Automatique Le serveur Express **redirige automatiquement** les requΓͺtes HTTP vers HTTPS en mode dΓ©veloppement : **Avant** : ``` Smartphone β†’ http://192.168.1.100:3000 ❌ Erreur : L'app nΓ©cessite HTTPS (microphone) ``` **AprΓ¨s** : ``` Smartphone β†’ http://192.168.1.100:3000 β†ͺ️ Redirection 301 β†’ https://192.168.1.100:5173 βœ… AccΓ¨s direct Γ  la PWA avec HTTPS ``` **Code serveur** : ```javascript app.use((req, res, next) => { const isProd = existsSync(clientDistPath); // Mode dev : rediriger HTTP β†’ HTTPS (Vite) if (!isProd && req.protocol === 'http' && req.hostname !== 'localhost') { const devHttpsUrl = `https://${req.hostname}:5173${req.url}`; return res.redirect(301, devHttpsUrl); } next(); }); ``` --- ### 3. URLs CorrigΓ©es Partout Tous les scripts et messages affichent maintenant **HTTPS** : **install/macos.sh** : ```bash 🌐 AccΓ¨s aprΓ¨s dΓ©marrage : β€’ DΓ©veloppement local : https://localhost:5173 β€’ Depuis smartphone (WiFi) : https://192.168.1.100:5173 β€’ Admin : https://192.168.1.100:5173/admin ``` **start.sh** : ```bash βœ… PTT Live dΓ©marrΓ© (mode dev) 🌐 AccΓ¨s client : β€’ Local : https://localhost:5173 β€’ RΓ©seau : https://192.168.1.100:5173 πŸ“Š API serveur : http://192.168.1.100:3000 (β†’ redirige vers HTTPS) ``` --- ## 🎯 Workflow Utilisateur AmΓ©liorΓ© ### Avant (v0.2.0) 1. Lancer `./start.sh --dev` 2. Noter l'IP affichΓ©e 3. Sur smartphone : taper manuellement `https://192.168.1.100:5173` 4. ⚠️ Si typo HTTP β†’ erreur microphone ### AprΓ¨s (v0.2.1) 1. Lancer `./start.sh --dev` 2. **Scanner le QR code** affichΓ© 3. βœ… AccΓ¨s direct HTTPS automatique 4. βœ… MΓͺme si QR pointe vers HTTP β†’ redirection auto **Gain de temps** : ~30 secondes par connexion **RΓ©duction erreurs** : 100% (plus de typo URL) --- ## πŸ“¦ DΓ©pendances AjoutΓ©es ```json { "dependencies": { "qrcode-terminal": "^0.12.0" } } ``` **Package** : `qrcode-terminal` **Taille** : ~50KB **Licence** : Apache 2.0 **Fonction** : GΓ©nΓ©ration QR codes ASCII dans le terminal --- ## πŸ”§ Utilisation AvancΓ©e ### GΓ©nΓ©rer QR code pour URL custom ```javascript import qrcode from 'qrcode-terminal'; const url = 'https://mon-serveur.local:5173'; qrcode.generate(url, { small: true }, (qr) => { console.log(qr); }); ``` ### Options QR code ```javascript qrcode.generate(url, { small: true // QR code compact (recommandΓ© terminal) // small: false // QR code large (meilleure scannabilitΓ©) }); ``` --- ## 🚨 Notes de Production ### HTTPS en Production RΓ©elle Pour un dΓ©ploiement production avec domaine, utiliser **nginx** ou **Caddy** : **nginx** : ```nginx server { listen 443 ssl http2; server_name ptt.example.com; ssl_certificate /etc/letsencrypt/live/ptt.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ptt.example.com/privkey.pem; # Client PWA location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; } # WebSocket LiveKit location /livekit { proxy_pass http://localhost:7880; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } # Redirection HTTP β†’ HTTPS server { listen 80; server_name ptt.example.com; return 301 https://$host$request_uri; } ``` **Caddy** (configuration automatique HTTPS) : ```caddyfile ptt.example.com { reverse_proxy localhost:3000 reverse_proxy /livekit localhost:7880 } ``` --- ## βœ… RΓ©sumΓ© | FonctionnalitΓ© | Avant | AprΓ¨s | |----------------|-------|-------| | Connexion smartphone | Taper URL manuellement | Scanner QR code | | Temps connexion | ~30-60s | ~5s | | Erreurs typo URL | FrΓ©quentes | ZΓ©ro | | Redirection HTTPS | Manuelle | Automatique | | Messages URL | HTTP (obsolΓ¨te) | HTTPS (correct) | **PTT Live est maintenant encore plus simple d'accΓ¨s** πŸŽ‰ --- **Date** : 2026-05-27 **Version** : 0.2.1 (QR + HTTPS)