# Задача: Простая настройка VDS с автоматической установкой Ubuntu ## 🎯 **Описание задачи:** ### **Цель:** Создать простую форму для автоматической настройки VDS сервера с установкой Ubuntu и деплоем DLE приложения. ### **Проблема:** Нужно вручную настраивать VDS сервер, устанавливать Ubuntu и необходимые компоненты для работы DLE приложения. ### **Решение:** Автоматическая очистка VDS, установка Ubuntu, создание пользователя и деплой DLE приложения через локальную форму. ## 📋 **Требования:** ### **1. Входные данные (9 полей):** - **VDS IP** - IP адрес сервера - **Домен** - например `example.com` (должен указывать на IP VDS) - **Email** - для SSL сертификата - **Логин Ubuntu** - пользователь для VDS (по умолчанию `ubuntu`) - **Пароль Ubuntu** - пароль для пользователя VDS - **Логин Docker** - пользователь для Docker (по умолчанию `docker`) - **Пароль Docker** - пароль для пользователя Docker - **SSH пользователь** - обычно `root` - **SSH ключ** - приватный ключ для подключения - **Ключ шифрования** - автоматически загружается с локальной машины ### **1.1. Требования к домену:** - **A запись** `example.com` → IP VDS сервера - **CNAME запись** `www.example.com` → `example.com` (опционально) - **Домен должен быть активен** и доступен - **DNS записи должны распространиться** (проверка перед настройкой) ### **2. Что должно происходить:** 1. **Проверка DNS** - валидация A записи домена 2. **Подключение** к VDS по SSH 3. **Очистка** всего содержимого на VDS 4. **Установка** Ubuntu 5. **Создание пользователя Ubuntu** с паролем 6. **Создание пользователя Docker** с паролем 7. **Установка** Docker, Docker Compose, nginx 8. **Настройка** nginx для продакшн приложения 9. **Получение** SSL сертификата 10. **Миграция** Docker образов с локальной машины 11. **Передача ключей** (шифрования и RSA) на VDS 12. **Обновление переменных** в БД VDS 13. **Запуск** DLE приложения в Docker ### **3. Результат:** - **VDS полностью очищена** и переустановлена - **Ubuntu установлена** с пользователями Ubuntu и Docker - **Docker образы** мигрированы с локальной машины - **Ключи переданы** с локальной машины на VDS - **Переменные обновлены** в БД VDS - **DLE приложение** работает в Docker на VDS - **Домен работает** с SSL - **Приложение работает** автономно на VDS ## 🏗️ **Архитектура:** ``` Продакшн режим: Интернет → VDS nginx (домен) → VDS Docker приложение (автономно) Настройка: Локальная машина → SSH → VDS сервер → Очистка + Ubuntu + Docker миграция ``` ### **Компоненты:** 1. **Веб-форма** - настройка VDS (7 полей) 2. **WebSSH сервис** - SSH команды к VDS 3. **SSH агент** - подключение к VDS 4. **VDS сервер** - Ubuntu + Docker + nginx + SSL 5. **Docker образы** - мигрированы с локальной машины 6. **Переменные окружения** - настроены для продакшн ## 🚀 **Процесс работы:** ### **1. Первоначальная настройка:** - Заходит на `http://localhost:5173/settings/interface/webssh` - Заполняет форму с данными VDS (9 полей) - Нажимает "Настроить VDS" ### **2. Система настраивает VDS:** - **Проверяет DNS** записи домена - **Предупреждает** если домен не готов - Подключается к VDS по SSH - **Очищает** все содержимое на VDS - **Устанавливает** Ubuntu - **Создает пользователя Ubuntu** с паролем - **Создает пользователя Docker** с паролем - Устанавливает Docker, Docker Compose, nginx - Настраивает nginx для продакшн - Получает SSL сертификат - **Мигрирует** Docker образы с локальной машины - **Передает ключи** (шифрования и RSA) на VDS - **Обновляет переменные** в БД VDS - **Запускает** DLE приложение в Docker ### **3. Результат:** - **VDS полностью готова** для работы - **Пользователи Ubuntu и Docker** созданы - **Docker образы** мигрированы и запущены - **Ключи переданы** с локальной машины на VDS - **Переменные обновлены** в БД VDS - **DLE приложение** работает автономно в Docker - **Домен доступен** с SSL ## 📁 **Файлы проекта:** ### **Frontend:** - `frontend/src/components/WebSshForm.vue` - форма управления - `frontend/src/services/webSshService.js` - SSH команды к VDS ### **Backend:** - `backend/routes/vds-management.js` - API для управления VDS - `backend/services/sshManager.js` - SSH команды - `backend/services/encryptionManager.js` - управление шифрованием ### **Scripts:** - `scripts/setup-vds.sh` - очистка VDS и установка Ubuntu - `scripts/migrate-docker.sh` - миграция Docker образов на VDS - `scripts/configure-vds.sh` - настройка переменных окружения - `scripts/transfer-keys.sh` - передача ключей на VDS - `scripts/update-variables.sh` - обновление переменных в БД - `scripts/install-ubuntu.sh` - автоматическая установка Ubuntu ## ✅ **Статус:** ### **Готово:** - ✅ Форма WebSSH упрощена - ✅ WebSSH сервис обновлен - ✅ DNS проверка добавлена - ✅ Инструкции по настройке DNS созданы - ✅ Поле VDS IP добавлено в форму ### **Нужно доработать:** - 🔄 SSH агент для очистки и установки Ubuntu - 🔄 API для управления VDS - 🔄 Миграция Docker образов на VDS - 🔄 Передача ключей (шифрования и RSA) на VDS - 🔄 Обновление переменных в БД VDS - 🔄 Автоматическая загрузка ключа шифрования в форму ## 🎯 **Следующие шаги:** 1. **Создать SSH агент** для очистки и установки Ubuntu 2. **Добавить API** для управления VDS 3. **Реализовать миграцию** Docker образов на VDS 4. **Создать скрипты** для передачи ключей на VDS 5. **Реализовать обновление** переменных в БД VDS 6. **Добавить автоматическую загрузку** ключа шифрования в форму 7. **Протестировать** на реальной VDS