| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- # lf_mri_platform — unified MRI microservice stack
- # Requires: Docker Desktop with Compose v2, GNU make
- #
- # Service targets:
- # make plug — start all services in stub mode (no hardware)
- # make real — start all services in real hardware mode
- # make down — stop and remove containers
- # make build — build all images without starting
- # make logs — tail logs from all services
- # make health — check all service health endpoints
- # make restart — restart a single service: make restart svc=orchestrator
- # make ps — show container status
- #
- # GUI targets:
- # make install — install prerequisites (venv + deps for GUI)
- # make gui — start GUI only (no Docker services)
- # make start — start Docker services + GUI (plug mode)
- # make start-real — start Docker services + GUI (real mode)
- #
- # Dev targets:
- # make shell — open shell in a running container: make shell svc=orchestrator
- # make clean — stop + remove volumes (full reset)
- .PHONY: up down plug real logs health restart build ps \
- install gui start start-real shell clean
- ENV_FILE := .env
- GUI_DIR := apps/gui
- VENV := $(GUI_DIR)/.venv
- PYTHON := python
- # ── Bootstrap ────────────────────────────────────────────────────────────────
- $(ENV_FILE):
- @echo "Creating .env from .env.example..."
- cp .env.example $(ENV_FILE)
- install: $(ENV_FILE)
- powershell -ExecutionPolicy Bypass -File install.ps1
- # ── Service startup ──────────────────────────────────────────────────────────
- up: $(ENV_FILE)
- docker compose --env-file $(ENV_FILE) up --build -d
- plug: $(ENV_FILE)
- ORCHESTRATOR_MODE=plug docker compose --env-file $(ENV_FILE) up --build -d
- real: $(ENV_FILE)
- ORCHESTRATOR_MODE=real docker compose --env-file $(ENV_FILE) up --build -d
- down:
- docker compose down
- clean:
- docker compose down --volumes
- build: $(ENV_FILE)
- docker compose --env-file $(ENV_FILE) build
- # ── GUI ──────────────────────────────────────────────────────────────────────
- gui:
- $(VENV)/Scripts/python $(GUI_DIR)/app.py
- start: plug
- $(MAKE) gui
- start-real: real
- $(MAKE) gui
- # ── Monitoring ───────────────────────────────────────────────────────────────
- logs:
- docker compose logs -f
- ps:
- docker compose ps
- restart:
- docker compose restart $(svc)
- shell:
- docker compose exec $(svc) /bin/sh
- # ── Health checks ────────────────────────────────────────────────────────────
- health:
- @echo "orchestrator :" && curl -sf http://localhost:$${ORCHESTRATOR_PORT:-1717}/health || echo "OFFLINE"
- @echo "seq-interp :" && curl -sf http://localhost:$${SEQ_INTERP_PORT:-7475}/health || echo "OFFLINE"
- @echo "spectrometer :" && curl -sf http://localhost:$${SPECTROMETER_PORT:-8000}/api/ || echo "OFFLINE"
- @echo "reconstructor :" && curl -sf http://localhost:$${RECONSTRUCTOR_PORT:-8081}/health || echo "OFFLINE"
- @echo "spectroscopy :" && curl -sf http://localhost:$${SPECTROSCOPY_PORT:-8002}/health || echo "OFFLINE"
|