# Checklist pour l'upload des fichiers sur le serveur

## 📋 Fichiers à uploader

### ✅ À uploader

- [ ] Tous les dossiers et fichiers à la racine (sauf ceux listés ci-dessous)
- [ ] `/app` - Code de l'application
- [ ] `/bootstrap` - Fichiers de démarrage
- [ ] `/config` - Fichiers de configuration
- [ ] `/database` - Migrations et seeders
- [ ] `/public` - Fichiers publics (point d'entrée web)
- [ ] `/resources` - Vues et assets sources
- [ ] `/routes` - Fichiers de routes
- [ ] `/storage` - Dossier de stockage (vide, permissions 775)
- [ ] `/vendor` - Dépendances Composer (ou installer sur serveur)
- [ ] Fichiers de configuration : `.htaccess`, `composer.json`, `package.json`, etc.

### ❌ NE PAS uploader

- [ ] `.env` - À créer sur le serveur avec vos informations
- [ ] `.env.example` - Fichier d'exemple (optionnel)
- [ ] `node_modules/` - Réinstaller sur le serveur ou upload si npm n'est pas disponible
- [ ] `.git/` - Dossier Git
- [ ] `.DS_Store` - Fichiers macOS
- [ ] `storage/logs/*.log` - Fichiers de logs
- [ ] `storage/framework/cache/*` - Cache (sera recréé)
- [ ] `storage/framework/sessions/*` - Sessions (sera recréé)
- [ ] `storage/framework/views/*` - Vues compilées (sera recréé)

## 🔧 Configuration après upload

### 1. Fichier .env

Créer un fichier `.env` à la racine avec cette configuration :

```env
APP_NAME="LLMbots.fr"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://votre-domaine.com

DB_CONNECTION=mysql
DB_HOST=votre-serveur-mysql.com
DB_PORT=3306
DB_DATABASE=nom_de_la_base
DB_USERNAME=nom_utilisateur
DB_PASSWORD=mot_de_passe
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

SESSION_DRIVER=database
CACHE_STORE=database
QUEUE_CONNECTION=database
```

### 2. Permissions

```bash
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
```

### 3. Installation des dépendances

```bash
composer install --optimize-autoloader --no-dev
npm install && npm run build
```

### 4. Commandes Laravel

```bash
# Générer la clé
php artisan key:generate

# Lien symbolique
php artisan storage:link

# Migrations (si tables n'existent pas)
php artisan migrate --force

# Seeders (bots IA)
php artisan db:seed --class=BotSeeder

# Optimisation
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

### 5. Configuration serveur web

#### Apache
- Assurez-vous que `mod_rewrite` est activé
- Le document root doit pointer vers `/public`
- Le `.htaccess` dans `/public` doit être actif

#### Nginx
- Configurer le document root vers `/public`
- Voir `DEPLOYMENT.md` pour la configuration Nginx complète

## 🗄️ Base de données

### Si vous migrez depuis l'ancien projet :

Les tables existent déjà, vous devez seulement :

1. Vérifier que les migrations sont à jour :
   ```bash
   php artisan migrate:status
   ```

2. Si des migrations manquent :
   ```bash
   php artisan migrate --force
   ```

3. Exécuter les seeders pour s'assurer que les bots IA sont présents :
   ```bash
   php artisan db:seed --class=BotSeeder
   ```

### Structure de base de données attendue :

- `users` - Utilisateurs
- `bots` - Bots IA détectables
- `sites` - Sites web analysés
- `analyses` - Analyses de fichiers logs
- `logs_ia` - Entrées de logs détectées

## ✅ Vérifications finales

- [ ] Le site s'affiche correctement
- [ ] Connexion à la base de données fonctionnelle
- [ ] Authentification fonctionne (login/register)
- [ ] Upload de fichiers de logs fonctionne
- [ ] Les analyses s'affichent correctement
- [ ] Les graphiques Chart.js fonctionnent
- [ ] L'administration fonctionne (si admin)

## 🐛 En cas de problème

1. Vérifier les logs : `storage/logs/laravel.log`
2. Vérifier les permissions : `storage/` et `bootstrap/cache/`
3. Vider le cache : `php artisan cache:clear && php artisan config:clear`
4. Vérifier la configuration : `php artisan config:show database`

