This commit is contained in:
69
Makefile
69
Makefile
@@ -1,6 +1,9 @@
|
||||
# CatLink Development and Deployment Makefile
|
||||
# ================================================
|
||||
|
||||
# Docker Compose command detection
|
||||
DOCKER_COMPOSE := $(shell which docker-compose 2>/dev/null || echo "docker compose")
|
||||
|
||||
.PHONY: help install update dev build deploy ssl clean logs test restart shell backup restore
|
||||
|
||||
# Default target
|
||||
@@ -23,21 +26,21 @@ install: ## Установка и первый запуск
|
||||
|
||||
dev: ## Запуск в режиме разработки
|
||||
@echo "🔧 Запуск в режиме разработки..."
|
||||
@docker-compose up
|
||||
@$(DOCKER_COMPOSE) up
|
||||
|
||||
dev-bg: ## Запуск в фоне для разработки
|
||||
@echo "🔧 Запуск в фоне..."
|
||||
@docker-compose up -d
|
||||
@$(DOCKER_COMPOSE) up -d
|
||||
@echo "✅ Запущено в фоне"
|
||||
@echo "📱 Frontend: http://localhost:3000"
|
||||
@echo "🔧 Backend: http://localhost:8000"
|
||||
|
||||
up: ## Запуск с пересборкой (legacy)
|
||||
@docker-compose up -d --build
|
||||
@$(DOCKER_COMPOSE) up -d --build
|
||||
|
||||
down: ## Остановка всех сервисов
|
||||
@echo "⏹️ Остановка сервисов..."
|
||||
@docker-compose down
|
||||
@$(DOCKER_COMPOSE) down
|
||||
@echo "✅ Сервисы остановлены"
|
||||
|
||||
stop: ## Остановка всех сервисов (alias)
|
||||
@@ -45,37 +48,37 @@ stop: ## Остановка всех сервисов (alias)
|
||||
|
||||
restart: ## Перезапуск сервисов
|
||||
@echo "🔄 Перезапуск сервисов..."
|
||||
@docker-compose down
|
||||
@docker-compose up -d
|
||||
@$(DOCKER_COMPOSE) down
|
||||
@$(DOCKER_COMPOSE) up -d
|
||||
@echo "✅ Сервисы перезапущены"
|
||||
|
||||
# === Build Commands ===
|
||||
|
||||
build: ## Сборка без кэша
|
||||
@echo "🏗️ Сборка контейнеров..."
|
||||
@docker-compose build --no-cache
|
||||
@$(DOCKER_COMPOSE) build --no-cache
|
||||
@echo "✅ Сборка завершена"
|
||||
|
||||
build-prod: ## Сборка для продакшена
|
||||
@echo "🏗️ Сборка для продакшена..."
|
||||
@docker-compose -f docker-compose.yml -f docker-compose.prod.yml build --no-cache
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.prod.yml build --no-cache
|
||||
@echo "✅ Продакшен сборка готова"
|
||||
|
||||
update: ## Обновление зависимостей и пересборка
|
||||
@echo "📦 Обновление зависимостей..."
|
||||
@git pull
|
||||
@docker-compose down
|
||||
@docker-compose build --no-cache
|
||||
@docker-compose up -d
|
||||
@$(DOCKER_COMPOSE) down
|
||||
@$(DOCKER_COMPOSE) build --no-cache
|
||||
@$(DOCKER_COMPOSE) up -d
|
||||
@echo "✅ Обновление завершено"
|
||||
|
||||
# === Production Deployment ===
|
||||
|
||||
deploy: ## Развертывание в продакшен
|
||||
@echo "🚀 Развертывание в продакшен..."
|
||||
@docker-compose -f docker-compose.yml -f docker-compose.prod.yml down
|
||||
@docker-compose -f docker-compose.yml -f docker-compose.prod.yml build --no-cache
|
||||
@docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.prod.yml down
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.prod.yml build --no-cache
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.prod.yml up -d
|
||||
@echo "✅ Продакшен развернут"
|
||||
|
||||
# === SSL and Security ===
|
||||
@@ -86,7 +89,7 @@ ssl: ## Настройка SSL с Let's Encrypt
|
||||
echo "⚠️ Файл docker-compose.ssl.yml не найден. Создание..."; \
|
||||
$(MAKE) ssl-setup; \
|
||||
fi
|
||||
@docker-compose -f docker-compose.yml -f docker-compose.ssl.yml up -d
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.ssl.yml up -d
|
||||
@echo "✅ SSL настроен"
|
||||
|
||||
ssl-setup: ## Создание конфигурации SSL
|
||||
@@ -110,40 +113,40 @@ ssl-cert: ## Получение SSL сертификата
|
||||
|
||||
migrate: ## Выполнить миграции базы данных
|
||||
@echo "🗄️ Выполнение миграций..."
|
||||
@docker-compose exec web python manage.py migrate
|
||||
@$(DOCKER_COMPOSE) exec web python manage.py migrate
|
||||
@echo "✅ Миграции выполнены"
|
||||
|
||||
makemigrations: ## Создать новые миграции
|
||||
@echo "🗄️ Создание миграций..."
|
||||
@docker-compose exec web python manage.py makemigrations
|
||||
@$(DOCKER_COMPOSE) exec web python manage.py makemigrations
|
||||
@echo "✅ Миграции созданы"
|
||||
|
||||
superuser: ## Создать суперпользователя
|
||||
@echo "👤 Создание суперпользователя..."
|
||||
@docker-compose exec web python manage.py createsuperuser
|
||||
@$(DOCKER_COMPOSE) exec web python manage.py createsuperuser
|
||||
@echo "✅ Суперпользователь создан"
|
||||
|
||||
# === Maintenance ===
|
||||
|
||||
logs: ## Просмотр логов
|
||||
@docker-compose logs -f
|
||||
@$(DOCKER_COMPOSE) logs -f
|
||||
|
||||
logs-web: ## Логи backend
|
||||
@docker-compose logs -f web
|
||||
@$(DOCKER_COMPOSE) logs -f web
|
||||
|
||||
logs-frontend: ## Логи frontend
|
||||
@docker-compose logs -f frontend
|
||||
@$(DOCKER_COMPOSE) logs -f frontend
|
||||
|
||||
shell: ## Django shell
|
||||
@docker-compose exec web python manage.py shell
|
||||
@$(DOCKER_COMPOSE) exec web python manage.py shell
|
||||
|
||||
shell-db: ## Подключение к базе данных
|
||||
@docker-compose exec db psql -U links_user -d links_db
|
||||
@$(DOCKER_COMPOSE) exec db psql -U links_user -d links_db
|
||||
|
||||
backup: ## Создать бэкап базы данных
|
||||
@echo "💾 Создание бэкапа..."
|
||||
@mkdir -p backups
|
||||
@docker-compose exec db pg_dump -U links_user links_db > backups/backup_$(shell date +%Y%m%d_%H%M%S).sql
|
||||
@$(DOCKER_COMPOSE) exec db pg_dump -U links_user links_db > backups/backup_$(shell date +%Y%m%d_%H%M%S).sql
|
||||
@echo "✅ Бэкап создан в папке backups/"
|
||||
|
||||
restore: ## Восстановить из бэкапа
|
||||
@@ -157,22 +160,22 @@ restore: ## Восстановить из бэкапа
|
||||
|
||||
test: ## Запуск тестов
|
||||
@echo "🧪 Запуск тестов..."
|
||||
@docker-compose exec web python manage.py test
|
||||
@$(DOCKER_COMPOSE) exec web python manage.py test
|
||||
@echo "✅ Тесты завершены"
|
||||
|
||||
test-legacy: ## Запуск тестов (legacy pytest)
|
||||
@docker-compose exec web pytest --maxfail=1 --disable-warnings -q
|
||||
@$(DOCKER_COMPOSE) exec web pytest --maxfail=1 --disable-warnings -q
|
||||
|
||||
lint: ## Проверка кода
|
||||
@echo "🔍 Проверка кода..."
|
||||
@docker-compose exec web flake8 . || true
|
||||
@docker-compose exec frontend npm run lint || true
|
||||
@$(DOCKER_COMPOSE) exec web flake8 . || true
|
||||
@$(DOCKER_COMPOSE) exec frontend npm run lint || true
|
||||
@echo "✅ Проверка завершена"
|
||||
|
||||
format: ## Форматирование кода
|
||||
@echo "🎨 Форматирование кода..."
|
||||
@docker-compose exec web black . || true
|
||||
@docker-compose exec frontend npm run format || true
|
||||
@$(DOCKER_COMPOSE) exec web black . || true
|
||||
@$(DOCKER_COMPOSE) exec frontend npm run format || true
|
||||
@echo "✅ Код отформатирован"
|
||||
|
||||
# === CI/CD Operations ===
|
||||
@@ -272,7 +275,7 @@ ssl-host-setup: ## Локальная установка nginx + certbot и на
|
||||
|
||||
clean: ## Очистка системы
|
||||
@echo "🧹 Очистка..."
|
||||
@docker-compose down -v
|
||||
@$(DOCKER_COMPOSE) down -v
|
||||
@docker system prune -f
|
||||
@docker volume prune -f
|
||||
@echo "✅ Очистка завершена"
|
||||
@@ -294,7 +297,7 @@ clean-all: ## Полная очистка (ОСТОРОЖНО!)
|
||||
|
||||
status: ## Статус сервисов
|
||||
@echo "📊 Статус сервисов:"
|
||||
@docker-compose ps
|
||||
@$(DOCKER_COMPOSE) ps
|
||||
@echo ""
|
||||
@echo "🌐 URL-адреса:"
|
||||
@echo " Frontend: http://localhost:3000"
|
||||
@@ -306,7 +309,7 @@ health: ## Проверка здоровья сервисов
|
||||
@echo "🏥 Проверка здоровья..."
|
||||
@curl -s http://localhost:3000 > /dev/null && echo "✅ Frontend: OK" || echo "❌ Frontend: ERROR"
|
||||
@curl -s http://localhost:8000/api/ > /dev/null && echo "✅ Backend: OK" || echo "❌ Backend: ERROR"
|
||||
@docker-compose exec db pg_isready -U links_user && echo "✅ Database: OK" || echo "❌ Database: ERROR"
|
||||
@$(DOCKER_COMPOSE) exec db pg_isready -U links_user && echo "✅ Database: OK" || echo "❌ Database: ERROR"
|
||||
|
||||
info: ## Информация о проекте
|
||||
@echo "📋 CatLink - Информация о проекте"
|
||||
|
||||
Reference in New Issue
Block a user