跳到內容
開源

體驗計畫

加入體驗計畫後,Zeabur 和 installer 會傳送什麼、絕不傳送什麼;Zeabur 和 zeaburctl 怎麼檢查新版;以及怎麼分別關閉。

體驗計畫會傳送版本和每天的使用人數,讓我們知道有多少人在用、該先修哪裡。用 installer 安裝時預設加入,可以在確認頁取消勾選;用 Helm 安裝時預設不加入,要自己開啟。

每個人每天(UTC)第一次使用 Zeabur 時,Zeabur 會傳一筆事件;installer 在安裝開始、完成或失敗時各傳一筆。每筆事件只有隨機的安裝代碼和下表列出的屬性。安裝代碼由 installer 產生一次,或由你用 uuidgen 產生,不含任何機器的資訊。資料保留 13 個月。

事件由誰傳送時機
zeabur_activeZeabur每個人每天(UTC)第一次使用 Zeabur 網頁介面時
install_startedInstallerapply 開始
install_finishedInstallerapply 順利結束
install_failedInstallerapply 中途停止
屬性事件值
zeabur_versionzeabur_activeZeabur 的版本,例如 0.1.1
dayzeabur_activeUTC 日期,例如 2026-10-30
personzeabur_active32 位十六進位數字,只在同一個安裝、同一天裡分辨不同的人
modezeabur_activein-cluster
installer_versioninstaller 的事件Installer 的版本
profileinstaller 的事件single-node、multi-node 或 personal
distributioninstaller 的事件k3s、rke2 或 kube-solo
stepinstall_failed停在哪一步:plan、preflight、node-prep、cluster、cluster-setup、components、identity、zeabur 或 record
errorinstall_failedconfig、plan、io、command、download、digest、parse 或 other,不會是錯誤訊息
$process_person_profile全部固定為 false:不建立個人檔案
$geoip_disable全部固定為 true:不查詢所在位置

事件不會說明是誰。person 是用金鑰算出的使用者名稱加日期的雜湊值。金鑰從 Zeabur 的 plan key 衍生,留在叢集的 Secret 裡,從不送出,所以我們無法從雜湊值反推使用者名稱。同一個人一整天的 person 都一樣,Zeabur 重新啟動也不變;隔天就換成另一個,所以不同天無法串在一起。

事件用 HTTPS 送到 PostHog(經由 oss-nori.zeabur.com),只試一次,逾時很短。傳送失敗時不會重試,也不影響 Zeabur 或安裝。PostHog 不保存 IP 位址。

網域、主機名稱、IP 位址、Git URL、映像檔或服務名稱、專案名稱、Email、使用者名稱、日誌,以及叢集裡的內容。

以下任何一種都有效,其中 DO_NOT_TRACK 優先於其他設定。

  • 在 installer 或 Zeabur 的環境變數設定 DO_NOT_TRACK=1。空值和 0 以外的值都算。
  • 在 installer 的確認頁取消勾選,執行 zeabur-installer --no-telemetry apply(或 --no-telemetry gui),或在 /etc/zeabur-installer/config.yaml 寫 telemetry: false。
  • 用 Helm 安裝時,維持預設的 telemetry.enabled=false。沒有安裝代碼時,chart 不接受 telemetry.enabled=true。

用 Helm 加入時,帶入一組新的安裝代碼:

helm upgrade <release> oci://ghcr.io/zeabur-oss/charts/zeabur --reuse-values \
--set telemetry.enabled=true \
--set telemetry.installationId=$(uuidgen | tr 'A-Z' 'a-z')

Installer 把安裝代碼存在 /etc/zeabur-installer/installation-id(權限 0600),並交給 Zeabur 的 chart。

設定 ZEABUR_TELEMETRY=debug,Zeabur 或 installer 會印出實際的請求內容,但不會送出。用除錯模式安裝時,Zeabur 不會加入體驗計畫。Zeabur 會把內容寫在日誌裡:

kubectl -n zeabur set env deployment/zeabur ZEABUR_TELEMETRY=debug
kubectl -n zeabur logs deployment/zeabur | grep telemetry

ZEABUR_TELEMETRY=off 的效果和 DO_NOT_TRACK 一樣。

有新版時,Zeabur 和 zeaburctl 會提醒你,並說明怎麼升級,但不會自動升級。檢查更新和體驗計畫各自獨立,預設開啟。

檢查什麼。兩者都讀取 https://api.github.com/repos/zeabur-oss/zeabur/releases,略過草稿。除非你正在用預先發行版本,否則也會略過預先發行版本。剩下的版本中最新的一個比你的版本新時,會顯示它的版本、發行說明連結和升級方式。只要有任何一個較新的正式版本在說明裡有 ### Security 段落,就會告訴你目前的版本有已知的安全性問題,並附上那些版本的連結。

在哪裡執行。

  • 叢集頁一律顯示 Zeabur v<版本>。不管多少人打開 Zeabur,Zeabur 伺服器每小時最多問 GitHub 一次。頁面每次打開時讀它的結果,一直開著時每小時再讀一次。伺服器會留著上次的結果。連不到 GitHub 時先沿用,一分鐘後再試。GitHub 拒絕時,等 GitHub 重新計算後再試。瀏覽器不會連到 GitHub。「設定」›「關於」也會顯示版本,按「升級方式」會依 Zeabur 的安裝方式列出步驟,分為 zeabur-installer、Helm、Argo CD 和 Flux。請參閱升級 Zeabur。用 zeaburctl ui 開啟時,頁面顯示的是 zeaburctl 本身的版本和更新方式。
  • zeaburctl 每次執行指令都會檢查。檢查和指令同時進行,指令結束後 zeaburctl 最多再等一秒。有新版時,會在 stderr 印出一行。它不在磁碟上存任何東西。stderr 不是終端機,或設定了 CI 時,不會檢查。
  • 沒有權杖時,GitHub 每小時只回應同一個 IP 位址 60 次,共用這個位址的人一起算。用完時,zeaburctl 會印出提示。把 GitHub 權杖設在 GH_TOKEN 或 GITHUB_TOKEN(和 gh 讀的變數相同),zeaburctl 就會帶上它,改用你自己的額度。不給任何權限的 fine-grained 權杖就夠了。

會傳送什麼。一個普通的 GitHub 請求,不帶任何 ID 或 Cookie。除非你替 zeaburctl 設了權杖,否則也不帶權杖。GitHub 會看到請求來自哪個 IP 位址。Zeabur 伺服器的 user agent 是 zeabur,zeaburctl 的是 zeaburctl/<版本>。

關閉。以下任何一種都有效。關閉後,Zeabur 伺服器完全不會連到 GitHub。

  • 用 installer 安裝時,在確認頁取消勾選,或在 /etc/zeabur-installer/config.yaml 設定 updateCheck: false。執行 apply 時設定了 DO_NOT_TRACK=1 或 NO_UPDATE_NOTIFIER 也會關閉。
  • 用 Helm 安裝時,設定 updateCheck.enabled=false。叢集頁就只顯示版本。
  • 在 Zeabur 的環境變數設定 DO_NOT_TRACK=1。zeaburctl 則是在你自己的環境變數設定。這也會關閉體驗計畫。
  • 為 zeaburctl(包括 zeaburctl ui)在你的環境變數設定 NO_UPDATE_NOTIFIER,任何值都可以。這只關閉檢查更新。