联盟 (Federation)

Utterlog 是一个联邦式的博客系统:每个站点独立部署、独立存储, 通过 utterlog.com 联盟中心站和 id.utterlog.com 账号中心互相发现、互相访问。

设计原则

  • 你的数据始终在你的服务器 — 中心站只存元数据(站名、URL、头像),从不镜像你的文章内容
  • 退出联盟不损失任何内容 — 只是中心站的发现页找不到你,但博客本体完好
  • 没有审查权 — 中心站无法让你下线,也无法修改你的内容
  • 没有 SaaS 绑定 — 联盟本身也是开源的,可以 fork 出自己的联盟中心

三个角色

站点角色存什么
blog.example.com独立博客(就是你自己的 Utterlog 实例)全部内容:文章、评论、媒体、用户
utterlog.com联盟中心站点目录(友链广场)、RSS 聚合索引
id.utterlog.com账号中心读者账号、OAuth tokens、passkey 凭据

读者跨站评论如何发生

  1. 读者在 A 站点的文章下点「评论」
  2. A 站点发现当前浏览器没有登录 Utterlog ID,弹出 OAuth 授权窗
  3. 窗口跳到 id.utterlog.com/oauth/authorize,读者用自己已有的 Utterlog ID 登录(或注册)
  4. id.utterlog.com 签发 access_token 回给 A 站点
  5. A 站点把评论写入自己的数据库,并记录评论者的 Utterlog ID 用户名
  6. 同一读者随后访问 B 站点时,自动识别同一 Utterlog ID,评论立刻可发
关键:评论内容存在 A 站点,不在 id.utterlog.com,也不在 utterlog.com。中心站完全不碰内容层。

加入 / 退出联盟

当前版本联盟加入是管理员在后台主动申请的:后台 →「联盟」→ 填站名/简介/分类 → 提交给 utterlog.com 中心站审核。 通过后你的站出现在 utterlog.com 的博客目录和 RSS 聚合里。

退出:后台同一处点「退出联盟」即可。中心站收到请求后会删除目录条目。 你的读者依然可以直接访问 blog.example.com,只是在 utterlog.com 搜不到你了。

自建联盟中心

utterlog.com 本身也是个 Utterlog 实例(启用了「中心站」模式)。如果你想搭私有联盟(比如 公司内部博客群、学校论坛等),也可以 fork 源码自己跑一个。

未来会写详细的「自建联盟中心」指南,暂时可参考 hub/ 目录。

相关


在 GitHub 上编辑此页© Utterlog Project