.PHONY: install install-cli db db-tools migrate seed api dashboard check start clean register-project COMPOSE = docker compose -f infra/docker-compose.yml --env-file .env install: uv sync ## Symlink the custodian CLI into ~/.local/bin so it's on PATH system-wide install-cli: install mkdir -p ~/.local/bin ln -sf "$(shell pwd)/.venv/bin/custodian" ~/.local/bin/custodian @echo "Installed: custodian → $$(readlink -f ~/.local/bin/custodian)" @echo "Make sure ~/.local/bin is on your PATH:" @echo " echo 'export PATH=\"\$$HOME/.local/bin:\$$PATH\"' >> ~/.bashrc && source ~/.bashrc" db: $(COMPOSE) up -d postgres db-tools: $(COMPOSE) --profile tools up -d migrate: uv run alembic upgrade head seed: uv run python scripts/seed.py api: uv run uvicorn api.main:app --reload --host 127.0.0.1 --port 8000 dashboard: cd dashboard && npm run dev check: curl -sf http://127.0.0.1:8000/state/health | python3 -m json.tool start: db sleep 3 $(MAKE) migrate $(MAKE) api ## Register a project: make register-project DOMAIN=railiance PROJECT_PATH=/home/worsch/railiance register-project: @test -n "$(DOMAIN)" || (echo "ERROR: DOMAIN is required. Usage: make register-project DOMAIN= PROJECT_PATH="; exit 1) @test -n "$(PROJECT_PATH)" || (echo "ERROR: PROJECT_PATH is required."; exit 1) scripts/register_project.sh "$(DOMAIN)" "$(PROJECT_PATH)" clean: $(COMPOSE) down -v