Files
ipwatch/DEPLOIEMENT_REUSSI.md
2026-02-07 16:57:37 +01:00

7.0 KiB

Déploiement de la fonctionnalité de suivi - RÉUSSI

Date: 23 décembre 2025 Version: IPWatch 1.0.1 Fonctionnalité: Suivi d'équipements avec Wake-on-LAN


📋 Résumé de l'implémentation

La fonctionnalité de suivi d'équipements a été déployée avec succès dans IPWatch.

Modifications backend (FastAPI)

  • Modèle IP modifié : ajout du champ tracked (boolean) avec index
  • Schémas Pydantic mis à jour : IPUpdate et IPResponse incluent tracked
  • Nouveau router /api/tracking/ créé avec 3 endpoints :
    • GET /api/tracking/ - Liste des IPs suivies
    • POST /api/tracking/wol/{ip} - Wake-on-LAN
    • POST /api/tracking/shutdown/{ip} - Éteindre (à configurer)
  • Migration de base de données exécutée avec succès
  • Dépendance wakeonlan==3.1.0 ajoutée et installée

Modifications frontend (Vue 3 + Router)

  • Vue Router installé (vue-router@4.2.5)
  • Configuration du routing créée (/ et /tracking)
  • Page MainView.vue créée (page principale)
  • Page TrackingView.vue créée (page de suivi)
  • Composant IPDetails.vue modifié : checkbox "IP suivie" ajoutée
  • Composant AppHeader.vue modifié : bouton "Suivi" ajouté (jaune/orange)
  • App.vue transformé en router-view
  • main.js mis à jour avec le router

🎯 Utilisation

1. Marquer une IP comme suivie

  1. Cliquez sur une cellule IP dans la grille principale
  2. Dans le panneau de gauche, cochez "IP suivie"
  3. Cliquez sur "Enregistrer"

2. Accéder à la page de suivi

  1. Cliquez sur le bouton " Suivi" dans le header (jaune/orange)
  2. Vous êtes redirigé vers la page /tracking

3. Actions disponibles sur la page de suivi

Pour chaque équipement suivi :

  • Bouton WOL (vert) : Envoie un paquet Magic Packet Wake-on-LAN

    • Nécessite une adresse MAC enregistrée
    • Désactivé si l'équipement est déjà en ligne
  • Bouton Éteindre (rose) : Envoie une commande d'arrêt

    • ⚠️ Non implémenté (retourne HTTP 501)
    • Nécessite configuration selon votre infrastructure
  • Bouton Détails (violet) : Retourne à la page principale avec l'IP sélectionnée

  • Bouton Rafraîchir : Actualise la liste des équipements suivis


🛠️ Configuration Wake-on-LAN

Prérequis matériels

Pour que WOL fonctionne, l'équipement cible doit :

  1. Avoir Wake-on-LAN activé dans le BIOS/UEFI
  2. Avoir le support WOL activé sur la carte réseau
  3. Être branché à l'alimentation (ATX)

Test Wake-on-LAN

# Depuis le conteneur Docker
docker exec ipwatch python -c "
from wakeonlan import send_magic_packet
send_magic_packet('AA:BB:CC:DD:EE:FF')
print('Paquet WOL envoyé !')
"

🔍 Vérification du déploiement

1. Vérifier la migration de base de données

docker exec ipwatch sqlite3 ./data/db.sqlite "PRAGMA table_info(ip);" | grep tracked

Sortie attendue :

14|tracked|BOOLEAN|0|0|0

1b. Migration VM (nouveau champ)

docker exec ipwatch python -m backend.app.migrations.add_vm_field
docker exec ipwatch sqlite3 ./data/db.sqlite "PRAGMA table_info(ip);" | grep vm

Sortie attendue :

15|vm|BOOLEAN|0|0|0

2. Vérifier les endpoints API

# Liste des IPs suivies
curl http://localhost:8080/api/tracking/

# Health check
curl http://localhost:8080/health

3. Vérifier le frontend

Ouvrez votre navigateur sur http://localhost:8080 :

Le bouton " Suivi" est visible dans le header Cliquer dessus charge la page /tracking La checkbox "IP suivie" est présente dans le panneau de gauche


📊 Statut du déploiement

=== Démarrage IPWatch ===
✓ Configuration chargée: 10.0.0.0/22
✓ Base de données initialisée: ./data/db.sqlite
✓ Scheduler démarré
=== IPWatch prêt ===

Migration de base de données:
✓ Colonne 'tracked' ajoutée
✓ Index 'idx_ip_tracked' créé

Serveur:
✓ Uvicorn running on http://0.0.0.0:8080

📂 Fichiers modifiés/créés

Backend

backend/app/models/ip.py                    [MODIFIÉ]
backend/app/routers/ips.py                   [MODIFIÉ]
backend/app/routers/tracking.py              [CRÉÉ]
backend/app/migrations/add_tracked_field.py  [CRÉÉ]
backend/app/migrations/__init__.py           [CRÉÉ]
backend/app/main.py                          [MODIFIÉ]
backend/requirements.txt                     [MODIFIÉ]

Frontend

frontend/src/router/index.js                 [CRÉÉ]
frontend/src/views/MainView.vue              [CRÉÉ]
frontend/src/views/TrackingView.vue          [CRÉÉ]
frontend/src/components/AppHeader.vue        [MODIFIÉ]
frontend/src/components/IPDetails.vue        [MODIFIÉ]
frontend/src/App.vue                         [MODIFIÉ]
frontend/src/main.js                         [MODIFIÉ]
frontend/package.json                        [MODIFIÉ]

Documentation

SUIVI_EQUIPEMENTS.md                         [CRÉÉ]
DEPLOIEMENT_REUSSI.md                        [CE FICHIER]

🚀 Prochaines étapes

Configuration optionnelle : Shutdown

Pour activer la fonctionnalité d'arrêt, éditez backend/app/routers/tracking.py :

Option 1 : SSH (Linux)

pip install paramiko

import paramiko

def shutdown_via_ssh(ip_address, username, password):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip_address, username=username, password=password)
    ssh.exec_command("sudo shutdown -h now")
    ssh.close()

Option 2 : WMI (Windows)

pip install wmi-client-wrapper

import wmi

def shutdown_via_wmi(ip_address, username, password):
    c = wmi.WMI(computer=ip_address, user=username, password=password)
    os = c.Win32_OperatingSystem(Primary=1)[0]
    os.Shutdown()

⚠️ Sécurité : Stockez les credentials dans des variables d'environnement, jamais en clair.


📞 Support

Logs du conteneur

docker logs ipwatch -f

Logs de la base de données

docker exec ipwatch sqlite3 ./data/db.sqlite "SELECT * FROM ip WHERE tracked = 1;"

Redémarrage

docker compose restart ipwatch

Rebuild complet

docker compose build --no-cache
docker compose up -d

Checklist de validation

  • Migration de base de données exécutée
  • Colonne tracked présente dans la table ip
  • Index idx_ip_tracked créé
  • Conteneur démarré sans erreurs
  • Endpoints API /api/tracking/ accessibles
  • Frontend construit et déployé
  • Bouton "Suivi" visible dans le header
  • Checkbox "IP suivie" présente dans IPDetails
  • Navigation vers /tracking fonctionnelle
  • Page de suivi affiche correctement les équipements
  • Boutons WOL, Éteindre, Détails présents
  • Dépendance wakeonlan installée

🎉 DÉPLOIEMENT RÉUSSI !

Votre fonctionnalité de suivi d'équipements est maintenant opérationnelle. Consultez SUIVI_EQUIPEMENTS.md pour plus d'informations.