#Инфраструктура

Создавайте виртуальные серверы и деплойте приложения Битрикс24 через API. Каждый сервер невидим из интернета по умолчанию — все входящие порты заблокированы iptables (режим Black Hole). Доступ к приложению через HTTPS-субдомен и Deploy API.

#Обзор

Infrastructure API — внутренний API платформы VibeCode (не обёртка над Bitrix24). Предоставляет 30 RESTful-эндпоинтов для управления серверами и деплоя приложений. Позволяет:

  • Выбрать облачного провайдера, тариф, регион и ОС
  • Создать сервер одним запросом (всегда в режиме Black Hole)
  • Отслеживать статус до полной готовности
  • Деплоить приложения через Deploy API (exec, upload, logs, deploy)
  • Управлять сервером: остановка, запуск, удаление
  • Настроить политику доступа для приложений (кто видит HTTPS-субдомен)

Безопасность по умолчанию: каждый сервер создаётся в режиме Black Hole — iptables DROP на все входящие порты. Сервер невидим из интернета. Приложение доступно только через HTTPS-субдомен (app-{id}.vibecode.bitrix24.tech), проксируемый Gateway через агентский WebSocket-туннель.

Требуемый скоуп: vibe:infra (автоматически включён во все API-ключи)

Базовый URL: https://vibecode.bitrix24.tech/v1

Авторизация: заголовок X-Api-Key с вашим API-ключом.

Лимит серверов: задаётся политикой портала maxServersPerUser (по умолчанию 5), каждый API-ключ считается отдельно.


#Быстрый старт

#1. Создайте сервер

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/infra/servers \
  -H "X-Api-Key: $VIBE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "bitrix-cloud",
    "name": "my-crm-app",
    "plan": "plan-id",
    "region": "region-id",
    "image": "image-id"
  }'

Сервер создаётся в режиме Black Hole — невидим из интернета, доступ только через платформу.

#2. Дождитесь готовности

Terminal
# Повторяйте запрос пока status не станет "running" и blackholeStatus не станет "CONNECTED"
curl -H "X-Api-Key: $VIBE_KEY" \
  https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID

#3. Задеплойте приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/deploy?stream=false" \
  -H "X-Api-Key: $VIBE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "url": "https://github.com/user/app/archive/main.tar.gz" },
    "runtime": "node20",
    "install": "cd /opt/app && npm install --production",
    "start": "cd /opt/app && node server.js",
    "port": 3000
  }'

Готово. Приложение доступно по адресу https://app-{id}.vibecode.bitrix24.tech.


#Провайдеры и каталоги

#GET /v1/infra/providers

Возвращает список облачных провайдеров. Поле available указывает, настроены ли учётные данные провайдера на платформе.

Параметры: нет

Пример (curl):

Terminal
curl -H "X-Api-Key: $VIBE_KEY" \
  https://vibecode.bitrix24.tech/v1/infra/providers

Пример (JavaScript):

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/infra/providers', {
  headers: { 'X-Api-Key': VIBE_KEY }
})

const { data } = await res.json()
const active = data.filter(p => p.available)
console.log('Доступные провайдеры:', active.map(p => p.name))

Ответ (200):

JSON
{
  "success": true,
  "data": [
    { "id": "bitrix-cloud", "name": "Bitrix Cloud", "available": true }
  ]
}