Skip to content
/ sfu Public

Lightweight Selective Forwarding Unit written in Go using Pion WebRTC. Relays audio streams between participants without transcoding for low-latency group voice chat.

License

Notifications You must be signed in to change notification settings

Gryt-chat/sfu

Repository files navigation

Gryt logo

Gryt SFU

Selective Forwarding Unit for the Gryt voice & video platform.
High-performance Go media server built with Pion WebRTC.
Forwards audio, camera, and screen-share tracks with RTCP relay and VP9 preference.


Docker

docker pull ghcr.io/gryt-chat/sfu:latest
docker run -p 5005:5005 -p 443:443/udp -p 10000-10019:10000-10019/udp --env-file .env ghcr.io/gryt-chat/sfu:latest

Browse tags at ghcr.io/gryt-chat/sfu.

Quick Start (development)

cp env.example .env
go run ./cmd/sfu

Starts on http://localhost:5005.

Configuration

See env.example for all options. Key variables:

Variable Default Description
PORT 5005 HTTP/WebSocket port
STUN_SERVERS stun:stun.l.google.com:19302 Comma-separated STUN servers
ICE_UDP_MUX_PORT Enable ICE UDP mux on a single UDP port (e.g. 443)
ICE_UDP_PORT_MIN Min UDP port for WebRTC media
ICE_UDP_PORT_MAX Max UDP port for WebRTC media
ICE_ADVERTISE_IP Advertised IP for NAT traversal

Documentation

Full docs at docs.gryt.chat/docs/sfu:

Issues

Please report bugs and request features in the main Gryt repository.

License

AGPL-3.0 — Part of Gryt

About

Lightweight Selective Forwarding Unit written in Go using Pion WebRTC. Relays audio streams between participants without transcoding for low-latency group voice chat.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors