Files
ospab.host/Manuals/INTEGRATION_CHECKLIST.md
Georgiy Syralev d45baf2260 sitemap и тд
2025-11-01 12:29:46 +03:00

9.8 KiB
Raw Blame History

Чек-лист интеграции для главного сайта (ospab.host)

📋 Подготовка к интеграции

Фаза 1: Координация (1 день)

  • Получить API ключ от администратора панели управления

    • Контакт: Свяжитесь с разработчиком панели
    • Ключ должен быть минимум 32 символа
    • Пример: your_secret_api_key_here_min_32_chars_change_this
  • Запросить URL панели управления

    • Production: https://panel.ospab.host
    • Development/Testing: http://localhost:5050
  • Получить таблицу соответствия user ID

    • Как мап ID пользователей главного сайта на ID в OSPAB Panel
    • Возможно используется SSO система

Фаза 2: Подготовка кода (1-2 дня)

  • 1. Создать файл с переменными окружения
# .env файл добавить:
OSPAB_PANEL_URL=https://panel.ospab.host
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
  • 2. Создать сервис синхронизации

Файл: services/ospab-vps-sync.ts (или аналогичный)

Использовать пример из FOR_MAIN_SITE_DEVELOPER.md

// Методы:
// - createVPS(data)        // Создать VPS
// - updateVPSStatus(id, status) // Обновить статус
// - deleteVPS(id)          // Удалить VPS
  • 3. Интегрировать в маршруты

В файлах где обрабатывается создание/удаление VPS:

// После успешного создания на хостинге:
await vpsSync.createVPS({ user_id, name, cpu, ram, disk, os });

// Когда VPS готов:
await vpsSync.updateVPSStatus(vpsId, 'running');

// При удалении:
await vpsSync.deleteVPS(vpsId);
  • 4. Обработка ошибок
try {
  await vpsSync.createVPS(data);
} catch (error) {
  // Логировать ошибку
  console.error('VPS sync failed:', error);
  
  // НЕ прерывать создание VPS на хостинге
  // Добавить в очередь для повторной попытки (bull, rsmq, etc)
}

Фаза 3: Тестирование локально (1-2 дня)

  • 1. Запустить панель управления локально
# На компьютере разработчика панели:
go run ./cmd/server/main.go
# API доступен на: http://localhost:5050
# Web доступен на: http://localhost:3000
  • 2. Обновить .env в главном сайте
OSPAB_PANEL_URL=http://localhost:5050
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
  • 3. Тестовый запрос через curl
# Создание VPS
curl -X POST http://localhost:5050/api/vps/sync \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_secret_api_key_here_min_32_chars_change_this" \
  -d '{
    "action": "create",
    "vps": {
      "user_id": 5,
      "name": "test-vps",
      "cpu": 2,
      "ram": 2048,
      "disk": 50,
      "os": "Ubuntu 22.04 LTS",
      "status": "creating",
      "hypervisor": "proxmox"
    }
  }'

# Ожидаемый ответ: HTTP 200, JSON с ID VPS
  • 4. Проверить что VPS появился в панели
  1. Откройте http://localhost:3000 в браузере
  2. Зайдите под пользователем с user_id = 5
  3. Перейдите в "Мои серверы"
  4. Должен быть VPS "test-vps"
  • 5. Тесты с разными операциями
# Обновление статуса
curl -X POST http://localhost:5050/api/vps/sync \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_secret_api_key_here_min_32_chars_change_this" \
  -d '{"action":"update","vps":{"id":1,"status":"running"}}'

# Удаление
curl -X POST http://localhost:5050/api/vps/sync \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_secret_api_key_here_min_32_chars_change_this" \
  -d '{"action":"delete","vps":{"id":1}}'
  • 6. Интегрировать в процесс создания заказа

Вставить вызовы vpsSync в основной workflow:

// В файле обработки заказов:

