Ctrl K
ComunidadGuías…

Makefile

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
.PHONY: help install dev build test clean docker-up docker-down docker-logs db-migrate db-reset

# Default target
help:
	@echo "Janua Development Commands"
	@echo ""
	@echo "Setup:"
	@echo "  make install       Install all dependencies"
	@echo "  make clean         Clean all build artifacts"
	@echo ""
	@echo "Development:"
	@echo "  make dev           Start development servers"
	@echo "  make build         Build all packages"
	@echo "  make test          Run all tests"
	@echo "  make lint          Run linters"
	@echo "  make typecheck     Run type checking"
	@echo ""
	@echo "Docker:"
	@echo "  make docker-up     Start Docker services"
	@echo "  make docker-down   Stop Docker services"
	@echo "  make docker-logs   View Docker logs"
	@echo "  make docker-build  Build Docker images"
	@echo ""
	@echo "Database:"
	@echo "  make db-migrate    Run database migrations"
	@echo "  make db-reset      Reset database"
	@echo "  make db-seed       Seed database with test data"

# Install dependencies
install:
	npm install
	cd apps/api && pip install -r requirements.txt
	cd apps/api && pip install -r requirements-dev.txt

# Development
dev:
	node scripts/require-local-services.mjs
	npm run dev

# Build all packages
build:
	npm run build

# Run tests
test:
	npm run test
	cd apps/api && pytest

# Lint code
lint:
	npm run lint
	cd apps/api && ruff check .

# Type checking
typecheck:
	npm run typecheck
	cd apps/api && mypy .

# Clean build artifacts
clean:
	node scripts/require-local-destructive.mjs
	rm -rf node_modules
	rm -rf apps/*/node_modules
	rm -rf packages/*/node_modules
	rm -rf apps/*/.next
	rm -rf apps/*/dist
	rm -rf packages/*/dist
	find . -type d -name "__pycache__" -exec rm -rf {} +
	find . -type f -name "*.pyc" -delete

# Docker commands
docker-up:
	node scripts/require-local-services.mjs
	docker-compose up -d

docker-down:
	node scripts/require-local-destructive.mjs
	docker-compose down

docker-logs:
	docker-compose logs -f

docker-build:
	node scripts/require-local-services.mjs
	docker-compose build

docker-restart:
	node scripts/require-local-services.mjs
	docker-compose restart

# Database commands
db-migrate:
	node scripts/require-local-db.mjs
	docker-compose exec api alembic upgrade head

db-reset:
	node scripts/require-local-db.mjs
	docker-compose exec api alembic downgrade base
	docker-compose exec api alembic upgrade head

db-seed:
	node scripts/require-local-db.mjs
	docker-compose exec api python -m scripts.seed_database

# Production build
build-prod:
	NODE_ENV=production npm run build
	cd apps/api && pip install -r requirements.txt --target ./dist

# Deploy to staging (via Enclii on Hetzner)
deploy-staging:
	@echo "Deploying to staging..."
	@echo "Run: enclii deploy --environment staging"
	@echo "Or manually: docker-compose -f deployment/staging/docker-compose.yml up -d"

# Deploy to production (via Enclii on Hetzner)
deploy-prod:
	@echo "Deploying to production..."
	@echo "Run: enclii deploy --environment production"
	@echo "Raw SSH/docker-compose production deploys are break-glass only. Record the Enclii adapter gap instead of normalizing raw access."

# Run security scan
security-scan:
	npm audit
	cd apps/api && pip-audit

# Generate API documentation
docs-api:
	cd apps/api && python -m scripts.generate_openapi > ../../docs/openapi.json

# Start individual services
start-api:
	node scripts/require-local-services.mjs
	cd apps/api && uvicorn main:app --reload --host 0.0.0.0 --port 8000

start-admin:
	cd apps/admin && npm run dev

start-docs:
	cd apps/docs && npm run dev

# Environment setup
setup-env:
	cp .env.example .env
	cp apps/api/.env.example apps/api/.env
	cp apps/admin/.env.example apps/admin/.env
	@echo "Environment files created. Please update with your values."