#!/bin/bash # Script de configuration automatique pour FireWatch AI # Créé par Marino ATOHOUN set -e # Couleurs pour les messages RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' NC='\033[0m' # No Color # Fonction de logging log() { echo -e "${GREEN}[$(date +'%H:%M:%S')] $1${NC}" } error() { echo -e "${RED}[$(date +'%H:%M:%S')] ERROR: $1${NC}" exit 1 } warning() { echo -e "${YELLOW}[$(date +'%H:%M:%S')] WARNING: $1${NC}" } info() { echo -e "${BLUE}[$(date +'%H:%M:%S')] INFO: $1${NC}" } # Banner echo -e "${PURPLE}" echo "🔥 ========================================= 🔥" echo " FireWatch AI - Configuration Setup" echo " Créé par Marino ATOHOUN" echo "🔥 ========================================= 🔥" echo -e "${NC}" # Vérification des prérequis log "Vérification des prérequis..." # Vérifier Python if ! command -v python3.11 &> /dev/null; then if ! command -v python3 &> /dev/null; then error "Python 3.11+ requis. Veuillez l'installer d'abord." else PYTHON_VERSION=$(python3 --version | cut -d' ' -f2 | cut -d'.' -f1,2) if [[ $(echo "$PYTHON_VERSION < 3.11" | bc -l) -eq 1 ]]; then error "Python 3.11+ requis. Version actuelle: $PYTHON_VERSION" fi PYTHON_CMD="python3" fi else PYTHON_CMD="python3.11" fi log "✓ Python trouvé: $($PYTHON_CMD --version)" # Vérifier pip if ! command -v pip3 &> /dev/null; then error "pip3 requis. Veuillez l'installer d'abord." fi log "✓ pip trouvé: $(pip3 --version)" # Vérifier git if ! command -v git &> /dev/null; then error "git requis. Veuillez l'installer d'abord." fi log "✓ git trouvé: $(git --version)" # Configuration de l'environnement virtuel log "Configuration de l'environnement virtuel..." if [ ! -d "venv" ]; then info "Création de l'environnement virtuel..." $PYTHON_CMD -m venv venv else info "Environnement virtuel existant trouvé" fi # Activation de l'environnement virtuel log "Activation de l'environnement virtuel..." source venv/bin/activate # Mise à jour de pip log "Mise à jour de pip..." pip install --upgrade pip # Installation des dépendances log "Installation des dépendances Python..." if [ -f "requirements.txt" ]; then pip install -r requirements.txt else error "Fichier requirements.txt non trouvé" fi # Configuration des variables d'environnement log "Configuration des variables d'environnement..." if [ ! -f ".env" ]; then if [ -f ".env.example" ]; then cp .env.example .env info "Fichier .env créé à partir de .env.example" warning "Veuillez éditer .env avec vos configurations" else error "Fichier .env.example non trouvé" fi else info "Fichier .env existant trouvé" fi # Génération d'une clé secrète Django log "Génération d'une clé secrète Django..." SECRET_KEY=$(python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())") sed -i "s/SECRET_KEY=.*/SECRET_KEY=$SECRET_KEY/" .env info "Clé secrète générée et configurée" # Création des répertoires nécessaires log "Création des répertoires nécessaires..." mkdir -p media/uploads/images media/uploads/videos media/results models logs static/css static/js static/images # Configuration de la base de données log "Configuration de la base de données..." python manage.py makemigrations python manage.py migrate # Collecte des fichiers statiques log "Collecte des fichiers statiques..." python manage.py collectstatic --noinput # Vérification des modèles YOLOv8 log "Vérification des modèles YOLOv8..." if [ -f "models/incendies.pt" ]; then log "✓ Modèle d'incendie trouvé" else warning "✗ Modèle d'incendie non trouvé (models/incendies.pt)" info "L'application fonctionnera en mode simulation" fi if [ -f "models/intrusion.pt" ]; then log "✓ Modèle d'intrusion trouvé" else warning "✗ Modèle d'intrusion non trouvé (models/intrusion.pt)" info "L'application fonctionnera en mode simulation" fi # Création d'un superutilisateur (optionnel) echo "" read -p "Voulez-vous créer un superutilisateur maintenant ? (y/N): " create_superuser if [[ $create_superuser =~ ^[Yy]$ ]]; then log "Création du superutilisateur..." python manage.py createsuperuser fi # Tests de base log "Exécution des tests de base..." python manage.py check # Résumé de l'installation echo "" echo -e "${GREEN}🎉 Configuration terminée avec succès ! 🎉${NC}" echo "" echo -e "${BLUE}Prochaines étapes :${NC}" echo "1. Activez l'environnement virtuel : source venv/bin/activate" echo "2. Lancez le serveur : python manage.py runserver" echo "3. Ouvrez votre navigateur : http://127.0.0.1:8000" echo "4. Accédez à l'admin : http://127.0.0.1:8000/admin/" echo "" echo -e "${YELLOW}Pour utiliser vos modèles YOLOv8 :${NC}" echo "1. Placez incendies.pt et intrusion.pt dans le dossier models/" echo "2. Décommentez les lignes de chargement dans detection/views.py" echo "3. Redémarrez le serveur" echo "" echo -e "${PURPLE}FireWatch AI est prêt ! Créé par Marino ATOHOUN${NC}"