File size: 5,198 Bytes
e9d86db |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
#!/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}"
|