Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8882ff5892 | |||
| b454fb2584 | |||
| e84ed7c731 | |||
| 70fc1e833d | |||
| d46fa708e7 |
@@ -0,0 +1,5 @@
|
||||
# Configuration PTT Live Client - Production
|
||||
# Le client est servi depuis le même domaine que l'API
|
||||
|
||||
# URLs relatives directes (pas de proxy /api)
|
||||
VITE_API_URL=.
|
||||
@@ -81,7 +81,7 @@ define(['./workbox-290dd570'], (function (workbox) { 'use strict';
|
||||
"revision": "3ca0b8505b4bec776b69afdba2768812"
|
||||
}, {
|
||||
"url": "index.html",
|
||||
"revision": "0.spc2v3301v8"
|
||||
"revision": "0.lhgefe7plc8"
|
||||
}], {});
|
||||
workbox.cleanupOutdatedCaches();
|
||||
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
|
||||
|
||||
File diff suppressed because one or more lines are too long
+6
-3
@@ -100,14 +100,17 @@ function App() {
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
// Adapter l'URL LiveKit selon le protocole de la page
|
||||
// En mode dev (HTTPS via Vite), utiliser le proxy WebSocket
|
||||
// En mode prod (HTTP direct), utiliser l'URL LiveKit directement
|
||||
let livekitUrl = data.url;
|
||||
if (window.location.protocol === 'https:') {
|
||||
// En HTTPS, utiliser le proxy WSS local via Vite
|
||||
|
||||
if (import.meta.env.DEV && window.location.protocol === 'https:') {
|
||||
// Mode dev avec Vite : utiliser le proxy WSS
|
||||
livekitUrl = `${window.location.protocol}//${window.location.host}/livekit`;
|
||||
}
|
||||
|
||||
console.log('🔗 Connexion LiveKit:', livekitUrl);
|
||||
console.log('📝 Mode:', import.meta.env.DEV ? 'dev' : 'prod');
|
||||
|
||||
// Se connecter à LiveKit avec les canaux virtuels
|
||||
await connect(livekitUrl, data.token, data.virtualChannels || []);
|
||||
|
||||
+11
-4
@@ -221,11 +221,14 @@ app.use('/admin', adminRouter);
|
||||
|
||||
// ========== Routes API ==========
|
||||
|
||||
// Créer un router pour les routes API
|
||||
const apiRouter = express.Router();
|
||||
|
||||
/**
|
||||
* GET /config
|
||||
* Retourne la configuration des groupes
|
||||
*/
|
||||
app.get('/config', (req, res) => {
|
||||
apiRouter.get('/config', (req, res) => {
|
||||
try {
|
||||
const clientConfig = {
|
||||
groups: config.groups.map(g => ({
|
||||
@@ -249,7 +252,7 @@ app.get('/config', (req, res) => {
|
||||
* GET /groups
|
||||
* Retourne la liste des groupes disponibles (simplifié)
|
||||
*/
|
||||
app.get('/groups', (req, res) => {
|
||||
apiRouter.get('/groups', (req, res) => {
|
||||
try {
|
||||
const groups = config.groups.map(g => ({
|
||||
id: g.id,
|
||||
@@ -268,7 +271,7 @@ app.get('/groups', (req, res) => {
|
||||
* Génère un token LiveKit pour un client
|
||||
* Body: { username: string, groupId: string }
|
||||
*/
|
||||
app.post('/token', async (req, res) => {
|
||||
apiRouter.post('/token', async (req, res) => {
|
||||
try {
|
||||
const { username, groupId } = req.body;
|
||||
|
||||
@@ -347,7 +350,7 @@ app.post('/token', async (req, res) => {
|
||||
* GET /health
|
||||
* Health check
|
||||
*/
|
||||
app.get('/health', (req, res) => {
|
||||
apiRouter.get('/health', (req, res) => {
|
||||
const isLivekitRunning = livekitProcess !== null;
|
||||
res.json({
|
||||
status: isLivekitRunning ? 'ok' : 'degraded',
|
||||
@@ -356,6 +359,10 @@ app.get('/health', (req, res) => {
|
||||
});
|
||||
});
|
||||
|
||||
// Monter le router API sous /api ET à la racine (rétrocompatibilité)
|
||||
app.use('/api', apiRouter);
|
||||
app.use(apiRouter); // Routes accessibles aussi sans préfixe /api
|
||||
|
||||
/**
|
||||
* GET /
|
||||
* Info serveur OU client PWA (si build existe)
|
||||
|
||||
+3
-3
@@ -27,11 +27,11 @@ NETWORK_IP=$(get_network_ip)
|
||||
|
||||
# Déterminer l'URL selon mode dev ou prod
|
||||
if [ -d "client/dist" ] && [ "$1" != "--dev" ]; then
|
||||
# Mode production
|
||||
URL="http://${NETWORK_IP}:3000"
|
||||
# Mode production (HTTPS)
|
||||
URL="https://${NETWORK_IP}:3000"
|
||||
MODE="production"
|
||||
else
|
||||
# Mode dev
|
||||
# Mode dev (HTTPS)
|
||||
URL="https://${NETWORK_IP}:5173"
|
||||
MODE="dev"
|
||||
fi
|
||||
|
||||
@@ -107,8 +107,16 @@ cd ..
|
||||
# Attendre que le serveur soit prêt
|
||||
echo ""
|
||||
echo -e "${YELLOW}⏳ Attente démarrage serveur...${NC}"
|
||||
|
||||
# Déterminer le protocole selon le mode
|
||||
if [ "$1" != "--dev" ]; then
|
||||
HEALTH_URL="https://localhost:3000/health"
|
||||
else
|
||||
HEALTH_URL="http://localhost:3000/health"
|
||||
fi
|
||||
|
||||
for i in {1..30}; do
|
||||
if curl -sf http://localhost:3000/health > /dev/null 2>&1; then
|
||||
if curl -kssf "$HEALTH_URL" > /dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Serveur prêt${NC}"
|
||||
break
|
||||
fi
|
||||
@@ -184,6 +192,7 @@ else
|
||||
echo -e "${YELLOW} (Cliquez sur 'Avancé' puis 'Continuer')${NC}"
|
||||
echo ""
|
||||
echo "🎛️ Interface admin : https://localhost:3000/admin"
|
||||
echo "📊 API serveur : https://localhost:3000/api"
|
||||
echo ""
|
||||
echo "📝 Logs serveur : tail -f server.log"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user