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。