Игровой рабочий стол

Selkies-десктоп с GPU для стриминга игр в браузер по WebRTC (NVENC).

3D / Стриминг Linux от 8 ГБ VRAM

Для чего

Базовый шаблон облачного гейминга: образ Selkies EGL Desktop (ghcr.io/selkies-project/nvidia-egl-desktop) транслирует рабочий стол Linux в браузер по WebRTC с аппаратным кодированием NVENC. Поверх него provision.sh конкретной игры доустанавливает саму игру и запускает её в сессии.

Окружение стриминга

vast_hash_id намеренно пустой: образ, проброс портов и переменные окружения не берутся из шаблона на стороне Vast.ai, а инжектятся в payload запуска (VastAiProvider::launchInstance) из манифеста приложения (config/applications.phpsupertuxkart.runtime). Так весь рантайм гейминга живёт в репозитории и воспроизводим. Эффективный набор docker-опций:

-p 8080:8080                       # entrypoint.port (Selkies web UI)
-p 3478:3478                       # TURN
-p 65532:65532 ... -p 65535:65535  # TURN relay (по одному порту, не диапазоном)
-e SELKIES_BASIC_AUTH_PASSWORD=…   # per-launch, из provision_state.password
-e SELKIES_ENCODER=nvh264enc
-e SELKIES_ENABLE_BASIC_AUTH=true
-e SELKIES_TURN_PROTOCOL=tcp
-e SELKIES_TURN_PORT=3478
-e TURN_MIN_PORT=65532
-e TURN_MAX_PORT=65535
-e DISPLAY_SIZEW=1920
-e DISPLAY_SIZEH=1080

WebRTC использует внутренний TURN поверх TCP (площадки Vast/RunPod не дают произвольный UDP). Если стрим подключается, но видео чёрное — это TURN/UDP, а не контейнер.

Предустановленное ПО

Ubuntu 24.04 KDE Plasma Selkies NVENC coTURN

Рекомендуемые GPU

Готовы запустить Игровой рабочий стол?

Запустить GPU-сервер