tuqo

Документация

API и MCP

Всё, что доступно в панели, можно сделать программно: через REST API api.tuqo.ru и через MCP-сервер для нейросетей mcp.tuqo.ru. Любая внешняя ИИ-модель может создавать сайты, деплоить и настраивать домены — авторизация по одному ключу проекта.

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

  1. 1

    Создайте проект в панели и получите ключ на вкладке API-ключи. Ключ формата tqk_… показывается один раз.

  2. 2

    Подключите Tuqo как MCP-коннектор в нейросети — или работайте напрямую через REST.

  3. 3

    Создайте сайт, загрузите архив исходников — он соберётся автоматически и опубликуется на <поддомен>.tuqo.ru.

API-ключ проекта

Все запросы авторизуются заголовком Authorization: Bearer tqk_…. Ключ привязан к конкретному проекту — операции скоупятся только в его пределах. В базе хранится лишь argon2-хеш ключа и публичный префикс для отображения; сам ключ восстановить нельзя — при потере выпустите новый.

Уровни доступа

  • read только чтение: списки и статусы
  • editor создавать сайты, деплоить, привязывать домены, откатывать — без удаления
  • full полный доступ, включая удаление сайтов и доменов

MCP для нейросетей

Tuqo поднимает MCP-сервер (JSON-RPC 2.0) по адресу https://mcp.tuqo.ru/mcp. Подключите его как коннектор в вашей ИИ-модели — и агент управляет хостингом на естественном языке.

Подключение

URL и заголовок авторизации (для MCP-клиентов с HTTP-транспортом и поддержкой заголовков):

{
  "mcpServers": {
    "tuqo": {
      "url": "https://mcp.tuqo.ru/mcp",
      "headers": { "Authorization": "Bearer tqk_xxx_yyy" }
    }
  }
}

Инструменты

  • list_sites (—)

    список сайтов проекта

  • create_site (name, subdomain)

    создать сайт (поддомен ≥9 символов на бесплатном тарифе)

  • get_site (site_id)

    получить сайт

  • update_site (site_id, name)

    переименовать сайт

  • delete_site (site_id)

    удалить сайт со всеми деплоями

  • list_deploys (site_id)

    история деплоев сайта

  • deploy_site (site_id, source_base64)

    загрузить tar.gz исходников (base64) и запустить сборку

  • get_deploy_status (deploy_id)

    статус сборки: queued → building → ready → active / failed

  • get_logs (deploy_id)

    логи сборки

  • rollback_site (deploy_id)

    откатить сайт на указанный готовый деплой

  • list_domains (site_id)

    кастомные домены сайта

  • set_custom_domain (site_id, domain)

    привязать домен — в ответе TXT-запись _tuqo-verify

  • verify_domain (domain_id)

    подтвердить владение доменом после добавления TXT

  • delete_domain (domain_id)

    отвязать домен

Пример запроса вручную (JSON-RPC tools/call):

curl -X POST https://mcp.tuqo.ru/mcp \
  -H "Authorization: Bearer tqk_xxx_yyy" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "create_site",
      "arguments": { "name": "Лендинг", "subdomain": "myproject" }
    }
  }'

REST API

Базовый адрес — https://api.tuqo.ru. Тело и ответы — JSON (кроме загрузки деплоя: там тело — бинарный tar.gz).

  • GET /api/v1/sites список сайтов read
  • POST /api/v1/sites создать сайт editor
  • GET /api/v1/sites/{id} получить сайт read
  • PATCH /api/v1/sites/{id} переименовать сайт editor
  • DELETE /api/v1/sites/{id} удалить сайт full
  • POST /api/v1/sites/{id}/deploys загрузить деплой (tar.gz в теле) editor
  • GET /api/v1/deploys/{id} статус деплоя read
  • POST /api/v1/deploys/{id}/activate сделать деплой боевым / откатиться editor
  • POST /api/v1/sites/{id}/domains привязать домен editor
  • POST /api/v1/domains/{id}/verify подтвердить домен editor
  • DELETE /api/v1/domains/{id} отвязать домен full

Деплой: форматы и статусы

Загрузите архив .tar.gz (до 50 МБ). Варианты содержимого:

  • Исходники npm-проекта — Tuqo сам выполнит npm ci && npm run build и возьмёт артефакт из dist/.
  • Готовая статика — просто положите файлы (с index.html) в корень архива.

Деплой через REST (тело — бинарный архив):

curl -X POST https://api.tuqo.ru/api/v1/sites/$SITE/deploys \
  -H "Authorization: Bearer tqk_xxx_yyy" \
  -H "Content-Type: application/gzip" \
  --data-binary @dist.tar.gz

В MCP тот же архив передаётся как base64 в аргументе source_base64 инструмента deploy_site. При успешной сборке деплой активируется автоматически.

Статусы деплоя

  • queued деплой в очереди на сборку
  • building идёт сборка (npm ci && npm run build)
  • ready собран, но ещё не активирован
  • active боевой — отдаётся на поддомене сайта
  • failed ошибка сборки (текст — в get_logs / поле error)
  • superseded заменён более новым активным деплоем

Кастомные домены

Привязка домена — в два шага:

  1. 1

    set_custom_domain (или POST /api/v1/sites/{id}/domains) — в ответе придёт токен. Добавьте в DNS домена A-запись на IP платформы и TXT-запись _tuqo-verify с этим токеном.

  2. 2

    verify_domain (или POST /api/v1/domains/{id}/verify) — после распространения DNS. HTTPS-сертификат выпускается автоматически.

DNS обновляется не мгновенно — от нескольких минут до нескольких часов. Точные значения A- и TXT-записей всегда показываются в панели на вкладке «Домены» сайта.