你是否对社交网络平台内容审查不满?你是否担心自己辛辛苦苦写的内容被网站管理员删除?你是否担心自己用了很多年的网站被收购之后变成自己不喜欢的样子?加入 Fediverse 联邦宇宙吧!搭建你自己的社交平台,制定自己的规则,与联邦宇宙里的其他人互动!

一、什么是 Fediverse 联邦宇宙?

传统的社交网络平台,往往是由大公司运营,用户在网站上注册账号之后发表内容。同一网站里的不同用户之间可以交流,但是不同网站之间的用户却不行。比如 Twitter、饭否和新浪微博,虽然定位都是「微博客(microblog)」,但三个网站由不同公司运营,用户之间无法互相交流。

但有些系统不是这样运作的,比如银行转账。一家位于冰岛的银行 A 和一家位于阿根廷的银行 B 虽然相隔万里,但是 A 银行的用户可以方便地和 B 银行的用户之间转账。这是因为全世界大部分银行都使用了 SWIFT 组织规定的协议,因此没有交流障碍。

网络世界有没有这样的例子呢?当然有,比如电子邮件。一位美国的 Gmail 邮箱用户为什么能和一位澳大利亚的 FastMail 邮箱用户互相发邮件?因为 Gmail 和 FastMail 都使用 SMTP 这种协议,因此也没有交流障碍。

一般地,我们把这种不同组织/站点之间互通有无的形式叫做 federation(联邦)。Fediverse 是 federation + universe 的造词,一般译为联邦宇宙,即是由各种社交网络站点组成的一个允许不同站点上的用户之间互相交流的联邦。

Fediverse 里的站点有多种类别,有博客、微博客、交友平台、照片分享平台、视频分享平台等,这些平台皆使用 ActivityPub 这一协议进行通讯。本文主要介绍我最常用的一种形式——微博客。

更新:TumblrWordPress 也将成为 Fediverse 的一部分。

二、Fediverse 的优势与劣势

Fediverse 最大的优势是内容自由和数据自由。

内容自由在于自由地发表自己想发表的内容。使用大公司运营的网站,就要遵守大公司制定的规矩。即使你不喜欢这些规矩,你也不得不遵守,否则你发布的内容甚至你的账号可能会被删除。而 Fediverse 里的选择很多,成千上万个 Fediverse 站点里,总有合你口味的站点。如果你的意见真的很小众,你甚至可以自己建站,发表任何自己想要的内容(当然依然受限于服务器所在国的法律)。这听起来有点混乱,但 Fediverse 里的站点是可以屏蔽别的站点的(有点像断交?),那些不违法但不受欢迎的内容,即使自由地发表在自己的站点上了,最终也会被 Fediverse 里别的站点屏蔽,成为一台孤芳自赏的独角戏。

数据自由主要体现在迁移成本上。当你曾经喜爱的站点虽然没有倒闭但是变质了,你该怎么办?如果是 Fediverse 站点的话,换一个就行了!由于 Fediverse 站点之间协议互通,你换到一家别的站点上,你「搬家」之后依然可以和你原来的好友互动。并且 Fediverse 开源软件的特性也决定了它的数据导出较大公司的那些闭源网站更为方便。

Fediverse 也不是没有缺点。我觉得最基础的问题在于网络大小和节点大小之间的平衡。如果 Fediverse 的站点过少,那大部分用户都会集中在少量几个站点上,这些站点甚至也是由商业公司在背后驱动的,最终发展成类似于传统站点一样的寡头现象。如果 Fediverse 的用户少而站点多,每个站点的用户都不多,那可能会导致小站的站长因为成本和精力等原因不愿意再升级维护服务器,导致该站点的用户体验变差,甚至最终关站。

但我相信,随着近期某些事件的发生,Fediverse 的前景会越来越好。

三、风雨飘摇的 Twitter

Fediverse 存在了挺多年了,但是我一直没加入过。近期发生的关于 Twitter 的新闻终于催着我调研并搭建了自己的 Feidverse 站点。

我是一名 Twitter 重度用户。十几年来我一直挺喜欢这个平台,也在上面认识了很多朋友。但最近几年,Twitter 逐渐变成了我不喜欢的样子。从对 API 的严格限制,到各种莫名奇妙的功能,无不展现出 Twitter 管理层急于变现而把产品胡搞一通的丑态。前段时间,Elon Musk 完成了对 Twitter 的收购,这只自由的蓝色小鸟,最终成为了世界首富的笼中之物。Elon Musk 收购 Twitter 之后立刻开除了整个管理层和大部分员工,任命自己为 CEO,然后开始对 Twitter 进行肆意妄为的改造。

一个复杂的系统是慢慢崩坏的。看着 Elon Musk 把 Twitter 的元老员工一个个开除,我不由地担心起这个网站的未来。这便是我加入 Fediverse 的契机。事实上,Elon Musk 这一波操作的每一个时间点,都为 Fediverse 带来了大量新用户

四、Mastodon 与 Pleroma

大部分 Twitter 逃难者选择的 Fediverse 安身处是 Mastodon,一个诞生于 2016 年的类似 Twitter 的 Fediverse 软件(Twitter 是 2006 年诞生的)。Mastodon 也是目前站点数量和用户数量最多的 Fediverse 平台。截止 2022-11,整个 Fediverse 里有超过 8000 个 Mastodon 站点,总计 260 万用户

