Files
DLE/docs/vds.md

8.1 KiB
Raw Blame History

Задача: Простая настройка 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.comexample.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