跳到主要内容

AOVIS Direct Store - VM 部署准备

这份文档描述当前 VM 发布的准备方式和边界。

发布纪律

  • 生产发布必须以 Git commit 为准
  • 不要把本地未提交状态当成可发布版本
  • 不要把 VM 当成“临时编辑器”
  • 不要用 tar / scp 作为主发布路径

为什么现在是 VM

当前部署形态以 GCP VM + PM2 + Nginx 为主,原因是:

  • 路径稳定
  • 可控性高
  • 便于和既有 release SOP 对齐
  • 便于保留操作日志和回滚点

推荐运行方式

  • 应用在 VM 上以 PM2 管理
  • Nginx 负责反向代理
  • Git 负责代码来源
  • .env.production 只保留在 VM 本地

SSH 入口

使用 gcloud compute ssh 进入 VM:

gcloud compute ssh aovis-store-staging-vm --zone us-west1-c --project aovis-site-1

环境变量

必须有

  • NODE_ENV=production
  • AUTH_URL
  • NEXTAUTH_URL
  • NEXT_PUBLIC_APP_URL
  • AUTH_TRUST_HOST=true

Webhook 之后再补

  • Stripe webhook secret
  • 支付 / 支持平台相关 secret

初期可以先不设

  • 未启用的外部集成 secret
  • 仍在验证中的第三方凭据

Apple 登录恢复检查

如果 Apple sign-in 失效,优先检查:

  • VM .env.production 是否被覆盖
  • AUTH_APPLE_* 是否仍然存在
  • /api/auth/providers 是否还返回 apple
  • /signin 是否仍然能显示 Apple 登录

PM2

推荐使用:

pm2 restart aovis-store-staging --update-env

Git 部署 key

如果需要 VM 主动拉取 Git,请确认:

  • deploy key 还有效
  • 仓库访问权限正常
  • 证书或 key 没有过期

反向代理

Nginx 负责对外服务和转发,变更时不要把应用目录、部署目录和代理配置混在一起。

当前限制

  • 仍然有部分功能处于阶段性接入中
  • 不要因为本地构建通过就默认线上已经生效
  • 任何影响 auth / payment / admin 的改动都要先做真值验证