ваше сообщение коммита

This commit is contained in:
2025-09-30 22:58:08 +03:00
parent 738a615809
commit ad7b8e9716
16 changed files with 1854 additions and 54 deletions

153
docs/vds.md Normal file
View File

@@ -0,0 +1,153 @@
# Задача: Простая настройка 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