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

306 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Чек-лист интеграции для главного сайта (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. Создать файл с переменными окружения**
```bash
# .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`
```typescript
// Методы:
// - createVPS(data) // Создать VPS
// - updateVPSStatus(id, status) // Обновить статус
// - deleteVPS(id) // Удалить VPS
```
- [ ] **3. Интегрировать в маршруты**
В файлах где обрабатывается создание/удаление VPS:
```typescript
// После успешного создания на хостинге:
await vpsSync.createVPS({ user_id, name, cpu, ram, disk, os });
// Когда VPS готов:
await vpsSync.updateVPSStatus(vpsId, 'running');
// При удалении:
await vpsSync.deleteVPS(vpsId);
```
- [ ] **4. Обработка ошибок**
```typescript
try {
await vpsSync.createVPS(data);
} catch (error) {
// Логировать ошибку
console.error('VPS sync failed:', error);
// НЕ прерывать создание VPS на хостинге
// Добавить в очередь для повторной попытки (bull, rsmq, etc)
}
```
### Фаза 3: Тестирование локально (1-2 дня)
- [ ] **1. Запустить панель управления локально**
```bash
# На компьютере разработчика панели:
go run ./cmd/server/main.go
# API доступен на: http://localhost:5050
# Web доступен на: http://localhost:3000
```
- [ ] **2. Обновить .env в главном сайте**
```env
OSPAB_PANEL_URL=http://localhost:5050
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
```
- [ ] **3. Тестовый запрос через curl**
```bash
# Создание 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. Тесты с разными операциями**
```bash
# Обновление статуса
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:
```typescript
// В файле обработки заказов:
1. Пользователь платит
2. createOrderInDB()
3. createVPSOnHypervisor() Создать на хостинге
4. vpsSync.createVPS() НОВОЕ: Синхронизировать с панелью
5. updateOrderStatus('completed') Помечить заказ как выполненный
```
### Фаза 4: Staging тестирование (1-2 дня)
- [ ] **1. Обновить .env на staging сервере**
```env
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**
```bash
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**
```bash
# 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)
```bash
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