chore(deploy): enable Web Push with a fresh VAPID identity
[push] is now on for production: a new P-256 key pair (public key 65-byte uncompressed, private 32-byte scalar, both base64url without padding) and subject mailto:bot@mail.gitdata.ai, matching the transactional sender. Only the public half lives in this file. config.env renders as container env:, which wins over the envFrom: Secret for same-named keys, so APP_PUSH__VAPID_PRIVATE_KEY is supplied exclusively through PROD_SECRET_VALUES - an empty placeholder here would shadow the real key and every VAPID JWT would be signed with an unusable identity. apihost validates the pair with real curve math at startup (push::client::VapidKeys::from_config) and exits rather than signing junk, so the pair was generated and verified together with openssl before being split across the two files; the PEM and both halves are backed up under the operator's k8s-backups directory.
ZhenYi committed
Modified deploy/values/prod.yaml deploy/values/prod.yaml +6 −0 View deploy/values/prod.yaml
@@ -43,6 +43,12 @@
4343 APP_LIVEKIT__URL: "wss://livekit.gitdata.ai"
4444 APP_LIVEKIT__API_URL: "https://livekit.gitdata.ai"
4545
46 # ---- Web Push / VAPID ----
47 # 私钥只在 PROD_SECRET_VALUES 里(APP_PUSH__VAPID_PRIVATE_KEY):config.env 走
48 # env:,同名键会盖掉 envFrom: 的 Secret,所以私钥绝不能出现在这里。
49 APP_PUSH__ENABLED: "true"
50 APP_PUSH__VAPID_PUBLIC_KEY: "BG4X_BUPF-hgTX7xCzpRw9B1y3RO3y6lEBcuh0A62S4A1sjs79C54gUOzp3h8zy0oFsjVFM7A2OVM_6crzhLhMw"
51 APP_PUSH__VAPID_SUBJECT: "mailto:bot@mail.gitdata.ai"
4652 # ---- 对外地址(主站 gitdata.ai)----
4753 APP_WEB__WEB_BASE_URL: "https://gitdata.ai"
4854 APP_WEB__CORS_ALLOW_ORIGINS: '["https://gitdata.ai"]'