lectio / Makefile
adesh01's picture
feat: Lectio β€” HF Space deployment
14fda63
.PHONY: help \
db-up db-down db-reset \
backend-install backend-init \
backend-ingest backend-ingest-bible backend-ingest-history \
backend-dev \
frontend-install frontend-dev frontend-build \
eval \
dev
BACKEND_DIR := backend
FRONTEND_DIR := frontend
EVAL_DIR := eval
# ──────────────────────────────────────────────────────────────
help:
@echo ""
@echo " Lectio β€” Scripture Companion"
@echo ""
@echo " Database"
@echo " make db-up start postgres+pgvector container"
@echo " make db-down stop container"
@echo " make db-reset stop + wipe volume + restart"
@echo ""
@echo " Backend"
@echo " make backend-install uv sync (creates .venv + installs all deps)"
@echo " make backend-init run DB migrations (init_db.py)"
@echo " make backend-ingest ingest KJV bible + church history"
@echo " make backend-dev start API server on :8000"
@echo ""
@echo " Frontend"
@echo " make frontend-install npm install"
@echo " make frontend-dev start Next.js on :3000"
@echo " make frontend-build production build"
@echo ""
@echo " Eval"
@echo " make eval run 20-case evaluation harness"
@echo ""
@echo " Shortcuts"
@echo " make dev start backend API on :8000"
@echo ""
# ──────────────────────────────────────────────────────────────
# DATABASE
# ──────────────────────────────────────────────────────────────
db-up:
docker compose up -d db
@echo "Waiting for postgres..."
@docker compose exec db sh -c 'until pg_isready -U postgres -d christianity_ai; do sleep 1; done'
db-down:
docker compose down
db-reset:
docker compose down -v
docker compose up -d db
@docker compose exec db sh -c 'until pg_isready -U postgres -d christianity_ai; do sleep 1; done'
# ──────────────────────────────────────────────────────────────
# BACKEND
# ──────────────────────────────────────────────────────────────
backend-install:
cd $(BACKEND_DIR) && uv sync --extra dev
backend-init:
cd $(BACKEND_DIR) && uv run python -m scripts.init_db
backend-ingest-bible:
cd $(BACKEND_DIR) && uv run python -m scripts.ingest_bible
backend-ingest-history:
cd $(BACKEND_DIR) && uv run python -m scripts.ingest_history
backend-ingest:
cd $(BACKEND_DIR) && uv run python -m scripts.ingest_bible
cd $(BACKEND_DIR) && uv run python -m scripts.ingest_history
backend-dev:
cd $(BACKEND_DIR) && uv run uvicorn app.main:app --reload --port 8000
# ──────────────────────────────────────────────────────────────
# FRONTEND
# ──────────────────────────────────────────────────────────────
frontend-install:
cd $(FRONTEND_DIR) && npm install
frontend-dev:
cd $(FRONTEND_DIR) && npm run dev
frontend-build:
cd $(FRONTEND_DIR) && npm run build
# ──────────────────────────────────────────────────────────────
# EVAL
# ──────────────────────────────────────────────────────────────
eval:
cd $(EVAL_DIR) && uv run --project ../$(BACKEND_DIR) run_eval.py
# ──────────────────────────────────────────────────────────────
# DEV β€” all three services (requires tmux or GNU parallel)
# ──────────────────────────────────────────────────────────────
dev:
cd $(BACKEND_DIR) && uv run uvicorn app.main:app --reload --port 8000