Files

124 lines
3.2 KiB
Makefile

.PHONY: help dev prod test clean build deploy check-prod
# Default target
help:
@echo "Containr - Container Management Platform"
@echo ""
@echo "Available targets:"
@echo " make dev - Start development environment"
@echo " make prod - Start production environment"
@echo " make test - Run all tests"
@echo " make test-backend - Run backend tests"
@echo " make test-frontend- Run frontend tests"
@echo " make build - Build all containers"
@echo " make clean - Stop and remove all containers"
@echo " make check-prod - Run production readiness checks"
@echo " make logs - Show logs from all services"
@echo " make migrate - Run database migrations"
@echo " make help - Show this help message"
# Development environment
dev:
@echo "Starting development environment..."
./start-unified.sh dev
# Production environment
prod: check-prod
@echo "Starting production environment..."
./start-unified.sh prod
# Run all tests
test: test-backend test-frontend
@echo "All tests completed"
# Backend tests
test-backend:
@echo "Running backend tests..."
cd app/backend && go test ./... -v
# Frontend tests
test-frontend:
@echo "Running frontend tests..."
cd app/frontend && npm test
# Build all containers
build:
@echo "Building all containers..."
docker compose -f infra/docker-compose.yml build
# Clean up
clean:
@echo "Stopping and removing all containers..."
docker compose -f infra/docker-compose.yml down -v
docker compose down -v
# Production readiness check
check-prod:
@echo "Running production readiness checks..."
@bash scripts/production-check.sh
# Show logs
logs:
docker compose -f infra/docker-compose.yml logs -f
# Run database migrations
migrate:
@echo "Running database migrations..."
cd app/backend && go run cmd/migrate/main.go up
# Database backup
backup:
@echo "Creating database backup..."
docker compose -f infra/docker-compose.yml exec postgres pg_dump -U $(POSTGRES_USER) $(POSTGRES_DB) > backup_$(shell date +%Y%m%d_%H%M%S).sql
# Database restore
restore:
@echo "Restoring database from backup..."
@read -p "Enter backup file path: " backup_file; \
docker compose -f infra/docker-compose.yml exec -T postgres psql -U $(POSTGRES_USER) $(POSTGRES_DB) < $$backup_file
# Install dependencies
install:
@echo "Installing dependencies..."
cd app/backend && go mod download
cd app/frontend && npm install
# Format code
format:
@echo "Formatting code..."
cd app/backend && go fmt ./...
cd app/frontend && npm run format || true
# Lint code
lint:
@echo "Linting code..."
cd app/backend && go vet ./...
cd app/frontend && npm run lint
# Generate API types
generate-api:
@echo "Generating API types..."
cd app/frontend && npm run generate:api
# Security scan
security-scan:
@echo "Running security scan..."
cd app/backend && go list -json -m all | docker run --rm -i sonatypecommunity/nancy:latest sleuth || true
cd app/frontend && npm audit || true
# Update dependencies
update-deps:
@echo "Updating dependencies..."
cd app/backend && go get -u ./...
cd app/frontend && npm update
# Docker prune
prune:
@echo "Pruning Docker resources..."
docker system prune -af --volumes
# Show status
status:
@echo "Container status:"
docker compose -f infra/docker-compose.yml ps