Appearance
Contour Node — обзор
Аудитория: DevOps / системный администратор, выполняющий установку on-prem узла обработки медиа (Contour Node) на инфраструктуре компании-клиента, и администратор NeuroCast, который регистрирует узел в студии.
Статус: раздел описывает интеграционный контракт между студией NeuroCast (
server/) и внешним Contour Node. Сам код Contour Node в этом репозитории не лежит — это отдельный on-prem компонент. Здесь зафиксировано, что узел обязан предоставлять, как он подключается к сети и как регистрируется в студии.
Что такое Contour Node и зачем он нужен
Contour Node — это вынесенный на сервер компании узел, который:
- хранит медиафайлы компании в собственном MinIO (S3-совместимое объектное хранилище);
- выполняет тяжёлые задачи обработки видео: сжатие (compression) и наложение водяного знака (watermark);
- выдаёт presigned-ссылки на загрузку/скачивание напрямую в/из MinIO;
- по завершении задач шлёт webhook-колбэки обратно в студию.
Модель связи — один узел на одну компанию (MVP). Узел создаётся автоматически вместе с компанией и не может существовать отдельно от неё.
Схема взаимодействия
┌────────────────────────┐ Tailscale VPN (100.64.0.0/10) ┌──────────────────────────┐
│ Студия NeuroCast │ │ Сервер компании │
│ (backend, server/) │ │ Contour Node │
│ │ ── HTTP: /api/v1/* (apiPort, по умолч. 8000) ─▶│ ┌─────────────────────┐ │
│ HttpContourApiRepo ────┼───────────────────────────────────────────────┤ │ Contour API │ │
│ │ │ ├─────────────────────┤ │
│ ◀── webhook ───────────┼── POST /api/contour/webhook/{compression| │ │ MinIO (minioPort, │ │
│ (по IP узла) │ watermark} на APP_BASE_URL │ │ по умолч. 9000) │ │
│ │ │ └─────────────────────┘ │
└────────────┬────────────┘ └──────────────────────────┘
│
(опц.) nginx MinIO reverse-proxy: https://<домен>/storage/<ip>/<port>/<bucket>/<object>
│
Браузер пользователя ── presigned upload/download ──▶ MinIO узлаРазделы документации
- Развёртывание — требования, сетевой контур (Tailscale), регистрация узла в студии, health-check, чек-лист.
- API-контракт узла — спецификация HTTP-эндпоинтов
/api/v1/*и webhook-колбэков, которые обязан реализовать разработчик Contour Node. - MinIO reverse-proxy — публичный доступ к MinIO узла через nginx.
- Типовые проблемы — диагностика «симптом → причина → где смотреть».