File size: 2,034 Bytes
5465983
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.PHONY: help install dev api ui build test clean docker docker-demo docker-clean stop

help:
	@echo "SignalMod — comandos disponibles:"
	@echo "  make install       Instala deps Python (uv) y frontend (pnpm)"
	@echo "  make dev           Arranca API (:8000) + UI (:5173) en paralelo"
	@echo "  make api           Solo la API FastAPI"
	@echo "  make ui            Solo el frontend React"
	@echo "  make build         Compila el frontend (frontend/dist)"
	@echo "  make test          Ejecuta pytest"
	@echo "  make docker        docker compose up --build (deja imágenes/volúmenes)"
	@echo "  make docker-demo   Demo efímera: arranca + al hacer Ctrl+C limpia todo"
	@echo "  make docker-clean  Limpia contenedores, imagen y volúmenes de SignalMod"
	@echo "  make stop          Mata procesos en :8000 y :5173"
	@echo "  make clean         Limpia .venv, node_modules y dist"

install:
	uv sync
	cd frontend && pnpm install

dev:
	@echo "→ API en http://localhost:8000   UI en http://localhost:5173"
	@trap 'kill 0' INT; \
		uv run uvicorn src.api.main:app --reload --port 8000 & \
		(cd frontend && pnpm run dev) & \
		wait

api:
	uv run uvicorn src.api.main:app --reload --port 8000

ui:
	cd frontend && pnpm run dev

build:
	cd frontend && pnpm run build

test:
	uv run pytest

docker:
	docker compose up --build

docker-demo:
	@echo "→ SignalMod en http://localhost:8000  (Ctrl+C para parar y limpiar)"
	@trap 'echo; echo "→ Limpiando contenedores, imagen y volúmenes..."; \
		docker compose down --rmi local --volumes --remove-orphans; \
		echo "✓ Todo limpio."' INT TERM EXIT; \
		docker compose up --build

docker-clean:
	@echo "→ Eliminando contenedores, imágenes y volúmenes de SignalMod..."
	-docker compose down --rmi local --volumes --remove-orphans
	@echo "✓ Limpieza completada."

stop:
	-@lsof -ti tcp:8000 | xargs kill -9 2>/dev/null || true
	-@lsof -ti tcp:5173 | xargs kill -9 2>/dev/null || true
	@echo "Procesos en :8000 y :5173 detenidos."

clean:
	rm -rf .venv frontend/node_modules frontend/dist