sitemap и тд
This commit is contained in:
114
Manuals/VPS_SYNC_QUICK_START.md
Normal file
114
Manuals/VPS_SYNC_QUICK_START.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user