.PHONY: up down api worker backend web migrate sqlc test test-api check-web vet seed seed-woo mock-woo health setup cutover-rehearsal build # Start local Postgres only (:5433 — pairs with host npm run setup / npm run dev) up: docker compose up -d # Stop local Postgres down: docker compose down # One-shot: .env + Postgres + goose migrate (cross-platform via Node) setup: node scripts/setup.mjs # Run Go API (config.Load reads monorepo-root .env; or: .\scripts\run-api.ps1) api: cd apps/api && go run ./cmd/api # Background job worker (processing + Woo claim + billing; required for GET /readyz) worker: cd apps/api && go run ./cmd/worker # API + worker together (readyz/jobs). Prefer: npm run dev:backend (or npm run dev for +web) backend: npm run dev:backend # Run SvelteKit web (Vite proxies /api → :28471; port 28472) web: cd apps/web && npm install && npm run dev # Apply goose migrations and regenerate sqlc (any OS: npm run migrate) migrate: node scripts/migrate.mjs # Seed local demo user (any OS: npm run seed) seed: node scripts/seed-local.mjs # Seed WooCommerce demo orders/reviews/audience campaign (no live Woo required) seed-woo: cd apps/api && go run ./cmd/seed-woo-demo # Local WooCommerce REST fixtures for live client proofs (see docs/live-woo-test.md) mock-woo: cd apps/api && go run ./cmd/mock-woo -addr 127.0.0.1:19090 # Quick health probes (API :28471; /readyz needs worker) health: node scripts/health.mjs # Local cutover rehearsal: deploy-check + list-* + orphan dry-run (no Clerk/SMTP/Stripe/-confirm) cutover-rehearsal: node scripts/cutover-local-rehearsal.mjs # Regenerate sqlc only sqlc: cd apps/api && sqlc generate # Unit tests (API) — no live DB required for default suite test: test-api test-api: cd apps/api && go test ./... vet: cd apps/api && go vet ./... # Type-check SvelteKit (install deps first if needed) check-web: cd apps/web && npm run check # Low-memory production build (web then Go api+worker binaries; ~4GB-safe defaults) build: node scripts/build.mjs