-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
61 lines (53 loc) · 2.64 KB
/
Makefile
File metadata and controls
61 lines (53 loc) · 2.64 KB
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
# ForecastLabAI — operator-friendly entry points.
#
# This Makefile is a thin wrapper around the existing CLI / docker-compose
# tooling. It exists so a reviewer can run the full end-to-end demo with
# one command: `make demo`. The heavy lifting happens in
# `scripts/run_demo.py` (PRP-15); the rules here just orchestrate the
# prerequisites.
#
# Conventions:
# * Tab indentation on recipe lines (`make` requires it).
# * Every target is `.PHONY` (no real file outputs).
# * `uv run` prefixes every Python invocation (CLAUDE.md "Commands").
#
# Quick reference:
# make demo — full e2e: docker compose + migrations + run_demo
# make demo-quick — re-run run_demo without re-seeding (fast iteration)
# make demo-clean — destructive: wipe DB first, then run demo
# make help — list available targets
.DEFAULT_GOAL := help
.PHONY: help demo demo-quick demo-clean docker-up docker-up-gpu docker-down
help: ## show this help and exit
@echo "ForecastLabAI Make targets:"
@echo " make demo run the full end-to-end demo (~90-180 s)"
@echo " make demo-quick re-run the demo without re-seeding"
@echo " make demo-clean wipe the DB, then run the full demo"
@echo " make docker-up bring the full stack up in containers (no GPU)"
@echo " make docker-up-gpu bring the full stack up with Ollama on GPU"
@echo " make docker-down stop containers (keeps named volumes)"
@echo ""
@echo "Preconditions for the demo targets:"
@echo " * docker compose Postgres+pgvector must be reachable on :5433"
@echo " * uvicorn must already be serving on http://localhost:8123"
@echo " (start with: uv run uvicorn app.main:app --port 8123)"
@echo ""
@echo "Preconditions for the docker targets:"
@echo " * docker + docker compose v2 installed; `.env` populated"
@echo " (`cp .env.example .env`)."
demo: ## full e2e — seed -> features -> train x3 -> backtest -> register -> agent
docker compose up -d
uv run alembic upgrade head
uv run python scripts/run_demo.py --seed 42
demo-quick: ## re-run the demo without re-seeding (fast iteration)
uv run python scripts/run_demo.py --seed 42 --skip-seed
demo-clean: ## destructive — wipe DB then run the full demo
docker compose up -d
uv run alembic upgrade head
uv run python scripts/run_demo.py --seed 42 --reset
docker-up: ## bring the full stack up in containers (no GPU)
docker compose up -d --wait --wait-timeout 90
docker-up-gpu: ## bring the full stack up with Ollama on GPU
docker compose -f docker-compose.yml -f docker-compose.gpu.yml --profile gpu up -d --wait --wait-timeout 120
docker-down: ## stop and remove containers (keeps named volumes)
docker compose down