跳到內容

儲存庫密鑰

En Parlant~ 使用 GitHub Actions 為 Windows、macOS 和 Linux 建置發行版二進位檔案。CI 流程需要用於程式碼簽署、更新簽署、病毒掃描和多人遊戲中繼伺服器 URL 的憑證。這些憑證以 GitHub 儲存庫密鑰的形式儲存——這是 GitHub 注入到工作流程執行中但永遠不會顯示的加密值。

如果您 fork 了 En Parlant~ 並想要產生自己的簽署版本,您需要設定自己的密鑰。即使沒有這些密鑰,建置仍然可以編譯,但二進位檔案不會被簽署、更新無法驗證,且 VirusTotal 掃描步驟將被跳過。

Azure Trusted Signing(Windows 程式碼簽署)

Section titled “Azure Trusted Signing(Windows 程式碼簽署)”

Windows 使用者在執行未簽署的 .exe 時會看到 SmartScreen 警告(「Windows 已保護您的電腦」)。程式碼簽署可以消除該警告,並告知 Windows 該二進位檔案來自經過驗證的發行者。

En Parlant~ 使用 Azure Trusted Signing 來實現此功能。Tauri 建置會在 Windows 建置步驟中呼叫 trusted-signing-cli,與 Azure 通訊以簽署可執行檔。

密鑰用途
AZURE_CLIENT_ID服務主體應用程式 ID
AZURE_CLIENT_SECRET服務主體憑證
AZURE_TENANT_IDAzure AD 租戶
AZURE_SUBSCRIPTION_IDAzure 訂閱
AZURE_CODE_SIGNING_ACCOUNTTrusted Signing 帳戶名稱
AZURE_CODE_SIGNING_ENDPOINTTrusted Signing 端點 URL
AZURE_CODE_SIGNING_PROFILE憑證設定檔名稱

**自行設定方式:**建立 Azure 帳戶、設定 Trusted Signing 資源、建立憑證設定檔,並註冊具有適當權限的服務主體。Microsoft 的 Trusted Signing 快速入門會引導您完成整個流程。

**如果跳過此步驟:**Windows 建置仍然可以正常運作,但您的使用者會看到令人畏懼的藍色 SmartScreen 死亡畫面——您一定見過。我們都曾點過「仍要執行」然後祈禱一切順利。macOS 和 Linux 建置不受影響。

Tauri 內建的更新程式會驗證更新來自真正的發行者,而非遭竄改的來源。當應用程式檢查新版本時,它會下載更新並根據嵌入在應用程式中的公鑰驗證其簽章。用於建立這些簽章的私鑰存放在 CI 中。

密鑰用途
TAURI_PRIVATE_KEY用於簽署更新的 Ed25519 私鑰
TAURI_KEY_PASSWORD保護私鑰的密碼

**自行設定方式:**使用 pnpm tauri signer generate 產生金鑰對。將私鑰和密碼放入您的儲存庫密鑰中,並將公鑰放入 tauri.conf.jsonplugins.updater.pubkey 中。

**如果跳過此步驟:**應用程式可以正常建置,但自動更新功能將無法運作。使用者需要手動下載新版本。

建置發行成品後,CI 流程會將每個二進位檔案(.exe.dmg.deb.rpm.AppImage)上傳至 VirusTotal 進行自動化惡意軟體掃描。這是一種信任訊號——使用者可以驗證官方建置是否乾淨無毒。

密鑰用途
VIRUSTOTAL_API_KEYVirusTotal v3 API 的 API 金鑰

**自行設定方式:**建立免費的 VirusTotal 帳戶,並從您的個人檔案中複製 API 金鑰。

**如果跳過此步驟:**VirusTotal 掃描步驟會靜默失敗。建置仍然會成功並正常發行——只是您不會有自動化掃描結果。

多人遊戲中繼伺服器 URL 會在建置時注入,讓應用程式知道線上遊戲要連線到哪裡。

密鑰用途
VITE_RELAY_URL多人遊戲中繼伺服器的 WebSocket URL(例如 wss://your-relay.fly.dev

**自行設定方式:**部署您自己的中繼伺服器(請參閱多人遊戲伺服器設定指南),並將此密鑰設定為其公開 URL。

**如果跳過此步驟:**如果您在應用程式的設定中於執行時設定中繼伺服器 URL,多人遊戲仍然可以運作。此密鑰只是設定預設值,讓使用者不需要手動設定。

密鑰群組用途可以跳過嗎?
Azure(7 個密鑰)簽署的 Windows 建置可以——建置正常運作,使用者會看到 SmartScreen 警告
Tauri(2 個密鑰)自動更新程式可以——建置正常運作,無自動更新
VirusTotal(1 個密鑰)惡意軟體掃描報告可以——建置正常運作,無掃描結果
中繼伺服器 URL(1 個密鑰)預設多人遊戲伺服器可以——使用者可在應用程式設定中自行設定

這些密鑰都不是在本機建置和執行應用程式所必需的。它們僅在 CI/CD 發行版建置時才有意義。