首页

最近更新

Phorge 现代化改造实战(十):迁移 Webhook 投递服务,先解决重复投递

本文是“Phorge 现代化改造实战”系列第十篇,记录把 Webhook 投递迁进 `gorge-webhook` 的过程。这次调用方向反了过来:Go 直接轮询 Phorge 的队列表,所以要先用乐观抢占、接管开关和只读诊断接口,把“只投递一次”变成可以证明的结果。 阅读全文

Phorge 现代化改造实战(九):迁移文件存储,写得进去也要读得回来

, , , , , , , ,
本文是“Phorge 现代化改造实战”系列第九篇,记录把 `gorge-file-storage` 迁进单仓库、接上 MySQL、本地磁盘和 S3 三个后端的过程:Phorge 管元数据、Gorge 只管字节,以及为什么保留 8MB 上限反而能稳定处理更大的文件。 阅读全文

Phorge 现代化改造实战(八):迁移搜索服务,写进索引不等于搜得到

本文是“Phorge 现代化改造实战”系列第八篇,记录把 `gorge-search` 迁进单仓库并替换一个已经有存量索引的实现:字段名要逐字符一致、mapping 改了必须重建索引、`/readyz` 到底承诺什么,以及 failover 该由谁负责。 阅读全文

Phorge 现代化改造实战(七):迁移邮件服务,先分清哪些失败不该重试

, , , , , , ,
本文是“Phorge 现代化改造实战”系列第七篇,记录把 `gorge-mailer` 迁进单仓库、接回 SMTP 与五家外部 provider 的过程,重点是三处静默故障:永久失败被当成临时错误、没有后端的进程仍然健康、两层配置只完成一层。 阅读全文

Phorge 现代化改造实战(六):替换实时通知服务,为什么 HTTP 501 反而表示正常

本文是“Phorge 现代化改造实战”系列第六篇,记录用 `gorge-notification` 替换 Phorge 自带的 Node.js 常驻服务 Aphlict 的过程:长连接、内存状态和集群扇出怎么做兼容,以及那些坏掉之后仍然返回 200 的协议约定。 阅读全文

Phorge 现代化改造实战(五):替换 diff 子进程,兼容不等于逐字一致

, , , , , ,
本文是“Phorge 现代化改造实战”系列第五篇,记录把第二个纯计算模块 diff 迁入 Gorge 的过程:复现 `diff -U65535`、用参照实现验证 8.6% 的不一致,以及区分“实现就绪”和“宿主已经切换”。 阅读全文

Phorge 现代化改造实战(四):拆分模块到 Gorge,无侵入改造不等于不碰文件

, , , , , ,
本文是“Phorge 现代化改造实战”系列第四篇,记录把语法高亮从 Phorge 拆到常驻 Go 服务 `gorge-render` 的过程,以及怎样让这个 fork 不因此变成每次同步上游都要手工合并的负担。 阅读全文

Phorge 现代化改造实战(三):接入 Stargate,把 Forward Auth 的信任边界做完整

本文是“Phorge 现代化改造实战”系列第三篇,把视角从容器内部移到入口,记录让 Phorge 运行在 Traefik Forward Auth 之后并识别网关传递的用户身份的过程。 阅读全文

Phorge 现代化改造实战(二):改进容器化的七个细节

, , , , , ,
本文是“Phorge 现代化改造实战”系列第二篇,记录把上一篇的最小可运行容器从“能跑起来”改进到“可配置、可持久化、可观测”的过程。 阅读全文

Phorge 现代化改造实战(一):从没有官方镜像到 Docker Compose 跑起来

, , , , , ,
Phabricator 停止维护后,社区 fork 出的 Phorge 接过了后续维护,但截至 2026 年 9 月仍未提供官方 Dockerfile 和容器镜像。本文是“Phorge 现代化改造实战”系列第一篇,记录我把自己 fork 的源码做成最小可运行容器基线的过程。 阅读全文

更多内容