fix: pin headscale image to v0.29.0 and drop removed config keys

新版 headscale 移除了部分設定鍵,搭配 watchtower 自動更新 :latest
導致容器啟動即 FATAL、無限重啟,所有節點離線。

- config.yaml: 註解 randomize_client_port(FATAL)與 ephemeral_node_inactivity_timeout(已改名)
- docker-compose.yml: image 釘到 v0.29.0,停止破壞性自動升級
- OPERATIONS.md / CLAUDE.md: 補上故障排除與升級注意事項

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 18:10:31 +08:00
parent 7d9e1453ee
commit e404dd9036
4 changed files with 36 additions and 4 deletions

View File

@@ -85,7 +85,9 @@ derp:
disable_check_updates: false
# ephemeral_node_inactivity_timeout: 臨時節點ephemeral node多久沒活動就自動刪除
ephemeral_node_inactivity_timeout: 30m
# ⚠️ 此鍵已於新版 Headscale 移除,改名為 node.ephemeral.inactivity_timeout(預設仍為 30m)。
# 保留 30m 預設行為,故直接停用本鍵;如需自訂請改用新的 node.ephemeral.inactivity_timeout 區塊。
# ephemeral_node_inactivity_timeout: 30m
database:
# type: 資料庫類型(可選 sqlite 或 postgres建議用 sqlite
@@ -225,5 +227,7 @@ logtail:
enabled: false
# randomize_client_port: 是否隨機使用 WireGuard port預設 41641開啟後會隨機挑 port主要解決防火牆相容問題
# randomize_client_port: false
randomize_client_port: true
# ⚠️ 此頂層鍵已於新版 Headscale 移除,啟動會直接 FATAL導致容器無限重啟
# 新版改為在 policy 檔頂層設定 "randomizeClientPort": true見 policy.path / policy.mode
# 或用 nodeAttrs 針對個別節點授權。一般家用情境不需要,維持預設即可。
# randomize_client_port: true