Skip to content
Clone

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
parent 648ffd9 commit 20a153a Browse files

1 file changed

+6 −0

Modified deploy/values/prod.yaml 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"]'