Files
LANMap/Makefile
2025-12-06 12:28:55 +01:00

80 lines
2.3 KiB
Makefile

# 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."