# 📖 Guide de Démarrage - InnotexBoard ## 🎯 Objectif Ce guide vous aide à démarrer avec InnotexBoard en 5 minutes. --- ## 1️⃣ Installation rapide (Mode développement) ### Backend ```bash # Aller dans le dossier backend cd backend # Créer un environnement virtuel python3 -m venv venv source venv/bin/activate # Sur Windows: venv\Scripts\activate # Installer les dépendances pip install -r requirements.txt # Copier la configuration cp .env.example .env # Lancer le serveur python main.py ``` ✅ Le serveur tourne sur `http://localhost:8000` Tester dans un autre terminal : ```bash curl http://localhost:8000/health ``` ### Frontend ```bash # Dans un autre terminal, aller dans le dossier frontend cd frontend # Installer les dépendances npm install # Lancer le serveur de développement npm run dev ``` ✅ L'interface tourne sur `http://localhost:3000` --- ## 2️⃣ Configuration des permissions ### ⚠️ Important : Accès Docker et système Pour que l'application fonctionne, le serveur Python a besoin d'accès à : 1. **Docker** - Pour contrôler les conteneurs 2. **PAM** - Pour authentifier les utilisateurs 3. **psutil** - Pour lire les stats système ### Option simple (Développement) ```bash # Lancer le backend avec sudo sudo python3 main.py # OU ajouter l'utilisateur au groupe docker sudo usermod -aG docker $USER newgrp docker ``` ### Option sécurisée (Production) Voir [PERMISSIONS.md](../PERMISSIONS.md) pour une configuration complète. --- ## 3️⃣ Premier test de l'application 1. Ouvrir `http://localhost:3000` dans votre navigateur 2. Se connecter avec un utilisateur Debian existant - Exemple : votre utilisateur système 3. Voir le Dashboard avec CPU/RAM 4. Visiter l'onglet "Conteneurs Docker" --- ## 📝 Structure du code ### Backend ``` backend/ ├── main.py # Point d'entrée FastAPI ├── requirements.txt # Dépendances Python ├── app/ │ ├── core/ │ │ ├── config.py # Configuration │ │ └── security.py # Authentification JWT/PAM │ ├── api/ │ │ └── endpoints/ │ │ ├── auth.py # Routes login │ │ ├── system.py # Routes CPU/RAM/processus │ │ └── docker.py # Routes Docker │ └── services/ │ ├── system.py # Logique psutil │ └── docker_service.py # Logique Docker SDK ``` ### Frontend ``` frontend/ ├── src/ │ ├── main.js # Point d'entrée Vue │ ├── App.vue # Composant racine │ ├── api/ │ │ └── index.js # Client HTTP Axios │ ├── stores/ │ │ └── auth.js # State Pinia (auth) │ ├── router/ │ │ └── index.js # Routes Vue Router │ ├── views/ │ │ ├── LoginView.vue # Écran connexion │ │ ├── DashboardView.vue # Écran stats │ │ └── ContainersView.vue# Écran Docker │ └── assets/ │ └── styles.css # Tailwind CSS ``` --- ## 🧪 Tests basiques ### Tester l'API avec curl ```bash # 1. Obtenir un token TOKEN=$(curl -s -X POST "http://localhost:8000/api/v1/auth/login" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=your_user&password=your_pass" \ | jq -r '.access_token') # 2. Récupérer les stats curl -X GET "http://localhost:8000/api/v1/system/stats" \ -H "Authorization: Bearer $TOKEN" # 3. Lister les conteneurs curl -X GET "http://localhost:8000/api/v1/docker/containers" \ -H "Authorization: Bearer $TOKEN" ``` ### Tester dans le navigateur 1. Ouvrir `http://localhost:3000` 2. Entrer les identifiants d'un utilisateur système 3. Vérifier la connexion dans la console (F12) 4. Voir les logs du backend --- ## 🐛 Problèmes courants ### "Connection refused" (Backend) ```bash # Vérifier que le backend tourne curl http://localhost:8000/health # Vérifier les ports netstat -tulpn | grep 8000 ``` ### "Permission denied" (Docker) ```bash # Option 1: Ajouter au groupe docker sudo usermod -aG docker $USER newgrp docker # Option 2: Lancer avec sudo sudo python3 main.py ``` ### "Password authentication failed" (PAM) ```bash # Vérifier que l'utilisateur existe id your_user # Vérifier PAM python3 -c "import pam; print(pam.pam().authenticate('your_user', 'your_pass'))" ``` ### "Cannot connect to Docker daemon" ```bash # Vérifier que Docker tourne sudo systemctl status docker # Vérifier les permissions du socket ls -la /var/run/docker.sock ``` --- ## 📚 Modèle de composant Vue.js Exemple pour créer une nouvelle page : ```vue ``` --- ## 🚀 Prochaines étapes 1. **Personnaliser les couleurs** - Modifier `frontend/tailwind.config.js` 2. **Ajouter des endpoints** - Créer de nouveaux fichiers dans `backend/app/api/endpoints/` 3. **Implémenter Https** - Ajouter un certificat SSL 4. **Déployer** - Voir [README.md](../README.md) section "Déploiement" --- ## 📖 Ressources - [FastAPI Documentation](https://fastapi.tiangolo.com) - [Vue 3 Guide](https://vuejs.org) - [Tailwind CSS](https://tailwindcss.com) - [Docker Python SDK](https://docker-py.readthedocs.io) - [python-pam](https://github.com/firecat53/python-pam) --- ## 💡 Tips - 🔄 L'API auto-recharge avec `--reload` en dev - 🔍 Docs Swagger : http://localhost:8000/docs - 📊 Dashboard rafraîchit tous les 5 secondes - 🔐 Les tokens expirent après 8 heures - 📱 L'interface est responsive (mobile/tablette) --- Bienvenue dans InnotexBoard ! 🎉