sitemap и тд

This commit is contained in:
Georgiy Syralev
2025-11-01 12:29:46 +03:00
parent 727785c7a0
commit d45baf2260
80 changed files with 9811 additions and 748 deletions

View File

@@ -0,0 +1,305 @@
# Чек-лист интеграции для главного сайта (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