Files
links/docs/MAKEFILE.md
Andrey K. Choi 2e535513b5 + Приведены все функции приложения в рабочий вид
+ Наведен порядок в файлах проекта
+ Наведен порядок в документации
+ Настроены скрипты установки, развертки и так далее, расширен MakeFile
2025-11-02 06:09:55 +09:00

7.8 KiB
Raw Permalink Blame History

🛠️ CatLink Makefile Руководство

Makefile предоставляет набор команд для разработки, сборки и деплоя проекта CatLink.

📋 Обзор команд

Для просмотра всех доступных команд используйте:

make help

🚀 Быстрый старт

Первая установка

make install

Устанавливает и запускает проект в первый раз.

Запуск для разработки

make dev-bg    # Запуск в фоне
make dev       # Запуск с выводом логов

Проверка статуса

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

# Настройка 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 Восстановить из бэкапа

Пример использования

# Создание бэкапа
make backup

# Восстановление (интерактивно выберите файл)
make restore

⚙️ Автоматизация и помощники

Команда Описание
make generate-env Сгенерировать .env файл интерактивно
make scale Масштабирование сервисов
make info Информация о проекте

Генерация .env файла

make generate-env

Интерактивно создает .env файл из .env.example.

🧹 Очистка

Команда Описание
make clean Очистка системы Docker
make clean-all ⚠️ Полная очистка (удаляет ВСЕ данные)
make reset ⚠️ Сброс к заводским настройкам

⚠️ Внимание: Команды clean-all и reset удаляют все данные безвозвратно!

📊 Полезные URL-адреса

После запуска доступны:

💡 Примеры использования

Стандартный workflow разработки

# Первый запуск
make install

# Ежедневная разработка
make dev-bg
make logs-web    # Просмотр логов при необходимости

# Обновление зависимостей
make update

# Работа с базой данных
make migrate-full
make superuser

# Проверка статуса
make health

Подготовка к продакшену

# Финальная сборка
make build-prod

# Деплой
make deploy

# Настройка SSL
make ssl-setup
make ssl-cert

Отладка проблем

# Проверка статуса
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. Создайте его через:

make generate-env

🆘 Решение проблем

Проблема: "Command not found: make"

Решение:

# Ubuntu/Debian
sudo apt install make

# macOS
xcode-select --install

Проблема: "Permission denied"

Решение:

# Дайте права на выполнение скриптов
chmod +x scripts/*.sh

Проблема: Контейнеры не запускаются

Решение:

# Проверьте статус
make status

# Попробуйте полную пересборку
make rebuild-no-cache

# Проверьте логи
make logs

📚 Дополнительная документация