Files
schedule/Makefile

69 lines
2.8 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PY := $(CURDIR)/.venv/bin/python
PIP := $(CURDIR)/.venv/bin/pip
.PHONY: help venv run dev run-api run-front test build up down restart logs ps deploy nginx-print nginx-install
help: ## Показать этот список команд
@grep -hE '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-10s\033[0m %s\n", $$1, $$2}'
# --- локальный запуск (без Docker) -------------------------------------------
venv: ## Создать .venv и установить зависимости
@test -x $(PY) || python3 -m venv .venv
@test -x $(PIP) || { echo "Не удалось создать .venv — см. README, раздел «Если установка не идёт» (на Debian/Ubuntu нужен пакет python3-venv)"; exit 1; }
@$(PIP) install -q --upgrade pip
@$(PIP) install -q -r requirements-dev.txt
@echo "Зависимости готовы (.venv). Дальше: make run"
run: venv ## Запустить API и сайт локально, без Docker
@echo "API: http://127.0.0.1:8000/status"
@echo "Сайт: http://127.0.0.1:8080 (открыть в браузере)"
@echo "Остановить: Ctrl+C"
@trap 'kill 0' EXIT; \
(cd src/backend && $(PY) -m uvicorn main:app --reload --port 8000) & \
(cd src/frontend && $(PY) -m uvicorn main:app --reload --port 8080) & \
wait
dev: run ## То же, что run
run-api: venv ## Запустить только API (http://127.0.0.1:8000)
cd src/backend && $(PY) -m uvicorn main:app --reload --port 8000
run-front: venv ## Запустить только сайт (http://127.0.0.1:8080)
cd src/frontend && $(PY) -m uvicorn main:app --reload --port 8080
test: venv ## Прогнать тесты
$(PY) -m pytest tests -q
# --- Docker (продакшен) ------------------------------------------------------
build: ## Собрать образы
docker compose build
up: ## Запустить сервисы в фоне
docker compose up -d
down: ## Остановить и удалить контейнеры
docker compose down
restart: ## Перезапустить сервисы
docker compose restart
logs: ## Логи сервисов (Ctrl+C для выхода)
docker compose logs -f
ps: ## Статус сервисов
docker compose ps
deploy: ## Собрать и запустить (docker)
./deploy.sh
# --- nginx (на сервере) ------------------------------------------------------
# DOMAIN=sched.example.ru make nginx-print / nginx-install
nginx-print: ## Показать конфиг nginx (DOMAIN=домен), ничего не меняя
deploy/nginx-site.sh --print --domain $(DOMAIN)
nginx-install: ## Сгенерировать, включить и перечитать конфиг nginx (DOMAIN=домен, с sudo)
sudo deploy/nginx-site.sh --domain $(DOMAIN)