diaspora* 介绍与选型指南
diaspora* 0.9.1.0 介绍与选型指南:解析这款隐私感知、分布式开源社交网络的定位、pod 架构、aspects 隐私模型、功能特性与发布节奏,给出与 Mastodon/Friendica 的量化选型对比与适用场景判断。
diaspora* 介绍与选型指南
本文是 diaspora* 专栏的认知篇。文中版本号、技术栈与对比数据均于 2026-11-02 通过联网实查官方渠道(GitHub 仓库/Releases、官网、源码 tag v0.9.1.0)取得,来源在文末逐条列出;本文不含任何本地部署实测结论。
一、环境信息
1.1 目标版本与发布节奏
以 GitHub Releases 订阅源(github.com/diaspora/diaspora/releases.atom,查询日期 2026-11-02)为准:
| 版本 | 发布日期 | 说明 |
|---|---|---|
| 0.9.1.0 | 2026-04-07 | 当前最新稳定版,安全修复版 |
| 0.9.0.0 | 2024-06-16 | 大版本:TOML 配置、官方 API、puma |
| 0.7.18.2 | 2023-07-10 | 0.7 维护线末段 |
两个大版本之间间隔约 22 个月,发布节奏明显偏慢,选型时应把「版本更新频率」作为显性因素评估(见第六节)。
1.2 技术栈概览
以下版本事实取自源码 tag v0.9.1.0 的 Gemfile / Gemfile.lock(github.com/diaspora/diaspora,查询日期 2026-11-02):
- 语言/框架:Ruby(Gemfile 声明
required_ruby_version,Changelog 0.9.0.0 推荐 Ruby 3.3);Rails 6.1.7.10; - 应用服务器:Puma 7.2.0(0.9.0.0 起替换 Unicorn,官方称默认配置下显著降低内存占用);
- 后台作业:Sidekiq 7.3.10(依赖 Redis),联邦推送、定时清理等异步任务全部走 Sidekiq;
- 联邦层:
diaspora_federationgem 1.2.0(独立实现 diaspora* 联邦协议的官方库); - 数据库:Gemfile 提供
postgresql与mysql两个可选 bundle 组(pg 1.6.3/mysql2 0.5.7),官方安装文档以 PostgreSQL 为主; - 前端构建:0.9.0.0 起使用 yarn 管理前端依赖,需 Node.js 环境预编译 assets;
- 许可证:AGPL-3.0(
COPYRIGHT文件逐字:Diaspora is copyright Diaspora Inc., 2010, and files herein are licensed under the Affero General Public License version 3)。
1.3 仓库与治理
- 主仓库:
github.com/diaspora/diaspora(GitHub API 主语言标签 Ruby,查询 2026-11-02); - 官网:
diasporafoundation.org(页面 title The diaspora Project*,HTTP 200,查询 2026-11-02); - 社区:README 官方链接指向 wiki(
wiki.diasporafoundation.org)、Discourse 讨论区与 GitHub Issue 跟踪。
二、软件概述
2.1 一句话定位
README 对 diaspora* 的官方定义是:"A privacy-aware, distributed, open source social network"(隐私感知、分布式、开源社交网络)。GitHub 仓库 description 与之一字不差。
与「一个网站服务所有人」的集中式社交网络不同,diaspora* 从设计上就是分布式的:网络由大量互相联邦的独立服务器(社区习惯称 pod)组成,任何人均可自建 pod,pod 之间自动同步公开内容。
2.2 pod 与用户标识
- 每个 pod 是一个独立的 Rails 应用实例,拥有自己的域名与数据库;
- 用户标识形如
用户名@pod域名(类似电子邮件地址),跨 pod 唯一; - 官方 README 明确:不自建也能用——网络上存在大量开放注册的 pod,任何人都可以在上面注册账号(选择指引见 wiki 的 Choosing_a_pod 页面,pod 列表见
diaspora.fediverse.observer)。
2.3 项目简史
项目由 Diaspora Inc. 于 2010 年发起(COPYRIGHT 文件),后移交社区基金会形态维护,至今仍在发布安全修复与新版本(0.9.1.0,2026-04)。它是 Fediverse(联邦宇宙)中出现最早的一批去中心化社交协议实现之一。
三、核心架构
3.1 运行时进程模型
一个生产 pod 由两类应用进程加两类基础服务构成:
- web 进程:
bin/puma -C config/puma.rb,承载 Rails 应用(页面、REST API、联邦端点); - sidekiq 进程:
bin/bundle exec sidekiq,承载出站联邦投递、定时任务(生日检查、缓存清理、过期照片清理、pod 复检等); - PostgreSQL:主数据存储;Redis:Sidekiq 队列与缓存。
官方 script/server 通过 foreman + Procfile 同时拉起 web 与 sidekiq;0.9.0.0 起 Changelog 明确警告:生产环境用 script/server 时进程崩溃后不再自动重启,官方建议改用 systemd 等单元管理器守护。
3.2 联邦层:diaspora* 自有协议
联邦能力由独立 gem diaspora_federation 实现,走的是 *diaspora 自有协议**而非 ActivityPub,核心机制包括:
- WebFinger:
/.well-known/webfinger按acct:用户@域名解析到作者所在 pod; - hCard:
/hcard/users/:guid公开用户档案与 RSA 公钥; - Salmon:签名信封推送,帖子以 XML 实体 POST 到订阅者的
/receive/...端点; - Atom:
/public/:username.atom提供公开内容种子流; - 实体可按 GUID 经
/fetch/:type/:guid拉取。
(端点形态可在源码 config/routes.rb 挂载的 DiasporaFederation::Engine 与官方协议文档中核实。)
3.3 隐私模型:aspects
aspects(面向)是 diaspora* 的招牌设计:用户把联系人分入若干 aspects,发帖时选择一个或多个 aspects;public 是特殊的公开面向,其余面向即「仅这些分组可见」。联系人关系是双向可分离的:sharing(对方分享给我)与 receiving(我分享给对方)各自独立,互相关注即双向 sharing。私密消息(conversation)与照片也有独立的可见性控制。
3.4 配置体系
0.9.0.0 起主配置文件改为 TOML(config/diaspora.toml),官方声明 1.0 将不再读取旧 YAML 格式;配置项支持环境变量覆盖(点分路径转下划线大写,如 environment.url → ENVIRONMENT_URL),这一点对容器化部署很关键(详见本专栏部署篇的官方文档溯源)。
四、功能特性
按官方 README、Changelog 与 wiki 汇总(查询 2026-11-02):
4.1 内容发布与互动
- 富文本帖子(Markdown)、照片上传(自动剥离 EXIF,0.9.0.0 起强制)、投票(poll)、地理位置标注;
- reshare(转发)、评论、点赞、@提及、#标签与标签关注流;
- 多面向(aspects)细粒度可见性,公开/私密一屏切换;
- 站内私密对话(conversations)。
4.2 账号与安全
- 双因素认证(2FA):TOTP + 恢复码;0.9.0.0 修复 2FA 暴力破解问题(CVE-2024-0227);
- Content-Security-Policy 默认开启(0.9.0.0);
- 个人资料与照片的导出下载;账号注销与 podmin 移除队列;
- 0.9.1.0 为安全版本:修复 OpenID Connect API 中恶意客户端注册触发 pod 内网请求(SSRF)的漏洞。
4.3 开放 API
0.9.0.0 起官方宣布正式支持在 diaspora* API 上开发应用,官方文档位于 diaspora.github.io/api-documentation/;认证走 OAuth2 / OpenID Connect,scope 体系覆盖公开读写、私密读写、互动与通知等。
4.4 管理面板
podmin(pod 管理员)通过内置管理界面管理用户(锁定/关闭/设为管理员/spotlight)、pod 列表复检、流量与用户统计、举报处理(0.9.1.0 起举报总览显示违规内容作者)。
4.5 已移除的能力(选型注意)
- XMPP 聊天集成已删除(0.9.0.0):不再有站内 webchat;
- relay 支持已删除(0.9.0.0,Drop relay support):远程用户不再能「单向订阅」pod 的全部公开内容,跨 pod 互动以互相关注为主。
五、快速开始
5.1 不自托管:直接加入网络
官方 README 给出的路径:浏览 https://diaspora.fediverse.observer 的开放 pod 列表,或参考 wiki 的 Choosing_a_pod 指引挑选一个开放注册的 pod,注册即用。
5.2 自托管:源码安装
官方安装文档入口:wiki Installation。基本路径为:Ruby 3.3 + PostgreSQL + Redis 环境 → 拉取源码 → bundle install(--with postgresql)→ 生成 diaspora.toml 与会话密钥 → 预编译 assets → script/server(或 systemd 守护 puma + sidekiq)。
关于容器化,官方安装文档源仓库(diaspora/north-star,contents/install/new_pod/docker.md,查询 2026-11-02)明确:官方提供的 diasporasocial/diaspora-dev 镜像与 ./script/diaspora-dev 仅用于开发环境,不可用于生产。生产容器部署需要自建镜像(本专栏部署篇给出完整方案)。
5.3 联邦前提:必须 HTTPS
源码与官方文档一致要求 pod 以 TLS 对外服务:联邦发现环节(WebFinger)永远优先请求 https://<域名>/.well-known/webfinger,http 回退仅在 development 环境启用(config/initializers/diaspora_federation.rb:webfinger_http_fallback = Rails.env == "development")。http-only 的生产 pod 无法与其他 pod 正常联邦。
5.4 API 集成
官方 API 文档:https://diaspora.github.io/api-documentation/(0.9.0.0 起官方支持)。注册 OAuth 应用、获取 token、发帖/读流的最小闭环见本专栏进阶篇。
六、适用场景与限制
6.1 适合选用的场景
- 数据主权优先:pod 完全自托管,数据库、上传、密钥全在自己手里;AGPL-3.0 保证代码可审计;
- 小圈子/家庭/同事社交:aspects 分组共享模型比「公开/仅关注者」二元模型更贴近现实社交圈层,适合几十到几百人规模的私有 pod;
- 封闭注册社区:支持邀请制注册,podmin 可完全控制成员构成;
- Ruby 技术栈团队:标准 Rails 单体应用,二次开发、主题与本地化(多语言翻译体系)门槛低。
6.2 必须正视的限制
- 协议孤岛效应:diaspora* 使用自有联邦协议,不能与 ActivityPub 系(Mastodon、PeerTube 等)pod 直接联邦——Mastodon README 自述 "based on ActivityPub",两者互发现路径不同。触达 Fediverse 主流人群需要经多协议客户端(如 Friendica)桥接;
- 发布节奏慢:0.9.0.0 → 0.9.1.0 间隔约 22 个月,功能演进有限,安全修复是主要产出;
- 无官方生产镜像:容器化必须自建(官方 dev 镜像明示不可生产);
- relay 已移除:公开内容的跨 pod 分发依赖关注关系,pod 冷启动时网络可见度低;
- 网络规模有限:活跃 pod 与用户量远小于 Mastodon(开放 pod 列表见 fediverse.observer,实查规模自行评估);
- 聊天功能缺失:0.9.0.0 起无站内即时通讯。
6.3 选型判断
把它当作「隐私导向的自托管社交网络」而不是「Mastodon 替代品」:如果你的目标是接入 Fediverse 流量大盘,选 Mastodon;如果你的目标是给一个明确的小群体提供数据完全自主、可见性精细可控的社交空间,diaspora* 的 aspects 模型与邀请制 pod 形态至今仍是 Fediverse 里最贴合的方案之一。
七、量化选型对比
对比对象为三款可自托管的联邦社交服务器。所有数据为 2026-11-02 联网实查:版本与日期取各自 GitHub Releases(releases/latest API / releases.atom),语言取 GitHub 仓库 API language 字段,协议取各自 README/仓库描述原文。
| 维度 | diaspora* | Mastodon | Friendica |
|---|---|---|---|
| 最新稳定版 | 0.9.1.0(2026-04-07) | v4.7.4(2026-10-29) | 2026.05(2026-05-20) |
| 发布节奏 | 大版本间隔约 22 个月,维护线活跃 | 高频,4.6.x 维护线持续发版(v4.6.10) | 日历版本号,约每月一个稳定线 |
| 主语言 | Ruby(Rails 6.1 + Puma + Sidekiq) | Ruby(GitHub API 语言标签) | PHP(GitHub API 语言标签) |
| 联邦协议 | diaspora* 自有协议(WebFinger+hCard+Salmon+Atom) | ActivityPub(README 原文 based on ActivityPub) | 多协议通信平台(仓库描述 Friendica Communications Platform) |
| 产品形态 | 隐私导向社交网络,aspects 细粒度共享 | 微博客社区(仓库描述 globally interconnected microblogging community) | 社交网络聚合/跨平台桥接 |
| 官方开放 API 文档 | diaspora.github.io/api-documentation(0.9 起官方支持) | 有(Mastodon 官方文档站) | 以兼容 Mastodon 客户端生态为主 |
| 官方生产容器镜像 | 无(dev 镜像明示仅开发) | 社区镜像为主,官方推荐源码/容器编排 | 官方提供 Docker 部署文档 |
注:akkoma 亦属同类组件,但其 GitHub 仓库 akkoma-garden/akkoma 的 releases.atom 实查为空(查询 2026-11-02),无法取得 GitHub 侧稳定发布物,故未纳入上表;其主开发仓库已迁至自建基础设施,版本实查需另行访问其 Forgejo 实例。
结论速读:追流量与生态选 Mastodon;要跨协议桥接选 Friendica;要数据主权 + 小圈子精细隐私选 diaspora*。三者不互斥,同机并存亦常见(注意端口与资源隔离)。
八、参考链接
以下来源均于 2026-11-02 联网实查:
- diaspora* 官网:https://diasporafoundation.org/
- 源码仓库与 Releases(版本/日期):https://github.com/diaspora/diaspora
- Changelog(0.9.0.0 / 0.9.1.0 变更):https://github.com/diaspora/diaspora/blob/main/Changelog.md
- README(定位语与官方链接):https://github.com/diaspora/diaspora/blob/main/README.md
- 官方 wiki(安装/选 pod/FAQ):https://wiki.diasporafoundation.org/Installation
- 官方文档源仓库 north-star(dev 镜像不可生产):https://github.com/diaspora/north-star
- 官方 API 文档:https://diaspora.github.io/api-documentation/
- 联邦协议库:https://github.com/diaspora/diaspora_federation
- 开放 pod 列表:https://diaspora.fediverse.observer
- Mastodon 仓库(对比数据):https://github.com/mastodon/mastodon
- Friendica 仓库(对比数据):https://github.com/friendica/friendica
- akkoma GitHub 仓库(releases.atom 为空的实查对象):https://github.com/akkoma-garden/akkoma