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
|