feat: première version fonctionnelle

This commit is contained in:
2025-08-27 06:30:16 +02:00
commit cf8a37f183
39 changed files with 2730 additions and 0 deletions

136
README.md Normal file
View File

@@ -0,0 +1,136 @@
# Zebra Power 🍅
Application dockerisée pour la gestion Wake-on-LAN et le contrôle des VMs/Containers Proxmox.
*Nommée d'après la tomate verte zebra*
## Fonctionnalités
- **Wake-on-LAN** : Réveil de serveurs via paquets magiques
- **Monitoring** : Ping automatique et statut des serveurs
- **Proxmox** : Gestion des clusters, VMs et containers
- **Dashboard** : Vue d'ensemble avec statistiques
- **Interface moderne** : Vue.js 3 avec Tailwind CSS
## Architecture
- **Backend** : FastAPI + SQLite
- **Frontend** : Vue.js 3 + Tailwind CSS
- **Proxy** : Nginx
- **Base de données** : SQLite (fichier local)
## Installation
### Prérequis
- Docker & Docker Compose
- Réseau local pour WOL
### Démarrage rapide
1. Cloner le projet :
```bash
git clone <repo-url>
cd zebra_power
```
2. Créer le répertoire de données :
```bash
mkdir -p data
```
3. Lancer l'application :
```bash
docker-compose up -d
```
4. Accéder à l'interface :
- **Application** : http://localhost (via Nginx)
- **Frontend direct** : http://localhost:3000
- **API** : http://localhost:8000
- **Documentation API** : http://localhost:8000/docs
## Configuration
### Serveurs Wake-on-LAN
1. Accédez à la section "Serveurs"
2. Ajoutez un serveur avec :
- Nom
- Adresse IP
- Adresse MAC
- Description (optionnelle)
### Clusters Proxmox
1. Accédez à la section "Proxmox"
2. Ajoutez un cluster avec :
- Nom du cluster
- Host/IP du serveur Proxmox
- Nom d'utilisateur (ex: root@pam)
- Mot de passe
- Port (défaut: 8006)
- Vérification SSL
## API Endpoints
### Serveurs
- `GET /api/servers` - Liste des serveurs
- `POST /api/servers` - Créer un serveur
- `PUT /api/servers/{id}` - Modifier un serveur
- `DELETE /api/servers/{id}` - Supprimer un serveur
### Wake-on-LAN
- `POST /api/wol/wake/{server_id}` - Réveiller un serveur
- `POST /api/wol/ping/{server_id}` - Ping un serveur
- `GET /api/wol/logs` - Logs WOL
### Proxmox
- `GET /api/proxmox/clusters` - Liste des clusters
- `POST /api/proxmox/clusters` - Ajouter un cluster
- `GET /api/proxmox/clusters/{id}/vms` - VMs d'un cluster
- `POST /api/proxmox/clusters/{id}/vms/{vmid}/start` - Démarrer VM
- `POST /api/proxmox/clusters/{id}/vms/{vmid}/stop` - Arrêter VM
## Développement
### Backend
```bash
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
```
### Frontend
```bash
cd frontend
npm install
npm run dev
```
## Notes techniques
- Le backend utilise `network_mode: host` pour envoyer des paquets WOL
- Les données sont persistées dans `./data/zebra.db`
- L'interface supporte les thèmes sombres/clairs
- Monitoring temps réel des statuts serveurs
## Dépannage
### WOL ne fonctionne pas
- Vérifiez que WOL est activé sur le serveur cible
- Assurez-vous que le conteneur utilise le réseau host
- Vérifiez l'adresse MAC
### Connexion Proxmox échoue
- Vérifiez les credentials et l'IP
- Testez l'accès via navigateur
- Vérifiez les certificats SSL
### Port déjà utilisé
```bash
docker-compose down
# Modifier les ports dans docker-compose.yml si nécessaire
docker-compose up -d
```