+ Приведены все функции приложения в рабочий вид
+ Наведен порядок в файлах проекта + Наведен порядок в документации + Настроены скрипты установки, развертки и так далее, расширен MakeFile
This commit is contained in:
256
docs/MAKEFILE.md
Normal file
256
docs/MAKEFILE.md
Normal file
@@ -0,0 +1,256 @@
|
||||
# 🛠️ 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)
|
||||
Reference in New Issue
Block a user