Files
cesizen-individuel/Makefile
T
2026-06-19 14:42:42 +02:00

114 lines
4.3 KiB
Makefile

# CESIZen — commandes de développement
# Modèle : backend + base de données dans Docker, web et mobile en local (hot reload).
# Tape simplement `make` pour voir l'aide.
.DEFAULT_GOAL := help
.PHONY: help back back-logs back-stop web mobile mobile-reset up down stop ps seed migrate fresh test kill-3000
## help : affiche cette aide
help:
@echo ""
@echo " CESIZen — commandes disponibles"
@echo ""
@echo " \033[36mmake back\033[0m Lance le BACKEND (API + PostgreSQL + Redis) dans Docker -> http://localhost:8000"
@echo " \033[36mmake web\033[0m Lance le SITE WEB / landing page (Next.js, local) -> http://localhost:3000"
@echo " \033[36mmake mobile\033[0m Lance l'APP MOBILE (Expo) + QR code"
@echo " \033[36mmake mobile-reset\033[0m Répare watchman puis relance Expo (si plantage/recrawl)"
@echo ""
@echo " \033[36mmake up\033[0m Lance TOUT dans Docker (api + db + redis + front)"
@echo " \033[36mmake down\033[0m Arrête tous les conteneurs Docker"
@echo " \033[36mmake stop\033[0m Arrête Docker ET libère le port 3000 (front local)"
@echo " \033[36mmake ps\033[0m État des conteneurs"
@echo ""
@echo " \033[36mmake seed\033[0m Reset + remplit la base (migrate:fresh --seed)"
@echo " \033[36mmake migrate\033[0m Applique les migrations"
@echo " \033[36mmake test\033[0m Lance les tests backend (PHPUnit)"
@echo " \033[36mmake back-logs\033[0m Affiche les logs de l'API en direct"
@echo " \033[36mmake kill-3000\033[0m Libère le port 3000 s'il est bloqué"
@echo ""
# ---------------------------------------------------------------------------
# Backend (API Laravel + PostgreSQL + Redis) — dans Docker, SANS le front
# ---------------------------------------------------------------------------
## back : démarre l'API + la base + Redis (pas le front -> évite le conflit de port 3000)
back:
docker compose up -d postgres redis backend
@echo ""
@echo "✅ Backend prêt -> API sur http://localhost:8000 (logs: make back-logs)"
## back-logs : suit les logs de l'API
back-logs:
docker compose logs -f backend
## back-stop : arrête uniquement la stack backend
back-stop:
docker compose stop postgres redis backend
# ---------------------------------------------------------------------------
# Web (Next.js) — en local pour le hot reload
# ---------------------------------------------------------------------------
## web : lance le site web / landing page en local
web:
cd frontend && npm run dev
# ---------------------------------------------------------------------------
# Mobile (Expo)
# ---------------------------------------------------------------------------
## mobile : lance le serveur Expo (scanne le QR code avec Expo Go)
mobile:
cd mobile && npx expo start --clear
## mobile-reset : répare watchman + relance Expo (si "Recrawled this watch" ou plantage)
mobile-reset:
-watchman watch-del-all
cd mobile && npx expo start --clear
# ---------------------------------------------------------------------------
# Tout en Docker (alternative : front inclus, ne pas combiner avec `make web`)
# ---------------------------------------------------------------------------
## up : lance toute la stack dans Docker (api + db + redis + front)
up:
docker compose up -d
## down : arrête tous les conteneurs
down:
docker compose down
## stop : arrête Docker et libère le port 3000
stop: down kill-3000
## ps : état des conteneurs
ps:
docker compose ps
# ---------------------------------------------------------------------------
# Base de données / tests
# ---------------------------------------------------------------------------
## seed : reset complet + données de démo
seed:
docker compose exec backend php artisan migrate:fresh --seed
## migrate : applique les migrations
migrate:
docker compose exec backend php artisan migrate
## fresh : alias de seed
fresh: seed
## test : tests backend
test:
docker compose exec backend php artisan test
# ---------------------------------------------------------------------------
# Utilitaire : libère le port 3000
# ---------------------------------------------------------------------------
## kill-3000 : tue le process qui occupe le port 3000
kill-3000:
@lsof -ti tcp:3000 | xargs kill -9 2>/dev/null && echo "Port 3000 libéré." || echo "Port 3000 déjà libre."