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

256 lines
7.8 KiB
Markdown
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.

# 🛠️ 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)