Files
MemRelay/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/生产环境拓扑与一键升级.md
T

2.2 KiB
Raw Blame History

title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
title type permalink stable_id scope project_id memory_type status revision restored_from_commit created_at updated_at tags
生产环境拓扑与一键升级 fact main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/生产环境拓扑与一键升级 d5bb7f58-99bb-4381-ac98-300cceb128fe project d44c219a-0b31-4de1-b160-323eb34a4c6a fact active 1 6a6a895eaf 2026-09-23T15:08:04.812872+00:00 2026-09-23T15:08:04.812925+00:00
production
server
pm2
baota
upgrade

生产服务器 8.134.255.136(阿里云 Alinux 8,宝塔面板):Node 24,pnpm 由 corepack 提供,MySQL 本机 5.7(业务账号无 PROCESS 权限),Redis 本机。

  • 部署目录 /www/wwwroot/artveris,PM2 应用名 server(非 artveris),API 端口 3000,域名 https://art.qclh.xyz(宝塔 Nginx 反代),升级工作目录 /www/upgrade(包/备份各保留最近 3 份)。
  • SSH 免密:本机 C:\Users\Administrator\.ssh\id_ed25519,公钥已在 root authorized_keys。凭据条目见密码库“artveris · 生产服务器 SSH (8.134.255.136)”。
  • PM2 开机自启已配置(2026-09-03):pm2-root.service enabled,重启链路 systemd → pm2 resurrect → server。

一键升级:本机运行 .\scripts\upgrade-remote.ps1(-SkipBuild 部署 .release 现有包)。流程:build.py --upgrade → scp 包+upgrade-remote-steps.sh → 远端备份(mysqldump --single-transaction --no-tablespaces 到 /www/upgrade/backup/,代码 tar 排除 node_modules/storage/backups)→ pm2 stop server → 官方 upgrade.sh(替代码/装依赖/prisma generate/migrate deploy)→ pm2 restart + pm2 save → 回环健康检查(install/status、/admin、/trace 均 200,10×3s)→ 清理旧包。任一步失败立即中止并保留备份,服务保持停止避免带病运行。打包前需先停本地 dev API。

  • 已完成多次生产升级(含模块化编排迁移 trace_module_layout),.env/storage//backups//数据库未触碰。
  • 生产上线检查单(天河链):换生产 AppID/AppKey → 切生产环境 → 生产重新注册钱包并离线保存凭据 → 抽一件真实走通 → 与天河商务核对计费。