advdoors/justfile
Maxim Snesarev 8a8cfcd0f1 Add scraper functionality and enhance product data extraction
- Updated `.gitignore` to exclude scraper intermediate data.
- Enhanced `justfile` with new scrape commands for raw data and LLM processing.
- Added OpenAI dependency in `scraper/package.json`.
- Modified `config.ts` to include OpenRouter API key and model.
- Expanded `extract.ts` to capture additional product details such as discount percentage, frost resistance, and size options.
- Updated `import.ts` to handle new product attributes during import.
- Enhanced `index.ts` to support raw scraping mode and improved product extraction logic.
- Updated `payload-types.ts` and `Products.ts` to include new product fields.
- Enhanced frontend components to display new product attributes and filters for availability and frost resistance.
- Improved error handling and logging in scraper functions.
- Added new features for managing product variants and specifications in the admin interface.
2026-04-02 13:34:27 +03:00

98 lines
2.4 KiB
Makefile

set dotenv-load := false
dev_compose := "docker/docker-compose.dev.yml"
prod_compose := "docker/docker-compose.yml"
# 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 Next.js dev server
dev:
pnpm --filter @advdoors/web dev
# Start everything: services + dev server
up: services
pnpm --filter @advdoors/web 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 apps/*/node_modules packages/*/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: build and start all containers
prod-up:
docker compose -f {{prod_compose}} up -d --build
# Production: stop
prod-down:
docker compose -f {{prod_compose}} down
# Production: view logs
prod-logs *args:
docker compose -f {{prod_compose}} logs {{args}}
# Show status of dev services
status:
docker compose -f {{dev_compose}} ps