- Introduced new commands in justfile for creating and running database migrations. - Updated package.json to include migration-related scripts for easier database management. - Added a new migrations index file to facilitate future migration implementations.
118 lines
2.9 KiB
Makefile
118 lines
2.9 KiB
Makefile
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
|
|
|
|
# Create a new database migration (requires dev services running)
|
|
migrate-create:
|
|
pnpm --filter @advdoors/web migrate:create
|
|
|
|
# Run pending migrations against dev database
|
|
migrate:
|
|
pnpm --filter @advdoors/web payload migrate
|
|
|
|
# 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
|