#!/bin/bash # =========================================== # LeDiscord - Script de setup automatique # =========================================== set -e # Arrêter en cas d'erreur echo "🚀 Démarrage du setup de LeDiscord..." # Vérifier que Docker est installé if ! command -v docker &> /dev/null; then echo "❌ Docker n'est pas installé. Veuillez l'installer d'abord." exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ Docker Compose n'est pas installé. Veuillez l'installer d'abord." exit 1 fi echo "✅ Docker et Docker Compose sont installés" # Vérifier que les ports sont disponibles check_port() { local port=$1 if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null ; then echo "❌ Le port $port est déjà utilisé. Veuillez le libérer." exit 1 fi } echo "🔍 Vérification des ports..." check_port 8000 check_port 5173 check_port 5432 echo "✅ Tous les ports sont disponibles" # Créer le fichier .env s'il n'existe pas if [ ! -f .env ]; then echo "📝 Création du fichier .env..." if [ -f env.example ]; then cp env.example .env echo "⚠️ Fichier .env créé à partir de env.example" echo "⚠️ IMPORTANT: Modifiez le fichier .env avec vos valeurs avant de continuer" echo "⚠️ Appuyez sur Entrée quand vous avez terminé..." read else echo "❌ Fichier env.example non trouvé. Créez manuellement votre fichier .env" exit 1 fi else echo "✅ Fichier .env existe déjà" fi # Créer le dossier uploads s'il n'existe pas if [ ! -d uploads ]; then echo "📁 Création du dossier uploads..." mkdir -p uploads touch uploads/.gitkeep fi # Construire et démarrer les services echo "🔨 Construction des images Docker..." docker-compose build echo "🚀 Démarrage des services..." docker-compose up -d # Attendre que les services soient prêts echo "⏳ Attente que les services soient prêts..." sleep 30 # Vérifier que les services fonctionnent echo "🔍 Vérification des services..." if curl -s http://localhost:8000/health > /dev/null; then echo "✅ Backend accessible sur http://localhost:8000" else echo "❌ Backend non accessible" fi if curl -s http://localhost:5173 > /dev/null; then echo "✅ Frontend accessible sur http://localhost:5173" else echo "❌ Frontend non accessible" fi echo "" echo "🎉 Setup terminé avec succès !" echo "" echo "📱 Accès à l'application :" echo " Frontend: http://localhost:5173" echo " API Docs: http://localhost:8000/docs" echo "" echo "🔑 Compte admin par défaut :" echo " Email: admin@lediscord.com" echo " Mot de passe: Celui défini dans votre fichier .env" echo "" echo "📚 Commandes utiles :" echo " make start - Démarrer l'application" echo " make stop - Arrêter l'application" echo " make logs - Voir les logs" echo " make help - Afficher l'aide" echo "" echo "⚠️ N'oubliez pas de :" echo " 1. Changer le mot de passe admin par défaut" echo " 2. Configurer une clé JWT_SECRET_KEY sécurisée" echo " 3. Configurer l'email si nécessaire"