.PHONY: dev prod deploy logs stop clean restart ps help test test-backend test-frontend migrate migrate-down dev: ## Запустить локальную разработку docker compose up -d cd backend && go run ./cmd/api & cd frontend && npm run dev prod: ## Запустить продакшен (сборка + деплой) bash deploy/deploy.sh deploy: prod ## Алиас для prod logs: ## Логи продакшена docker compose -f deploy/docker-compose.prod.yml logs -f stop: ## Остановить всё docker compose down docker compose -f deploy/docker-compose.prod.yml down clean: ## Остановить + удалить volume docker compose down -v docker compose -f deploy/docker-compose.prod.yml down -v restart: ## Перезапустить продакшен docker compose -f deploy/docker-compose.prod.yml restart ps: ## Статус контейнеров docker compose -f deploy/docker-compose.prod.yml ps test: ## Запустить все тесты $(MAKE) test-backend $(MAKE) test-frontend test-backend: ## Запустить тесты бэкенда cd backend && go test ./... -v -race test-frontend: ## Запустить тесты фронтенда cd frontend && npm run test 2>/dev/null || echo "No test script configured yet" migrate: ## Накатить миграции (локально) docker compose run --rm migrate migrate-down: ## Откатить последнюю миграцию (локально) docker compose run --rm migrate migrate -path=/migrations -database "postgres://photoplaces:photoplaces_dev@postgres:5432/photoplaces?sslmode=disable" down 1 help: ## Показать помощь @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'