Release and Database Migrations - wongyiuming/FrontierCloud-Gin GitHub Wiki
当前 updater 清理交付见 PR #15,公开版本为 fc6adc75c7cdb9064163f938a31f176add843e0a。源码、Updater 镜像发布、fc 的 Updater 校验与旧 CD 入口已移除。保留证书 certificate-agent,它只负责 TLS 生命周期,不承担项目升级。
当前发布只编译、发布 Web/Nginx 两种镜像;证书 agent 使用 Web 镜像中的证书命令。升级由每台主机显式执行 fc upgrade plan/apply/open,无自动整群发布、后台 Docker socket 升级或现场源码编译。数据库代际为 7,本次没有 DDL 变化。
现行命令、备份和恢复边界见 fc 手动升级与边界,源码契约以 main 的 运维手册 和 升级契约 为准。RN 预生产和外部 CD 已退役,不能声称完成 live staging 验收。
本次生产执行状态见 fc 手动升级与边界;公开发布成功不等于生产更新完成。
2026-10-11 及此前的历史记录(旧命令及版本不用于当前部署)
2026-10-11 三个生产节点已按所有者更新指令迁移至正式 main 785af2d2c4595d210bf3bf2de8d39ef6f0b42983,使用 Go 签发的 Let’s Encrypt 证书。RN 原 schema 2 安全迁至 3,其他节点保持 3;数据库、全部媒体、身份及配对凭据独立离机备份并完整核对。Direct 443 rebind 使用原生维护 gate 和签名身份校验。首次证书拓扑切换由维护者独立执行,没有把它伪装成普通自动升级;之后使用新 Compose 持久证书拓扑。无全局 Docker prune 或业务数据删除。实际版本与公网验收见 Audit-and-Validation。
RN 预发布及外部 CD 已退役,STAGING_CD_ENABLED=false,当前不要求或声称完成 RN live staging;源码验收、dev CI、受信任正式镜像发布继续执行。
以下流程描述 RN 预发布运行期;当前的退役例外以上方记录和 CONTRIBUTING.md 为准。新仓库仅 dev / main;先开发机验证、推送 dev、等待精确 dev CI 成功及 RN CD 完整验收,再创建同仓库 dev → main PR,经检查及 GitHub 自动审查后发布。合并后 fast-forward dev;不 force-push。旧 FrontierCloud 仓库不改名、不改写。CD 的 202 通知不代表验收通过,必须确认原生日志 complete、业务与升级器版本匹配及站点就绪。
2026-10-08 本次迁移按维护者授权跳过预发布;不省略开发机验证、PR 和合并。2026-10-09 维护者取消本对话当前和后续人工代码审查,后续交给 Codex GitHub 自动审查,仅使用已有 Code Review 额度,不购买额外额度。已核实新仓库自动审查开关开启、继承个人智能触发偏好,“使用点数进行审查”关闭;将仓库范围明确改为“所有 PR”的两次保存均被设置服务拒绝,因此不能声称所有 PR 模式已保存。 本轮公开镜像交付候选改为独立 GitHub 编译 CI 生成最终 SHA 的不可变公开镜像;源码测试 CI 仍限三分钟。新升级器优先拉取已验证镜像,只有明确版本缺失才有限额本地构建;旧升级器首次接管仍可能需要一次桥接构建。候选及实测进展见 公开镜像交付,三个生产节点已按所有者单独指令完成 785af2d2c459 自动 TLS 首次迁移,见 Audit-and-Validation;这不是自动整群升级。 保留原数据库、媒体、身份、密钥及 Redis/STUN,维护窗口只备份数据库; 媒体由维护者另行备份。冻结数据库逐表逐字段验证,发现差异即停止放行。
- 发布:PR #1,main/dev 同为
8a6e30975c109d6f59763dbc5f43e33935e71bd6。 - 源码:
/root/FrontierCloud-Gin,origin 指向新仓库。旧/root/FrontierCloud-gin保留用于应急回退;不要在旧目录继续更新。 - 原数据:
/root/FrontierCloud/sqlite-20261005-r2/data,并未复制或重新登记媒体。 - 保留同一个主节点身份、六份密钥、外部数据卷、网络及证书;Redis/STUN 原容器未替换。
- 冻结快照 20,283,392 字节,SHA256
cb3a13e58f4c62449610e2cc185dbcb2d47284934cdc3feeaac0badcdc548ace。开发机异机副本重新读取后哈希一致;未备份媒体。 - 完成初始化和新进程启动后,35 张表的结构及完整行哈希与冻结快照全部一致,无需豁免任何业务或运行状态字段。
- 原位物理媒体 2,720 个文件、11,304,286,504 字节,路径/大小清单一致;1,279 个受管对象的 ID、路径、大小一致。此验证不是 11GB 全内容哈希。
- HTTPS 后台登录、系统版本管理、CI 发布证据、历史列表验证通过;黄耀明目录 43 个专辑、495 个文件仍可管理;公开页 200、媒体 Range 206,UA 日志实际核验。
当前生产保留环境配置和私有 Compose 覆盖,不要无条件运行裸 docker compose up 重建已有外部卷或 Redis。使用后台的主节点版本管理进行后续版本操作;应急交接工件仅在 root 私有迁移目录中。代码回退不应覆盖已经产生新写入的数据库。
版本管理只管理主节点自己,存储端没有升级器或同步流程。最多显示十个近期发布 PR 的标题、说明和日期。历史列表不是部署授权;选择回退版本仍须精确树、分支、最新源 CI 和祖先关系校验。代码回退不回退数据库。
SQLite 停写关连接后完整离线备份,或使用 SQLite backup API / VACUUM INTO;不能只热拷贝 WAL 模式的 .db。MySQL 用一致性逻辑导出,避免并发 DDL,不热拷贝数据目录。
业务 SQL 冷备份是恢复工件,存储端以文件保存,不运行数据库容器。它不包含全部身份密钥、关系、日志和媒体;完整灾备必须单独保存这些内容。
既有盘不能靠删除主节点关系、重建身份后重新配对恢复。必须保留稳定 ID 与所有权并完成验证过的交接。主节点版本管理;存储迁移安全。