80 lines
2.3 KiB
Makefile
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."
|