set dotenv-load := false dev_compose := "docker/docker-compose.dev.yml" prod_compose := "docker/docker-compose.yml" image := "git.oberonworks.ru/oberon/advdoors-front:latest" # List available recipes default: @just --list # Full dev setup: services + deps + env + dev server setup: services install env @echo "Ready. Run 'just dev' to start." # Start dev PostgreSQL + MinIO services: docker compose -f {{dev_compose}} up -d @echo "Waiting for services..." @sleep 3 @echo "PostgreSQL: localhost:5435" @echo "MinIO API: localhost:9000" @echo "MinIO UI: localhost:9001 (minioadmin/minioadmin)" # Stop dev services services-down: docker compose -f {{dev_compose}} down # Install pnpm dependencies install: pnpm install # Create .env from example if it doesn't exist env: @[ -f apps/web/.env ] || (cp apps/web/.env.example apps/web/.env && sed -i 's/:5432/:5435/' apps/web/.env && echo "Created apps/web/.env (port adjusted to 5435)") @[ -f apps/web/.env ] && echo "apps/web/.env exists" # Start dev server(s) via Turbo dev: pnpm dev # Start everything: services + dev server up: services pnpm dev # Run scraper (import directly to Payload) scrape: pnpm --filter @advdoors/scraper scrape # Scrape raw data to JSON files (no Payload import) scrape-raw: pnpm --filter @advdoors/scraper scrape:raw # Process raw scraped data with LLM (OpenRouter) llm-process: pnpm --filter @advdoors/scraper llm:process # Import processed data into Payload CMS import-processed: pnpm --filter @advdoors/scraper import:processed # Build all packages build: pnpm turbo build # Typecheck all packages typecheck: pnpm turbo typecheck # Lint all packages lint: pnpm turbo lint # Clean build artifacts clean: pnpm turbo clean rm -rf node_modules # Reset dev database (destructive) db-reset: docker compose -f {{dev_compose}} down -v docker compose -f {{dev_compose}} up -d @echo "Database and MinIO volumes wiped. Restart dev server to re-create schema." # Production: pull latest image and start all containers prod-up: docker compose -f {{prod_compose}} pull app docker compose -f {{prod_compose}} up -d # Production: stop prod-down: docker compose -f {{prod_compose}} down # Production: view logs prod-logs *args: docker compose -f {{prod_compose}} logs {{args}} # Build app image and push to Gitea registry push: docker compose -f {{prod_compose}} build app docker compose -f {{prod_compose}} push app # Production: pull latest image and restart app prod-pull: docker compose -f {{prod_compose}} pull app docker compose -f {{prod_compose}} up -d app # Show status of dev services status: docker compose -f {{dev_compose}} ps