c5a8fc8697
운영에서 LiveKit(SFU)을 직접 호스팅하기 위한 구성과 배포 가이드를 추가한다. 실제 배포는 서버/도메인/TLS 가 필요하므로, 클론 후 값만 채워 배포하는 템플릿 형태. - docker-compose.yml: livekit 서비스를 opt-in 프로파일(selfhost-livekit)로 추가. 기존 dev/운영 동작 불변(프로파일 미지정 시 미생성). 시그널링 7880 은 expose(프록시 TLS 라우팅), 미디어 7881/tcp·7882/udp 는 호스트 공개. 키는 LIVEKIT_KEYS env 주입. - livekit/livekit.prod.yaml: 단일 노드 운영 설정(use_external_ip, tcp/udp 포트). 클러스터링용 redis 블록은 비밀값이라 주석으로 두고 배포 시 사본에 채움. - .env.production.example: LIVEKIT_* 섹션(셀프호스팅/ Cloud 양쪽 안내). - livekit/DEPLOY.md: 사전준비/키생성/기동/프록시(wss)/방화벽/검증(load-test)/ 멀티노드 클러스터링(Redis·캐스케이딩)/운영팁. - .gitignore: livekit/*.local.yaml(클러스터 설정 사본) 제외. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
1.5 KiB
YAML
35 lines
1.5 KiB
YAML
# LiveKit 셀프호스팅 운영 설정 (단계 6)
|
|
# - 단일 노드 기준. 멀티 노드 클러스터링은 아래 redis 블록을 활성화한다(livekit/DEPLOY.md 참고).
|
|
# - API 키/시크릿은 환경변수 LIVEKIT_KEYS 로 주입한다(이 파일에 비밀값을 두지 않는다).
|
|
# - 시그널링(7880)은 리버스 프록시에서 TLS 종단 후 라우팅한다(wss://livekit.<도메인>).
|
|
# - 미디어(RTC)는 프록시를 거치지 않고 서버 공인 IP 로 직접 통신한다.
|
|
|
|
# 시그널링 / HTTP API (리버스 프록시 뒤)
|
|
port: 7880
|
|
|
|
rtc:
|
|
# ICE/TCP 폴백 포트 (UDP 차단 환경 대비)
|
|
tcp_port: 7881
|
|
# ICE/UDP 단일 mux 포트 (방화벽 단순화 — 이 포트만 열면 됨)
|
|
udp_port: 7882
|
|
# 운영: 서버의 공인 IP 를 ICE 후보로 자동 광고
|
|
use_external_ip: true
|
|
|
|
logging:
|
|
level: info
|
|
|
|
# 내장 TURN 은 기본 비활성. 엄격한 방화벽 뒤 클라이언트를 지원하려면
|
|
# DEPLOY.md 의 TURN/TLS 설정을 참고해 활성화한다.
|
|
turn:
|
|
enabled: false
|
|
|
|
# ── 멀티 노드 클러스터링(수평 확장) ──────────────────────────────
|
|
# 2대 이상의 LiveKit 노드를 Redis 로 묶어 트래픽을 분산한다.
|
|
# Redis 비밀번호가 들어가므로(비밀값) 이 블록은 커밋 파일에 두지 않고,
|
|
# 배포 시 이 파일을 복사한 사본(gitignore)에 채워 마운트한다. (livekit/DEPLOY.md 참고)
|
|
#
|
|
# redis:
|
|
# address: redis:6379
|
|
# db: 1 # 앱 캐시(db 0)와 분리
|
|
# password: <REDIS_PASSWORD>
|