Сервис мониторинга скорости VLESS-соединений

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

CheburSpeed — это сервис мониторинга скорости VLESS-соединений. Проба устанавливается на узле и через WebSocket получает задания, прогоняет speedtest через xray и возвращает результат на сервер.

HTTP API

  • POST /api/v1/tasks

    Создать новое задание. Тело: { link, destination_id, probe_tokens? }.

  • GET /api/v1/tasks/{id}

    Получить задание с результатами и данными выбранного адреса проверки.

  • GET /api/v1/tasks?limit=&offset=

    Список последних заданий, поддерживает пагинацию.

  • GET /api/v1/regions

    Список регионов с агрегатами probe_count и last_median_mbps.

  • GET /api/v1/probes/online

    Сводка по регионам: онлайн-пробы и медианная скорость.

  • GET /api/v1/destinations

    Публичный список адресов speedtest для выпадающего списка на главной.

  • GET /?link=&destination=

    Параметры URL главной страницы: предзаполняют форму запуска теста.

API админки

Все маршруты ниже защищены JWT. Получите токен через POST /api/v1/admin/login и передавайте его в заголовке Authorization: Bearer <token>.

  • POST /api/v1/admin/login

    Обмен email/пароль на JWT. Тело: { email, password }.

  • GET/POST/PUT/DELETE /api/v1/admin/probes

    CRUD проб. Токен пробы можно передать явно или сгенерировать автоматически.

  • GET/POST/PUT/DELETE /api/v1/admin/destinations

    CRUD адресов speedtest. Справочник управляет дропдауном на главной и хранит ссылку для каждого задания.

  • GET /api/v1/admin/tasks?status=&from=&to=&region=

    Список заданий с фильтрами и детали с результатами.

  • GET /api/v1/admin/stats

    Сводка для дашборда: медиана по регионам, гистограмма скоростей, archive_lag.

Без токена или с просроченным токеном сервер возвращает 401.

WebSocket

Пробы подключаются к /ws с токеном в заголовке Authorization: Bearer <token>. После online-сообщения сервер раздаёт задания (опционально с явным destination_url), проба возвращает результат.

  • task.assigned → пробе выдано задание
  • online → проба сообщает алиас, регион и версию
  • result → проба возвращает скорость или ошибку

Ограничения

  • POST /tasks — 10 запросов в час с одного IP
  • GET /tasks/{id} — 100 запросов в минуту
ru
© CheburSpeed