#!/bin/bash set -e echo "🚀 PTT Live - Installation macOS" echo "==================================" echo "" # Couleurs pour le terminal GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # VĂ©rifier Node.js echo "📩 VĂ©rification Node.js..." if ! command -v node &> /dev/null; then echo -e "${RED}❌ Node.js n'est pas installĂ©${NC}" echo " Installez Node.js 20+ depuis https://nodejs.org" exit 1 fi NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1) if [ "$NODE_VERSION" -lt 20 ]; then echo -e "${RED}❌ Node.js version trop ancienne ($NODE_VERSION)${NC}" echo " Node.js 20+ requis" exit 1 fi echo -e "${GREEN}✅ Node.js $(node -v)${NC}" # VĂ©rifier npm if ! command -v npm &> /dev/null; then echo -e "${RED}❌ npm n'est pas installĂ©${NC}" exit 1 fi echo -e "${GREEN}✅ npm $(npm -v)${NC}" echo "" # VĂ©rifier Homebrew echo "đŸș VĂ©rification Homebrew..." if ! command -v brew &> /dev/null; then echo -e "${RED}❌ Homebrew n'est pas installĂ©${NC}" echo " Installez Homebrew depuis https://brew.sh" echo " Ou exĂ©cutez :" echo " /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"" exit 1 fi echo -e "${GREEN}✅ Homebrew $(brew --version | head -n 1)${NC}" echo "" # Installer sox (audio backend stable pour macOS) echo "đŸŽ” Installation sox (audio backend)..." if command -v sox &> /dev/null; then echo -e "${GREEN}✅ sox dĂ©jĂ  installĂ© ($(sox --version | head -n 1))${NC}" else brew install sox echo -e "${GREEN}✅ sox installĂ©${NC}" fi echo "" # Installer LiveKit Server via Homebrew echo "đŸ“„ Installation LiveKit Server..." if command -v livekit-server &> /dev/null; then CURRENT_VERSION=$(livekit-server --version 2>&1 | head -n 1 || echo "version inconnue") echo -e "${YELLOW}⚠ LiveKit Server dĂ©jĂ  installĂ© ($CURRENT_VERSION)${NC}" read -p " Mettre Ă  jour ? (o/N) " -n 1 -r echo if [[ $REPLY =~ ^[Oo]$ ]]; then brew upgrade livekit echo -e "${GREEN}✅ LiveKit Server mis Ă  jour${NC}" else echo -e "${GREEN}✅ LiveKit Server existant conservĂ©${NC}" fi else brew install livekit echo -e "${GREEN}✅ LiveKit Server installĂ©${NC}" fi echo "" # Installer dĂ©pendances serveur echo "📩 Installation dĂ©pendances serveur..." cd ./server npm install echo -e "${GREEN}✅ DĂ©pendances serveur installĂ©es${NC}" echo "" # Installer dĂ©pendances client echo "📩 Installation dĂ©pendances client..." cd ../client npm install echo -e "${GREEN}✅ DĂ©pendances client installĂ©es${NC}" echo "" cd .. # DĂ©tecter l'IP rĂ©seau locale echo "🌐 DĂ©tection configuration rĂ©seau..." NETWORK_IP=$(ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1) if [ -z "$NETWORK_IP" ]; then echo -e "${YELLOW}⚠ IP rĂ©seau non dĂ©tectĂ©e, utilisation localhost${NC}" NETWORK_IP="localhost" else echo -e "${GREEN}✅ IP rĂ©seau dĂ©tectĂ©e : ${NETWORK_IP}${NC}" fi echo "" # CrĂ©er fichier .env serveur echo "🔑 GĂ©nĂ©ration configuration serveur..." cat > server/.env << EOF # Configuration PTT Live Server # GĂ©nĂ©rĂ© automatiquement par install/macos.sh USE_LOCAL_LIVEKIT=true # LiveKit Configuration # AUTO = dĂ©tection automatique IP rĂ©seau au dĂ©marrage LIVEKIT_URL=AUTO # En mode --dev, LiveKit utilise ces clĂ©s par dĂ©faut LIVEKIT_API_KEY=devkey LIVEKIT_API_SECRET=secret # Server Configuration PORT=3000 NODE_ENV=development EOF echo -e "${GREEN}✅ Configuration serveur gĂ©nĂ©rĂ©e (server/.env)${NC}" # CrĂ©er fichier .env client echo "🔑 GĂ©nĂ©ration configuration client..." cat > client/.env << EOF # Configuration PTT Live Client # GĂ©nĂ©rĂ© automatiquement par install/macos.sh # En dĂ©veloppement local, utilise le proxy Vite VITE_API_URL=/api # Pour accĂšs rĂ©seau (autres devices), dĂ©commentez et mettez l'IP du serveur : # VITE_API_URL=http://${NETWORK_IP}:3000 EOF echo -e "${GREEN}✅ Configuration client gĂ©nĂ©rĂ©e (client/.env)${NC}" echo "" # Message final echo "==================================" echo -e "${GREEN}✅ Installation terminĂ©e !${NC}" echo "" echo "🚀 DĂ©marrage rapide :" echo "" echo " # Mode dĂ©veloppement (recommandĂ©)" echo " ./start.sh --dev" echo "" echo " # Mode production" echo " ./start.sh" echo "" echo "📝 OU manuellement (deux terminaux) :" echo "" echo " Terminal 1 : cd server && npm run dev" echo " Terminal 2 : cd client && npm run dev" echo "" echo "🌐 AccĂšs aprĂšs dĂ©marrage :" echo " ‱ DĂ©veloppement local : https://localhost:5173" echo " ‱ Depuis autre appareil (WiFi) : https://${NETWORK_IP}:5173" echo " ‱ Production : http://${NETWORK_IP}:3000" echo "" echo "💡 Configuration rĂ©seau :" echo " IP serveur dĂ©tectĂ©e : ${NETWORK_IP}" echo " LiveKit URL : AUTO (dĂ©tection dynamique)" echo "" echo "📖 Documentation :" echo " ‱ README.md - Guide complet" echo " ‱ README-PORTABLE.md - DĂ©ploiement portable" echo ""