Add challenges preview + makefile
This commit is contained in:
119
Makefile
Normal file
119
Makefile
Normal file
@@ -0,0 +1,119 @@
|
||||
.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)"
|
||||
@echo " make build-no-cache - Rebuild all containers (no cache)"
|
||||
@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
|
||||
|
||||
rebuild-frontend:
|
||||
$(DC) down
|
||||
sudo docker rmi marathon-frontend || true
|
||||
$(DC) build --no-cache frontend
|
||||
$(DC) up -d
|
||||
|
||||
# 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
|
||||
Reference in New Issue
Block a user