9.8 KiB
Чек-лист интеграции для главного сайта (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
- Production:
-
Получить таблицу соответствия 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 появился в панели
- Откройте http://localhost:3000 в браузере
- Зайдите под пользователем с user_id = 5
- Перейдите в "Мои серверы"
- Должен быть 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
- Откройте staging главного сайта
- Создайте тестовый заказ на VPS
- Оплатите
- Проверьте что 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+:
Мониторинг и поддержка
🚨 Критичные моменты
⚠️ ОБЯЗАТЕЛЬНО проверить:
- RAM конвертация -
ram * 1024(GB → MB) - User ID - должен совпадать с ID в системе OSPAB Panel
- API Key - должен быть правильный и минимум 32 символа
- Error handling - панель может быть недоступна, не прерывать создание VPS
- Retry logic - добавить повторные попытки при сбое синхронизации
📞 Поддержка
Если что-то не работает:
- Проверьте переменные окружения
- Проверьте логи панели управления
- Попробуйте curl запрос (как в чек-листе)
- Свяжитесь с разработчиком панели
Документация:
FOR_MAIN_SITE_DEVELOPER.md- подробная инструкцияCLIENT_VPS_INTEGRATION.md- описание APIVPS_SYNC_EXAMPLES.md- примеры кода
Статус: Готово к интеграции ✅
Дата: 27 октября 2025
Версия: 1.0