diff --git a/Makefile b/Makefile index 1fa21a7..0f8fdf0 100644 --- a/Makefile +++ b/Makefile @@ -1,44 +1,47 @@ -.PHONY: help up down restart logs logs-app logs-db ps db dev db-push db-shell clean install-docker +.PHONY: help up start dev-node db dev down restart logs logs-app logs-db ps db-push db-shell clean install-docker -# Цвета для вывода справки CYAN := \033[36m GREEN := \033[32m +YELLOW:= \033[33m RESET := \033[0m help: - @echo "$(CYAN)XFlow Full Stack Management:$(RESET)" - @echo " $(GREEN)make up$(RESET) - Собрать и запустить полный стек в Docker (App + DB + Redis)" - @echo " $(GREEN)make db$(RESET) - Запустить ТОЛЬКО базы данных (PostgreSQL + Redis) в фоне" - @echo " $(GREEN)make dev$(RESET) - Поднять DB в Docker + запустить локальный Nuxt с горячей перезагрузкой" - @echo " $(GREEN)make down$(RESET) - Остановить все контейнеры" - @echo " $(GREEN)make restart$(RESET) - Перезапустить контейнеры" - @echo " $(GREEN)make logs$(RESET) - Логи всех сервисов (следить в реальном времени)" - @echo " $(GREEN)make logs-app$(RESET) - Логи веб-приложения Nuxt" - @echo " $(GREEN)make logs-db$(RESET) - Логи базы данных PostgreSQL" - @echo " $(GREEN)make ps$(RESET) - Список работающих контейнеров и портов" - @echo " $(GREEN)make db-push$(RESET) - Применить схему Prisma к локальной БД" - @echo " $(GREEN)make db-shell$(RESET) - Войти в консоль psql базы данных" - @echo " $(GREEN)make clean$(RESET) - Остановить стек и удалить тома с данными (очистка)" - @echo " $(GREEN)make install-docker$(RESET) - Команда для установки Docker и Compose на Ubuntu/Debian" + @echo "$(CYAN)XFlow Stack Management:$(RESET)" + @echo " $(GREEN)make up$(RESET) - Запустить стек (в Docker если установлен, иначе локально через Node)" + @echo " $(GREEN)make start$(RESET) - Запустить собранный Nuxt-сервер на Node (порт 3000)" + @echo " $(GREEN)make db$(RESET) - Запустить базы (PostgreSQL + Redis) в Docker" + @echo " $(GREEN)make dev$(RESET) - Поднять DB в Docker + запустить локальный Nuxt" + @echo " $(GREEN)make down$(RESET) - Остановить контейнеры Docker" + @echo " $(GREEN)make logs$(RESET) - Логи Docker-контейнеров" + @echo " $(GREEN)make install-docker$(RESET) - Инструкция по установке Docker на Ubuntu" up: - docker compose up -d --build + @if command -v docker >/dev/null 2>&1; then \ + echo "$(GREEN)Запуск контейнеров через Docker Compose...$(RESET)"; \ + docker compose up -d --build; \ + else \ + echo "$(YELLOW)Docker не установлен в системе.$(RESET)"; \ + echo "$(CYAN)Чтобы установить Docker: sudo apt-get update && sudo apt-get install -y docker.io docker-compose-v2 && sudo usermod -aG docker \$$USER$(RESET)"; \ + echo "$(GREEN)Запускаем XFlow через Node.js на порту 3000...$(RESET)"; \ + $(MAKE) start; \ + fi + +start: + @PORT=3000 node /home/alexives/Desktop/StudioProjects/XFlow/apps/web/.output/server/index.mjs db: docker compose up -d db redis - @echo "$(GREEN)PostgreSQL (порт 5432) и Redis (порт 6379) готовы к работе!$(RESET)" + @echo "$(GREEN)PostgreSQL (5432) и Redis (6379) запущены!$(RESET)" dev: db - @echo "$(CYAN)Применяем схему Prisma...$(RESET)" DATABASE_URL="postgresql://xflow:xflow_pass@localhost:5432/xflow" npm --prefix apps/web run prisma db push || true - @echo "$(GREEN)Запускаем Nuxt Dev Server...$(RESET)" DATABASE_URL="postgresql://xflow:xflow_pass@localhost:5432/xflow" npm --prefix apps/web run dev down: - docker compose down + @if command -v docker >/dev/null 2>&1; then docker compose down; fi restart: - docker compose restart + @if command -v docker >/dev/null 2>&1; then docker compose restart; else $(MAKE) start; fi logs: docker compose logs -f @@ -62,7 +65,7 @@ clean: docker compose down -v --remove-orphans install-docker: - @echo "$(CYAN)Для установки Docker на вашей Linux системе выполните:$(RESET)" + @echo "$(CYAN)Для установки Docker выполните:$(RESET)" @echo "sudo apt-get update && sudo apt-get install -y docker.io docker-compose-v2" - @echo "sudo usermod -aG docker $$USER" - @echo "$(CYAN)После этого перезайдите в сессию (newgrp docker или перелогиньтесь).$(RESET)" + @echo "sudo usermod -aG docker \$$USER" + @echo "$(CYAN)Затем обновите сессию: newgrp docker$(RESET)"