Конфигурация сервера
Секция server в config.yaml управляет сетевыми портами HTTP/gRPC, нативным шифрованием TLS, параметрами WebRTC ICE/TURN и оптимизацией сборщика мусора Go.
Полный справочник параметров
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
port | int | 8080 | Основной порт HTTP/REST API и стриминга. |
debug | bool | false | Включает отладочное логирование, debug-роуты Gin и /debug/statsviz. |
pprof_port | int | 0 | Отдельный порт для непрерывного профилирования (6060; 0 — выключено). |
record_retention_days | int | 0 | Глобальный срок хранения архива в днях (0 — бесконечно). |
gc_percent | int | 50 | Значение GOGC (по умолчанию: 50 для снижения пикового расхода памяти). |
gc_memory_limit_mb | int | 0 | Значение GOMEMLIMIT в МБ для защиты от OOM Killer (например, 2048). |
cors_allowed_origins | []string | [] | Разрешенные CORS-источники. Пустой список отключает CORS. |
grpc | object | — | Внутренний gRPC сервис потоковой передачи кадров и приема AI-метаданных. |
grpc.address | string | "0.0.0.0" | IP-адрес для привязки gRPC сервера. |
grpc.port | int | 50051 | Порт gRPC сервера. |
tls | object | — | Параметры нативного HTTPS/TLS шифрования. |
tls.cert_file | string | "" | Путь к файлу сертификата TLS (PEM). |
tls.key_file | string | "" | Путь к закрытому ключу TLS (PEM). |
webrtc | object | — | Параметры WebRTC WHEP соединений. |
webrtc.listen_port | int | 0 | Фиксированный порт 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_policy | string | "all" | Политика ICE ("all" или "relay" для принудительного TURN). |
webrtc.turn_username | string | "" | Логин для авторизации на TURN сервере. |
webrtc.turn_password | string | "" | Пароль для авторизации на 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"