Документация 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/probesCRUD проб. Токен пробы можно передать явно или сгенерировать автоматически.
GET/POST/PUT/DELETE /api/v1/admin/destinationsCRUD адресов speedtest. Справочник управляет дропдауном на главной и хранит ссылку для каждого задания.
GET /api/v1/admin/tasks?status=&from=&to=®ion=Список заданий с фильтрами и детали с результатами.
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 запросов в минуту