Skip to content

Конфигурация сервера

Секция server в config.yaml управляет сетевыми портами HTTP/gRPC, нативным шифрованием TLS, параметрами WebRTC ICE/TURN и оптимизацией сборщика мусора Go.

Полный справочник параметров

ПараметрТипПо умолчаниюОписание
portint8080Основной порт HTTP/REST API и стриминга.
debugboolfalseВключает отладочное логирование, debug-роуты Gin и /debug/statsviz.
pprof_portint0Отдельный порт для непрерывного профилирования (6060; 0 — выключено).
record_retention_daysint0Глобальный срок хранения архива в днях (0 — бесконечно).
gc_percentint50Значение GOGC (по умолчанию: 50 для снижения пикового расхода памяти).
gc_memory_limit_mbint0Значение GOMEMLIMIT в МБ для защиты от OOM Killer (например, 2048).
cors_allowed_origins[]string[]Разрешенные CORS-источники. Пустой список отключает CORS.
grpcobjectВнутренний gRPC сервис потоковой передачи кадров и приема AI-метаданных.
grpc.addressstring"0.0.0.0"IP-адрес для привязки gRPC сервера.
grpc.portint50051Порт gRPC сервера.
tlsobjectПараметры нативного HTTPS/TLS шифрования.
tls.cert_filestring""Путь к файлу сертификата TLS (PEM).
tls.key_filestring""Путь к закрытому ключу TLS (PEM).
webrtcobjectПараметры WebRTC WHEP соединений.
webrtc.listen_portint0Фиксированный порт UDP Muxer (например, 8555).
webrtc.nat_1_to_1_ips[]string[]Публичные/внешние IP-адреса для кандидатов ICE host.
webrtc.ice_servers[]string[]Список URL STUN/TURN серверов (например, ["stun:stun.l.google.com:19302"]).
webrtc.ice_transport_policystring"all"Политика ICE ("all" или "relay" для принудительного TURN).
webrtc.turn_usernamestring""Логин для авторизации на TURN сервере.
webrtc.turn_passwordstring""Пароль для авторизации на TURN сервере.

Пример для продакшена

yaml
server:
  port: 8080
  debug: false
  pprof_port: 6060
  record_retention_days: 14
  gc_percent: 50
  gc_memory_limit_mb: 2048
  cors_allowed_origins:
    - "http://localhost:8080"
    - "https://vms.company.local"
  grpc:
    address: "0.0.0.0"
    port: 50051
  tls:
    cert_file: "/etc/ssl/certs/ruseon.crt"
    key_file: "/etc/ssl/private/ruseon.key"
  webrtc:
    listen_port: 8555
    nat_1_to_1_ips:
      - "203.0.113.10"
    ice_servers:
      - "stun:stun.l.google.com:19302"
      - "turn:turn.company.local:3478"
    ice_transport_policy: "all"
    turn_username: "webrtc_user"
    turn_password: "super_secret_turn_password"

Released under the MIT License.