Files
game-marathon/Makefile

140 lines
2.9 KiB
Makefile
Raw Normal View History

2025-12-14 03:23:50 +07:00
.PHONY: help dev up down build build-no-cache logs restart clean migrate shell db-shell frontend-shell backend-shell lint test
DC = sudo docker-compose
# Default target
help:
@echo "Marathon WebApp - Available commands:"
@echo ""
@echo " Development:"
@echo " make dev - Start all services in development mode"
@echo " make up - Start all services (detached)"
@echo " make down - Stop all services"
@echo " make restart - Restart all services"
@echo " make logs - Show logs (all services)"
@echo " make logs-b - Show backend logs"
@echo " make logs-f - Show frontend logs"
@echo ""
@echo " Build:"
@echo " make build - Build all containers (with cache)"
2025-12-14 20:21:56 +07:00
@echo " make build-no-cache - Build all containers (no cache)"
@echo " make reup - Rebuild with cache: down + build + up"
@echo " make rebuild - Full rebuild: down + build --no-cache + up"
@echo " make rebuild-frontend - Rebuild only frontend"
@echo " make rebuild-backend - Rebuild only backend"
2025-12-14 03:23:50 +07:00
@echo ""
@echo " Database:"
@echo " make migrate - Run database migrations"
@echo " make db-shell - Open PostgreSQL shell"
@echo ""
@echo " Shell access:"
@echo " make shell - Open backend shell"
@echo " make frontend-sh - Open frontend shell"
@echo ""
@echo " Cleanup:"
@echo " make clean - Stop and remove containers, volumes"
@echo " make prune - Remove unused Docker resources"
# Development
dev:
$(DC) up
up:
$(DC) up -d
down:
$(DC) down
restart:
$(DC) restart
logs:
$(DC) logs -f
logs-b:
$(DC) logs -f backend
logs-f:
$(DC) logs -f frontend
# Build
build:
$(DC) build
build-no-cache:
$(DC) build --no-cache
2025-12-14 20:21:56 +07:00
reup:
$(DC) down
$(DC) build
$(DC) up -d
rebuild:
$(DC) down
$(DC) build --no-cache
$(DC) up -d
2025-12-14 03:23:50 +07:00
rebuild-frontend:
$(DC) down
sudo docker rmi marathon-frontend || true
$(DC) build --no-cache frontend
$(DC) up -d
2025-12-14 20:21:56 +07:00
rebuild-backend:
$(DC) down
sudo docker rmi marathon-backend || true
$(DC) build --no-cache backend
$(DC) up -d
2025-12-14 03:23:50 +07:00
# Database
migrate:
$(DC) exec backend alembic upgrade head
migrate-new:
@read -p "Migration message: " msg; \
$(DC) exec backend alembic revision --autogenerate -m "$$msg"
db-shell:
$(DC) exec db psql -U marathon -d marathon
# Shell access
shell:
$(DC) exec backend bash
backend-shell: shell
frontend-sh:
$(DC) exec frontend sh
# Cleanup
clean:
$(DC) down -v --remove-orphans
prune:
sudo docker system prune -f
# Local development (without Docker)
install:
cd backend && pip install -r requirements.txt
cd frontend && npm install
run-backend:
cd backend && uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
run-frontend:
cd frontend && npm run dev
# Linting and testing
lint-backend:
cd backend && ruff check app
lint-frontend:
cd frontend && npm run lint
test-backend:
cd backend && pytest
# Production
prod:
$(DC) -f docker-compose.yml up -d --build