+ Наведен порядок в файлах проекта + Наведен порядок в документации + Настроены скрипты установки, развертки и так далее, расширен MakeFile
256 lines
7.8 KiB
Markdown
256 lines
7.8 KiB
Markdown
# 🛠️ 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) |