# 🛠️ CatLink Makefile Руководство Makefile предоставляет набор команд для разработки, сборки и деплоя проекта CatLink. ## 📋 Обзор команд Для просмотра всех доступных команд используйте: ```bash make help ``` ## 🚀 Быстрый старт ### Первая установка ```bash make install ``` Устанавливает и запускает проект в первый раз. ### Запуск для разработки ```bash make dev-bg # Запуск в фоне make dev # Запуск с выводом логов ``` ### Проверка статуса ```bash make status # Статус всех сервисов make health # Проверка работоспособности ``` ## 🔧 Команды разработки | Команда | Описание | |---------|----------| | `make dev` | Запуск в режиме разработки с логами | | `make dev-bg` | Запуск в фоне для разработки | | `make up` | Запуск с пересборкой (legacy) | | `make down` | Остановка всех сервисов | | `make stop` | Остановка всех сервисов (alias) | | `make restart` | Перезапуск всех сервисов | ## 🏗️ Команды сборки | Команда | Описание | |---------|----------| | `make build` | Сборка контейнеров без кеша | | `make build-prod` | Сборка для продакшена | | `make rebuild-no-cache` | Полная пересборка без кеша | | `make update` | Обновление зависимостей и пересборка | ## 🚀 Деплой и продакшен | Команда | Описание | |---------|----------| | `make deploy` | Развертывание в продакшен | | `make ssl` | Настройка SSL с Let's Encrypt | | `make ssl-setup` | Создание конфигурации SSL | | `make ssl-cert` | Получение SSL сертификата | | `make ssl-host-setup` | Локальная настройка nginx + certbot | ### Пример использования SSL ```bash # Настройка SSL для домена make ssl-host-setup DOMAIN=catlinks.kr EMAIL=admin@catlinks.kr ``` ## 🗄️ Управление базой данных | Команда | Описание | |---------|----------| | `make migrate` | Выполнить миграции | | `make makemigrations` | Создать новые миграции | | `make migrate-full` | makemigrations + migrate + collectstatic | | `make superuser` | Создать суперпользователя | | `make create-superuser-noninteractive` | Создать суперпользователя из .env | ## 🔍 Мониторинг и логи | Команда | Описание | |---------|----------| | `make logs` | Просмотр всех логов | | `make logs-web` | Логи backend | | `make logs-frontend` | Логи frontend | | `make monitor` | Мониторинг ресурсов | | `make status` | Статус сервисов | | `make health` | Проверка работоспособности | ## 🛠️ Инструменты разработки | Команда | Описание | |---------|----------| | `make shell` | Django shell | | `make shell-db` | Подключение к базе данных | | `make test` | Запуск тестов | | `make lint` | Проверка кода | | `make format` | Форматирование кода | ## 💾 Бэкап и восстановление | Команда | Описание | |---------|----------| | `make backup` | Создать бэкап базы данных | | `make restore` | Восстановить из бэкапа | ### Пример использования ```bash # Создание бэкапа make backup # Восстановление (интерактивно выберите файл) make restore ``` ## ⚙️ Автоматизация и помощники | Команда | Описание | |---------|----------| | `make generate-env` | Сгенерировать .env файл интерактивно | | `make scale` | Масштабирование сервисов | | `make info` | Информация о проекте | ### Генерация .env файла ```bash make generate-env ``` Интерактивно создает `.env` файл из `.env.example`. ## 🧹 Очистка | Команда | Описание | |---------|----------| | `make clean` | Очистка системы Docker | | `make clean-all` | ⚠️ Полная очистка (удаляет ВСЕ данные) | | `make reset` | ⚠️ Сброс к заводским настройкам | > ⚠️ **Внимание**: Команды `clean-all` и `reset` удаляют все данные безвозвратно! ## 📊 Полезные URL-адреса После запуска доступны: - **Frontend**: http://localhost:3000 - **Backend API**: http://localhost:8000 - **Django Admin**: http://localhost:8000/admin ## 💡 Примеры использования ### Стандартный workflow разработки ```bash # Первый запуск make install # Ежедневная разработка make dev-bg make logs-web # Просмотр логов при необходимости # Обновление зависимостей make update # Работа с базой данных make migrate-full make superuser # Проверка статуса make health ``` ### Подготовка к продакшену ```bash # Финальная сборка make build-prod # Деплой make deploy # Настройка SSL make ssl-setup make ssl-cert ``` ### Отладка проблем ```bash # Проверка статуса make status make health # Просмотр логов make logs make logs-web make logs-frontend # Полная перезагрузка make restart # В крайнем случае - полная пересборка make rebuild-no-cache ``` ## 🔧 Технические детали ### Требования - Docker и Docker Compose - Make (обычно предустановлен в Linux/macOS) - Bash (для выполнения скриптов) ### Структура скриптов Makefile использует скрипты из папки `scripts/`: - `generate_env.sh` - Генерация .env файла - `create_superuser.sh` - Создание суперпользователя - `migrate_and_collect.sh` - Миграции и сбор статики - `rebuild_no_cache.sh` - Пересборка без кеша - `ssl_setup.sh` - Настройка SSL ### Переменные окружения Многие команды используют файл `.env`. Создайте его через: ```bash make generate-env ``` ## 🆘 Решение проблем ### Проблема: "Command not found: make" **Решение**: ```bash # Ubuntu/Debian sudo apt install make # macOS xcode-select --install ``` ### Проблема: "Permission denied" **Решение**: ```bash # Дайте права на выполнение скриптов chmod +x scripts/*.sh ``` ### Проблема: Контейнеры не запускаются **Решение**: ```bash # Проверьте статус make status # Попробуйте полную пересборку make rebuild-no-cache # Проверьте логи make logs ``` ## 📚 Дополнительная документация - [Деплой и развертывание](./DEPLOYMENT.md) - [Исправления и патчи](./FIXES.md) - [Тестирование покрытия](./COVER_OVERLAY_TESTING.md)