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

115 lines
3.9 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.
# VPS Sync API - Быстрый старт
## TL;DR - что нужно сделать
### На Панели управления (уже готово)
✅ Эндпоинт: `POST /api/vps/sync`
✅ Защита: API ключ в заголовке `X-API-Key`
✅ Таблица БД: `vps` со всеми параметрами
✅ Методы: create, update, delete
### На главном сайте (что нужно сделать)
1. **Добавить переменную окружения:**
```env
VPS_SYNC_API_KEY=your_secret_api_key_here_min_32_chars_change_this
OSPAB_PANEL_URL=https://panel.ospab.host
```
2. **Создать функцию для отправки данных:**
```typescript
// Минимальный пример на 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();
}
```
3. **Вызвать после создания VPS на хостинге:**
```typescript
// После успешного создания на 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);
```
4. **Обновить статус когда VPS готов:**
```typescript
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