Files

64 lines
3.0 KiB
Makefile

.PHONY: install run dev clean setup \
frontend-install frontend-dev frontend-build \
compose-up compose-down compose-build compose-logs compose-rebuild
# ── Container runtime detection (Docker / Podman) ─────────────────────────
# Uses Docker if available, otherwise falls back to Podman.
DOCKER := $(shell command -v docker 2>/dev/null || command -v podman 2>/dev/null)
DOCKER_COMPOSE := $(shell command -v docker-compose 2>/dev/null || (command -v docker 2>/dev/null && echo "docker compose") || (command -v podman 2>/dev/null && echo "podman compose"))
# ── Backend Setup ──────────────────────────────────────────────────────────
install: ## Install Python dependencies via uv
uv sync
setup: .env ## Full first-time backend setup
uv run python -m backend.main
.env: .env.example
cp .env.example .env
@echo "Created .env from .env.example — edit it with your real values."
# ── Backend Development ────────────────────────────────────────────────────
run: ## Start the backend (reload enabled)
uv run python -m backend.main
dev: ## Alias for run
uv run python -m backend.main
# ── Frontend ───────────────────────────────────────────────────────────────
frontend-install: ## Install frontend dependencies
cd frontend && bun install
frontend-dev: ## Start the Vite dev server
cd frontend && bun run dev
frontend-build: ## Build frontend for production
cd frontend && bun run build
# ── Containers (Docker / Podman) ───────────────────────────────────────────
compose-up: ## Start all containers in detached mode
$(DOCKER_COMPOSE) up -d
compose-down: ## Stop and remove containers
$(DOCKER_COMPOSE) down
compose-build: ## Build (or rebuild) all container images
$(DOCKER_COMPOSE) build
compose-rebuild: ## Rebuild images & restart containers
$(DOCKER_COMPOSE) up -d --build
compose-logs: ## Follow container logs
$(DOCKER_COMPOSE) logs -f
# ── Utilities ──────────────────────────────────────────────────────────────
clean: ## Remove caches and build artifacts
rm -rf __pycache__ .venv build dist *.egg-info
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
find . -type f -name "*.pyc" -delete