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

3.9 KiB
Raw Blame History

VPS Sync API - Быстрый старт

TL;DR - что нужно сделать

На Панели управления (уже готово)

Эндпоинт: POST /api/vps/sync
Защита: API ключ в заголовке X-API-Key
Таблица БД: vps со всеми параметрами
Методы: create, update, delete

На главном сайте (что нужно сделать)

  1. Добавить переменную окружения:
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
OSPAB_PANEL_URL=https://panel.ospab.host
  1. Создать функцию для отправки данных:
// Минимальный пример на Node.js
async function createVPSonPanel(vpsData) {
  const res = await fetch(`${process.env.OSPAB_PANEL_URL}/api/vps/sync`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.VPS_SYNC_API_KEY
    },
    body: JSON.stringify({
      action: 'create',
      vps: {
        user_id: vpsData.userId,
        name: vpsData.name,
        cpu: vpsData.cpu,
        ram: vpsData.ram * 1024, // GB to MB!
        disk: vpsData.disk,
        os: vpsData.os,
        status: 'creating',
        hypervisor: 'proxmox'
      }
    })
  });
  return res.json();
}
  1. Вызвать после создания VPS на хостинге:
// После успешного создания на Proxmox/VMware/и т.д.
const created = await createVPSonPanel({
  userId: 5,              // ID пользователя из SSO
  name: 'web-server-01',  // Имя VPS
  cpu: 4,                 // Ядер
  ram: 8,                 // GB (будет конвертировано в MB)
  disk: 100,              // GB
  os: 'Ubuntu 22.04 LTS'
});

console.log('VPS создан с ID:', created.vps.id);
  1. Обновить статус когда VPS готов:
async function updateVPSStatusOnPanel(vpsId, status) {
  return fetch(`${process.env.OSPAB_PANEL_URL}/api/vps/sync`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.VPS_SYNC_API_KEY
    },
    body: JSON.stringify({
      action: 'update',
      vps: { id: vpsId, status }
    })
  }).then(r => r.json());
}

// Вызов
await updateVPSStatusOnPanel(createdVPS.id, 'running');

Ключевые моменты

Параметр Важно помнить
user_id Это ID из SSO системы (от Панели управления)
ram Отправляем в MB, главный сайт отправляет в GB (×1024)
disk В GB
cpu Количество ядер
status creating, running, stopped, suspended
hypervisor proxmox (для Proxmox VE)
X-API-Key ДОЛЖЕН быть в заголовке, не в body!

Проверка что работает

  1. Создайте тестовый VPS через curl (смотри VPS_SYNC_EXAMPLES.md)
  2. Зайдите в Панель управления под пользователем с ID 5
  3. Должен появиться VPS в списке

Файлы для ознакомления

  • CLIENT_VPS_INTEGRATION.md - полная документация API
  • VPS_SYNC_EXAMPLES.md - примеры кода (Node.js, Python)
  • .env - переменные окружения

Что дальше?

После интеграции синхронизации:

  • Добавить webhook для автоматических обновлений статуса
  • Добавить batch API для синхронизации множества VPS
  • Настроить мониторинг (CPU, RAM, Disk usage)
  • Добавить real-time обновления через WebSocket