更新:由于 Elon Musk 的一系列操作,Fediverse 的用户数量增加飞快。截至 2022-12-18,根据 instances.social 爬虫的统计,Fediverse 里已经有 1.6 万个站点和 682 万用户。

出于作为一个 System Reboot Engineer 的自尊,我自然想要自建一个 Fediverse 站点而不是加入一个别人搭建的。我初始的选择也是名气最大的 Mastodon。但我很快发现,Mastodon 对我的应用场景(个人自用)来说实在是太重了(不愧是象)。我在一台 1 GB RAM 的机器上把它所需的 Ruby on Rails 和 Sidekiq 跑起来,就已经把 RAM 快撑爆了,再运行一个 streaming 所需要的 Node.js,我的终端突然就卡住了!原来是 OOM 把 Mosh 进程给挤死了。

所幸我发现了另一个 Twitter-like Fediverse 软件叫 Pleroma。Pleroma 和 Mastodon 同年诞生,但轻量很多。Pleroma 用 Elixir 写成,不依赖 Redis 和 Sidekiq,也不需要再跑一个 Node.js,后端只有本体和 PostgresSQL 两个组成部分。从架构上来看,Pleroma 是前后端分离的设计,它的网页(PleromaFE)只是个 SPA,可以很方便地换成别的前端,让它看起来长得跟 Mastodon 或 Twitter 一样。

和别的搭建 Mastodon 的站长交流之后,我更是发现,Mastodon 是会把 Fediverse 里别的站点的媒体文件全部缓存到本地的,磁盘空间对很多站长来说是个头疼的问题。Pleroma 则可以选择直接外链,或是通过自己的域名反代外部媒体,对磁盘空间没有要求。这也算是两者设计思路差异的体现之一吧。

五、搭建可长久维护的站点

在 Twitter 用户大量涌入 Fediverse 的这股浪潮中,许多 Fediverse 站点,尤其是 Mastodon 站点被建立起来。我观察到有的站长把站点搭建在 Oracle Cloud 的免费服务器上,有的把站点搭建在自己家的 Raspberry Pi 上。诚然,无论是 Mastodon 还是 Pleroma 都有 Docker 镜像,一条 docker run 命令就可以把站点跑起来,但作为一个 System Reboot Engineer 的自尊不允许我这么这么随意地运行一个站点。我非常重视数据的长久保存,想要尽自己所能对抗 link rot。虽然我搭建 Fediverse 并不打算开放给很多人用,但我也希望它能够尽可能少地宕机并长久存在,至少像本博客一样存续十年以上。作为一个十年大计,我希望这个站点的一切都走正规路线。

我一直很喜欢像 WikipediaArch Linux 那样把网站的所有运维配置全部公开的做法。这样做可以督促自己把搭建站点的每一步都用代码的形式固定下来(IaC);更可以强制自己不要把密码等信息硬编码到文件里,写出更具可维护性的配置代码。我甚至可以利用 GitHub 的继承人功能,允许别人在我遭遇不测之后继续维护这个站点。

本着这样的理念,我注册了全新的域名(而不是用带个人色彩的域名),新建了全新的 AWS 账号和 GitHub Orgnization,在全新的代码仓库里编写 Terraform 和 Ansible 配置。

六、欢迎来到 Fediverse

读到这里,如果你已经心动的话,那就也来加入 Fediverse 吧!

如果你也想搭建一个 Pleroma 站点加入 Fediverse 的话,可以下载我的站点的 IaC 并替换域名,然后自己搭建。如果你没有像我那样无聊的 System Reboot Engineer 自尊的话,也可以考虑商业的托管实例。这个页面列出一些可以支付一定月租获得自己的 Mastodon 实例的提供商。

当然,你也可以选择加入现有的成千上万的 Fediverse 站点中的任何一个!由于近期的 Twitter 难民潮,不少站点都暂停了注册,但总有一些开放的,你可以根据自己的喜好加入一个仍接受新用户的站点。记住,无论你加入哪个 Fediverse 站点,你都可以和别的 Fediverse 用户通信!

如果你已经是 Twitter 用户,你可以使用 Movetodon 搜索你的 Twitter 好友在 Fediverse 里的用户名并一键关注。

Fediverse 的用户名和电子邮箱地址一样由两部分组成,形如 @alice@example.org。与 Twitter 只有一条 timeline 不同,Fediverse 里的时间线通常分为三条:

  • Home timeline:你 follow 的人发的内容
  • Local / public timeline:当前站点的所有人发的公开内容
  • Known network / federated timeline:与当前站点相连的所有站点的所有人发的公开内容

刚加入 Fediverse 时没有 follow 别人的话,你的 home timeline 自然是空的,这时候你只能看到当前站点和相连站点的陌生人的内容。由于不同站点的主要用户群体(语言和兴趣等)不同,选择一个志同道合的陌生人较多的站点,对于 Fediverse 新人来说尤为重要。对于不想自建的读者,我个人推荐加入 o3o.ca 这个站点,这是一个以简体中文用户为主的泛话题站点,使用 Mastodon 驱动,管理员全部位于中国大陆境外。

欢迎来 Fediverse 关注我!我在 Fediverse 的用户名是 @wzyboy@dabr.ca

本文地址: https://wzyboy.im/post/1486.html 。转载请注明出处。

2023-01-13 更新:写给 Twitter 用户的 Fediverse 指南


欢迎留下评论。评论前,请先阅读《隐私声明》。