3.9 KiB
3.9 KiB
VPS Sync API - Быстрый старт
TL;DR - что нужно сделать
На Панели управления (уже готово)
✅ Эндпоинт: POST /api/vps/sync
✅ Защита: API ключ в заголовке X-API-Key
✅ Таблица БД: vps со всеми параметрами
✅ Методы: create, update, delete
На главном сайте (что нужно сделать)
- Добавить переменную окружения:
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
OSPAB_PANEL_URL=https://panel.ospab.host
- Создать функцию для отправки данных:
// Минимальный пример на 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();
}
- Вызвать после создания 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);
- Обновить статус когда 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! |
Проверка что работает
- Создайте тестовый VPS через curl (смотри VPS_SYNC_EXAMPLES.md)
- Зайдите в Панель управления под пользователем с ID 5
- Должен появиться VPS в списке
Файлы для ознакомления
CLIENT_VPS_INTEGRATION.md- полная документация APIVPS_SYNC_EXAMPLES.md- примеры кода (Node.js, Python).env- переменные окружения
Что дальше?
После интеграции синхронизации:
- Добавить webhook для автоматических обновлений статуса
- Добавить batch API для синхронизации множества VPS
- Настроить мониторинг (CPU, RAM, Disk usage)
- Добавить real-time обновления через WebSocket