feat: première version fonctionnelle
This commit is contained in:
136
README.md
Normal file
136
README.md
Normal 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
|
||||
```
|
||||
Reference in New Issue
Block a user