# 🚀 Démarrage Rapide - Docker

Guide ultra-rapide pour lancer Linux BenchTools avec le module Périphériques dans Docker.

## ⚡ En 3 commandes

```bash
# 1. Cloner et entrer dans le dépôt
git clone <votre-repo> && cd serv_benchmark

# 2. Lancer Docker Compose
docker-compose up -d --build

# 3. Accéder à l'interface
# Frontend : http://localhost:8087
# API Docs : http://localhost:8007/docs
```

**C'est tout !** Le module périphériques est activé par défaut.

## 📍 URLs importantes

| Service | URL | Description |
|---------|-----|-------------|
| **Frontend principal** | http://localhost:8087 | Dashboard benchmarks |
| **Module Périphériques** | http://localhost:8087/peripherals.html | Inventaire périphériques |
| **API Backend** | http://localhost:8007 | API REST |
| **API Docs (Swagger)** | http://localhost:8007/docs | Documentation interactive |
| **Stats Périphériques** | http://localhost:8007/api/peripherals/statistics/summary | Statistiques JSON |

## 🔍 Vérifier que tout fonctionne

```bash
# Healthcheck backend
curl http://localhost:8007/api/health
# ✅ {"status":"ok"}

# Stats périphériques
curl http://localhost:8007/api/peripherals/statistics/summary
# ✅ {"total_peripherals":0,"en_pret":0,"disponible":0,...}

# Logs backend
docker-compose logs backend | tail -20
# Vous devriez voir :
# ✅ Main database initialized
# ✅ Peripherals database initialized
# ✅ Peripherals upload directories created
```

## 📂 Fichiers créés automatiquement

Après le premier démarrage, vous aurez :

```
serv_benchmark/
├── backend/data/
│   ├── data.db              # ✅ Créé automatiquement
│   └── peripherals.db       # ✅ Créé automatiquement
│
└── uploads/
    └── peripherals/         # ✅ Créé automatiquement
        ├── photos/
        ├── documents/
        └── locations/
```

## 🎯 Premiers pas

### 1. Ajouter votre premier périphérique

**Via l'interface web :**
1. Aller sur http://localhost:8087/peripherals.html
2. Cliquer sur "Ajouter un périphérique"
3. Remplir le formulaire
4. Enregistrer

**Via l'API (curl) :**
```bash
curl -X POST http://localhost:8007/api/peripherals \
  -H "Content-Type: application/json" \
  -d '{
    "nom": "Logitech MX Master 3",
    "type_principal": "USB",
    "sous_type": "Souris",
    "marque": "Logitech",
    "modele": "MX Master 3",
    "prix": 99.99,
    "etat": "Neuf",
    "rating": 5.0,
    "quantite_totale": 1,
    "quantite_disponible": 1
  }'
```

### 2. Importer un périphérique USB

**Méthode automatique :**
```bash
# Sur votre machine, récupérer les infos USB
lsusb -v > /tmp/usb_info.txt

# Uploader via l'API
curl -X POST http://localhost:8007/api/peripherals/import/usb \
  -F "lsusb_output=@/tmp/usb_info.txt"
```

**Méthode via interface :**
1. Exécuter `lsusb -v` dans un terminal
2. Copier toute la sortie
3. Sur http://localhost:8087/peripherals.html
4. Cliquer "Importer USB"
5. Coller la sortie
6. Valider

### 3. Créer une localisation

```bash
curl -X POST http://localhost:8007/api/locations \
  -H "Content-Type: application/json" \
  -d '{
    "nom": "Bureau",
    "type": "piece",
    "description": "Bureau principal"
  }'
```

## 🛠️ Personnalisation

### Modifier les types de périphériques

Éditer `config/peripheral_types.yaml` et redémarrer :

```bash
nano config/peripheral_types.yaml
docker-compose restart backend
```

### Ajuster la compression d'images

Éditer `config/image_processing.yaml` :

```yaml
image_processing:
  compression:
    quality: 85  # 1-100 (défaut: 85)
```

```bash
docker-compose restart backend
```

### Désactiver le module périphériques

Dans `.env` :

```bash
PERIPHERALS_MODULE_ENABLED=false
```

```bash
docker-compose restart backend
```

## 🐛 Problèmes courants

### Le module ne se charge pas

```bash
# Vérifier les logs
docker-compose logs backend | grep -i peripheral

# Forcer la recréation de la DB
docker-compose exec backend rm /app/data/peripherals.db
docker-compose restart backend
```

### Erreur Pillow/QRCode

```bash
# Rebuild complet
docker-compose down
docker-compose build --no-cache backend
docker-compose up -d
```

### Permissions uploads

```bash
# Vérifier les permissions
docker-compose exec backend ls -la /app/uploads/

# Les créer manuellement si besoin
mkdir -p uploads/peripherals/{photos,documents,locations/images,locations/qrcodes}
chmod -R 755 uploads/
```

## 📊 Commandes utiles

```bash
# Voir tous les conteneurs
docker-compose ps

# Logs en temps réel
docker-compose logs -f

# Redémarrer un service
docker-compose restart backend

# Arrêter tout
docker-compose down

# Rebuild et redémarrer
docker-compose up -d --build

# Shell dans le backend
docker-compose exec backend /bin/bash

# Taille des bases de données
docker-compose exec backend du -h /app/data/*.db

# Backup rapide
docker-compose exec backend tar -czf /tmp/backup.tar.gz /app/data/
docker cp linux_benchtools_backend:/tmp/backup.tar.gz ./backup.tar.gz
```

## 📚 Documentation complète

- **Module Périphériques** : [README_PERIPHERALS.md](README_PERIPHERALS.md)
- **Déploiement Docker** : [DOCKER_DEPLOYMENT.md](DOCKER_DEPLOYMENT.md)
- **README principal** : [README.md](README.md)
- **Changelog** : [CHANGELOG.md](CHANGELOG.md)

## 🎉 Prochaines étapes

1. ✅ Ajouter vos périphériques
2. ✅ Créer vos localisations
3. ✅ Importer vos périphériques USB
4. ✅ Uploader photos et documents
5. ✅ Générer des QR codes pour les localisations
6. ✅ Gérer les prêts de matériel

---

**Besoin d'aide ?** Consultez la documentation complète ou ouvrez une issue.
