diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d03a302 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,157 @@ +# Changelog - MC Panel + +## [1.2.0] - 2026-01-17 + +### ✨ Новые функции + +#### Система демонов (как в MCSManager) +- **Добавлена полная система демонов** для управления серверами на удаленных машинах +- **API демонов** (`/api/daemons`) с CRUD операциями +- **UI компонент** для управления демонами с автообновлением статуса +- **Daemon приложение** (`daemon/main.py`) для установки на удаленные серверы +- **Выбор демона** при создании сервера - можно создавать серверы на любом подключенном демоне + +#### Улучшения авторизации +- **Исправлена система ролей** - owner и admin теперь видят ВСЕ серверы +- **Добавлена роль в JWT токен** для правильной авторизации +- **Улучшена проверка прав доступа** к демонам (только owner/admin) + +#### Docker и развертывание +- **Nginx конфигурация** для раздачи статических файлов frontend +- **Многоэтапная сборка** Docker с оптимизацией +- **Альтернативные docker-compose** файлы для разных сценариев +- **Исправлены пути** к файлам данных в контейнерах + +### 🔧 Исправления + +#### Критические ошибки +- **Исправлена ошибка 404** при обращении к `/api/daemons` (роутер не регистрировался) +- **Исправлена ошибка 401** при авторизации (роль не добавлялась в токен) +- **Исправлены пути к файлам** в Docker контейнерах +- **Исправлена nginx конфигурация** (отсутствовала секция events) + +#### UI/UX улучшения +- **Обновлен CreateServerModal** с выбором демона +- **Добавлена статистика демонов** (CPU, RAM, Disk) с автообновлением +- **Улучшено отображение** статуса демонов (онлайн/оффлайн) +- **Добавлены отладочные сообщения** для диагностики + +### 🗂️ Структурные изменения + +#### Новые файлы +``` +daemon/ +├── main.py # Daemon приложение +├── .env # Конфигурация демона +├── install.bat # Скрипт установки +├── start.bat # Скрипт запуска +└── README.md # Документация + +backend/ +└── daemons.py # API для управления демонами + +frontend/src/components/ +├── Daemons.jsx # UI управления демонами +└── CreateServerModal.jsx # Обновлен с выбором демона + +nginx/ +└── default.conf # Конфигурация nginx + +docker-compose-*.yml # Альтернативные конфигурации +``` + +#### Обновленные файлы +- `backend/main.py` - добавлен роутер демонов, исправлена авторизация +- `frontend/src/App.jsx` - добавлена кнопка "Демоны" для owner/admin +- `docker-compose.yml` - обновлен для работы с nginx +- `Dockerfile` - многоэтапная сборка frontend + backend + +### 📚 Документация + +#### Новая документация +- `DAEMON_SETUP.md` - Полная инструкция по установке демонов +- `NGINX_SETUP.md` - Настройка nginx для production +- `DOCKER_FIX.md` - Исправление проблем с Docker +- `LINUX_DOCKER_FIX.md` - Специфичные инструкции для Linux + +### 🚀 Развертывание + +#### Варианты запуска +1. **С nginx** (рекомендуется для production): + ```bash + docker compose up --build -d + ``` + +2. **Без nginx** (для разработки): + ```bash + docker compose -f docker-compose-simple.yml up --build -d + ``` + +3. **Локальная разработка**: + ```bash + # Backend + cd backend && python main.py + + # Frontend + cd frontend && npm run dev + + # Daemon + cd daemon && python main.py + ``` + +### 🔐 Безопасность + +#### Улучшения безопасности +- **JWT токены** теперь содержат роль пользователя +- **Проверка прав доступа** к демонам +- **Аутентификация демонов** через API ключи +- **Внутренние порты** для backend в Docker + +### 📊 Производительность + +#### Оптимизации +- **Nginx раздает статику** вместо Python backend +- **Gzip сжатие** для всех статических файлов +- **Кэширование** статических ресурсов +- **Многоэтапная сборка** Docker для уменьшения размера образа + +### 🧪 Тестирование + +#### Добавлено +- **Отладочные сообщения** для диагностики проблем +- **Health check** для Docker контейнеров +- **Проверка подключения** к демонам при добавлении + +--- + +## Миграция с предыдущих версий + +### Обновление с версии 1.1.x + +1. **Обновите файлы**: + ```bash + git pull + ``` + +2. **Создайте папку data**: + ```bash + mkdir -p data + ``` + +3. **Перезапустите контейнеры**: + ```bash + docker compose down + docker compose up --build -d + ``` + +4. **Перелогиньтесь** в панели для получения нового токена с ролью + +### Новые пользователи + +Используйте стандартные учетные данные: +- **Логин**: `admin` +- **Пароль**: `Admin` + +--- + +**Версия 1.2.0 включает полную систему демонов и значительные улучшения производительности!** 🚀 \ No newline at end of file