跳轉到

D-20260706-03|TURN 公版先建不部署:需要時與社群同路

背景與驅動力

部署討論(GitHub secrets 盤點 → TURN 原理 → UDP port range 疑慮)中,使用者提案:先建公版不部署,真需要時走跟其他人一樣的流程額外產 repo 部署。TURN 在 D-20260705-06 的定位是「一 repo= 一部署單元(部署官方 k8s)」,但 playtest 前並不確定 symmetric NAT/CGNAT 連線障礙是否真會出現。

考慮過的選項

  • 照原定位 day-one 部署官方 TURN:為尚未證實的需求養一台計費中繼,否決。
  • 公版 Template+ 部署延後(採納);屆時要架放獨立 VPS、不動個人伺服器。

決定

  • open-4wd-turn 定為公版 Template repository:本體零 secrets、驗證 CI(envsubst 渲染檢查 +compose config)、永不部署。
  • 官方部署延後至 playtest 出現 NAT 連線障礙;屆時以「Use this template」產生部署 repo(GitHub 不允許同帳號 fork 自身 repo),與社群自架同一條路、自架指南由官方 dogfood。
  • 未部署期間:client iceServers 首項空缺、STUN 直接用 Google 公網保底(官方 TURN 上線後隨 client patch 加回首位);官方 signaling 不設 TURN_SHARED_SECRET/turn-token 停用(自架既有規則、官方適用明文化)。
  • UDP 疑慮結論落檔:relay port range 平時無 socket 在聽、allocation 需 token 認證、denied-peer-ip 防內網跳板為安全必開——無架構缺口,純粹是時程選擇。

後果與影響

推翻 TURN「一 repo= 一部署單元」舊定位,成為公版 Template 模型的第一個實例,同日即由 D-20260706-02 推廣至三週邊 repo。純 STUN 保底覆蓋多數 NAT,多人功能不因官方不架 TURN 而受阻。細節見 部署資訊/open-4wd-turn.md