# Makefile pour IPWatch .PHONY: help build up down logs restart clean test install-backend install-frontend dev help: ## Afficher l'aide @echo "IPWatch - Commandes disponibles:" @echo "" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' # Docker build: ## Construire l'image Docker docker-compose build up: ## Démarrer les conteneurs docker-compose up -d @echo "IPWatch démarré sur http://localhost:8000" down: ## Arrêter les conteneurs docker-compose down logs: ## Afficher les logs docker-compose logs -f restart: ## Redémarrer les conteneurs docker-compose restart clean: ## Nettoyer conteneurs, images et volumes docker-compose down -v rm -rf data/*.sqlite logs/* # Développement install-backend: ## Installer dépendances backend cd backend && pip install -r requirements.txt install-frontend: ## Installer dépendances frontend cd frontend && npm install dev-backend: ## Lancer le backend en dev cd backend && python -m backend.app.main dev-frontend: ## Lancer le frontend en dev cd frontend && npm run dev dev: ## Lancer backend + frontend en dev (tmux requis) @echo "Lancement backend et frontend..." @tmux new-session -d -s ipwatch 'cd backend && python -m backend.app.main' @tmux split-window -h 'cd frontend && npm run dev' @tmux attach-session -t ipwatch # Tests test: ## Exécuter les tests backend cd backend && pytest -v test-coverage: ## Tests avec couverture cd backend && pytest --cov=app --cov-report=html # Utilitaires init: ## Initialiser le projet (install + build) make install-backend make install-frontend make build setup-config: ## Créer config.yaml depuis template (si absent) @if [ ! -f config.yaml ]; then \ echo "Création de config.yaml..."; \ cp config.yaml.example config.yaml 2>/dev/null || echo "config.yaml déjà présent"; \ else \ echo "config.yaml existe déjà"; \ fi db-backup: ## Sauvegarder la base de données @mkdir -p backups @cp data/db.sqlite backups/db_$$(date +%Y%m%d_%H%M%S).sqlite @echo "Sauvegarde créée dans backups/" db-reset: ## Réinitialiser la base de données @echo "⚠️ Suppression de la base de données..." rm -f data/db.sqlite @echo "Base de données supprimée. Elle sera recréée au prochain démarrage."