+ Приведены все функции приложения в рабочий вид

+ Наведен порядок в файлах проекта
+ Наведен порядок в документации
+ Настроены скрипты установки, развертки и так далее, расширен MakeFile
This commit is contained in:
2025-11-02 06:09:55 +09:00
parent 367e1c932e
commit 2e535513b5
6103 changed files with 7040 additions and 1027861 deletions

256
docs/MAKEFILE.md Normal file
View 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)