# main TCP port for RoomService and RTC endpoint # for production setups, this port should be placed behind a load balancer with TLS port: 7880 # log level, valid values: debug, info, warning, error log_level: info # when redis is set, LiveKit will automatically operate in a fully distributed fashion # clients could connect to any node and be routed to the same room redis: address: redis.host:6379 # username: myuser # password: mypassword # WebRTC configuration rtc: # UDP ports to use for client traffic. # this port range should be open for inbound traffic on the firewall port_range_start: 50000 port_range_end: 60000 # when set, LiveKit enable WebRTC ICE over TCP when UDP isn't available # this port *cannot* be behind load balancer or TLS, and must be exposed on the node # WebRTC transports are encrypted and do not require additional encryption tcp_port: 7881 # when set to true, attempts to discover the host's public IP via STUN # this is useful for cloud environments such as AWS & Google where hosts have an internal IP # that maps to an external one use_external_ip: true # when set, LiveKit will attempt to use a UDP mux so all UDP traffic goes through # a single port. This simplifies deployment, but mux will become an overhead for # highly trafficked deployments. # port_range_start & end must not be set for this config to take effect # udp_port: 7882 # optional settings # # when using REMB, the max bitrate that the SFU would accept, defaults to 3Mbps # max_bitrate: 3145728 # # number of packets to buffer in the SFU, defaults to 500 # packet_buffer_size: 500 # # optional STUN servers for LiveKit clients to use. Clients will be configured to use these STUN servers automatically. # # by default LiveKit clients use Google's public STUN servers # stun_servers: # - server1 # # minimum amount of time between pli/fir rtcp packets being sent to an individual # # producer. Increasing these times can lead to longer black screens when participants join, # # while reducing them can lead to higher producer bitrates. # pli_throttle: # low_quality: 500ms # mid_quality: 1s # high_quality: 1s # when enabled, LiveKit will expose prometheus metrics on :6789/metrics #prometheus_port: 6789 # API key / secret pairs. # Keys are used for JWT authentication, server APIs would require a keypair in order to generate access tokens # and make calls to the server keys: key1: secret1 key2: secret2 # Default room config # Each room created will inherit these settings. If rooms are created explicitly with CreateRoom, they will take # precedence over defaults #room: # # number of seconds to leave a room open when it's empty # empty_timeout: 300 # # limit number of participants that can be in a room, 0 for no limit # max_participants: 0 # # only accept specific codecs for clients publishing to this room # # this is useful to standardize codecs across clients # # other supported codecs are video/h264, video/vp9 # enabled_codecs: # - mime: audio/opus # - mime: video/vp8 # customize audio level sensitivity #audio: # # minimum level to be considered active, 0-127, where 0 is loudest # # defaults to 30 # active_level: 30 # # percentile to measure, a participant is considered active if it has exceeded the # # ActiveLevel more than MinPercentile% of the time # # defaults to 40 # min_percentile: 40 # # frequency in ms to notify changes to clients, defaults to 500 # update_interval: 500 # # to prevent speaker updates from too jumpy, smooth out values over N samples # smooth_intervals: 4 # turn server #turn: # # Uses TLS. Requires cert and key pem files by either: # # - using turn.secretName if deploying with our helm chart, or # # - setting LIVEKIT_TURN_CERT and LIVEKIT_TURN_KEY env vars with file locations, or # # - using cert_file and key_file below # # defaults to false # enabled: false # # needs to match tls cert domain # domain: turn.myhost.com # # defaults to 3478 - if not using a load balancer, this must be set to 443 # tls_port: 3478 # # optional # # cert_file: /path/to/cert.pem # # key_file: /path/to/key.pem