1. Пользователь платит
2. createOrderInDB()
3. createVPSOnHypervisor()         Создать на хостинге
4. vpsSync.createVPS()             НОВОЕ: Синхронизировать с панелью
5. updateOrderStatus('completed')  Помечить заказ как выполненный

Фаза 4: Staging тестирование (1-2 дня)

  • 1. Обновить .env на staging сервере
OSPAB_PANEL_URL=https://panel-staging.ospab.host
# или
OSPAB_PANEL_URL=https://panel.ospab.host (если production панель)
VPS_SYNC_API_KEY=production_api_key_from_admin
  • 2. Развернуть новый код главного сайта на staging
git push
# Deploy на staging сервер
  • 3. Создать тестовый VPS через staging
  1. Откройте staging главного сайта
  2. Создайте тестовый заказ на VPS
  3. Оплатите
  4. Проверьте что VPS появился в панели управления
  • 4. Проверить все операции

  • Создание VPS

  • Обновление статуса

  • Удаление VPS

  • Обработка ошибок (отключить панель, проверить retry logic)

  • 5. Нагрузочное тестирование

Создать 10-100 VPS одновременно, проверить стабильность

Фаза 5: Production (1 день)

  • 1. Финальная проверка перед production

  • Обновить .env на production

  • Все переменные установлены правильно

  • Логирование настроено

  • Мониторинг настроен

  • Бэкапы БД на месте

  • 2. Развернуть на production

# Merge в main
git merge develop
git push

# Deploy на production сервер
./deploy.sh
  • 3. Мониторить первые часы

  • Проверять логи на ошибки

  • Проверять что новые VPS создаются корректно

  • Быть готовым к rollback если что-то пойдет не так

  • 4. Уведомить клиентов

Если нужно, отправить уведомление что интеграция с панелью завершена

Фаза 6: После deployment (ongoing)

  • 1. Мониторинг

  • Проверять что все VPS синхронизируются

  • Отслеживать ошибки синхронизации

  • Проверять производительность

  • 2. Документация

  • Обновить README проекта

  • Задокументировать процесс синхронизации

  • Создать runbook для операций

  • 3. Обучение команды

  • Объяснить команде как работает интеграция

  • Показать как отладить проблемы

  • Показать как мониторить синхронизацию


🔧 Инструменты и зависимости

Необходимые пакеты (Node.js)

npm install
# Уже должны быть установлены:
# - express
# - dotenv (для загрузки .env)
# - typescript (если используется)

Необходимы знания

  • REST API
  • TypeScript или JavaScript
  • Environment variables
  • Error handling
  • Async/await

⏱️ Примерный график

Неделя 1:
  Пн: Фаза 1 (координация)
  Вт-Чт: Фаза 2 (подготовка кода)
  Пт: Фаза 3 (локальное тестирование)

Неделя 2:
  Пн-Ср: Фаза 4 (staging)
  Чт: Финальная проверка
  Пт: Фаза 5 (production)

Неделя 3+:
  Мониторинг и поддержка

🚨 Критичные моменты

⚠️ ОБЯЗАТЕЛЬНО проверить:

  1. RAM конвертация - ram * 1024 (GB → MB)
  2. User ID - должен совпадать с ID в системе OSPAB Panel
  3. API Key - должен быть правильный и минимум 32 символа
  4. Error handling - панель может быть недоступна, не прерывать создание VPS
  5. Retry logic - добавить повторные попытки при сбое синхронизации

📞 Поддержка

Если что-то не работает:

  1. Проверьте переменные окружения
  2. Проверьте логи панели управления
  3. Попробуйте curl запрос (как в чек-листе)
  4. Свяжитесь с разработчиком панели

Документация:

  • FOR_MAIN_SITE_DEVELOPER.md - подробная инструкция
  • CLIENT_VPS_INTEGRATION.md - описание API
  • VPS_SYNC_EXAMPLES.md - примеры кода

Статус: Готово к интеграции
Дата: 27 октября 2025
Версия: 1.0