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,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