Tag: fediverse

  • Mastodon: 将媒体文件存放在本地(docker 版)

    本攻略适用于—— 这个搭配虽然不多见,但其实用起来满爽的。很多人用的 s3 服务都是在薅羊毛,而 mastodon 那个变态的,把别人家的媒体文件缓存到自家的架构,流量的吞吐其实很大的(开了 relay 就更夸张),薅羊毛时很容易就超出了。反而是 vps 本身的流量上限很高。对于个人建站而言,媒体文件总量通常 <50GB,某些 vps 自带 200GB 硬盘,足够用了。 缺点是,除了数据库定期备份外,也要考虑媒体文件的异地备份问题。但其实只需要备份存储本地附件的 media_attachments,而 cache 是不需要备份的,所以工作量也不大。 两年前我把媒体文件转移到本地时,参照了 antisocial science 的设置。但因为我用 docker,官方默认的设置,docker 内外权限不一致,无法将媒体文件写到本地。于是匆匆又在本地建了个 minio s3 来中转……这样其实很浪费资源了,minio 的开销也不小。所以最近趁着搬家,又试了一下,终于把 docker + 本地存储 跑通了。 1. 在 docker-compose.yml 里, web 和 sidekiq 容器中,已经预设了媒体文件的卷映射 这个不用动。——也可以改成其它的路径,但要和后面的设置一致(本文用相同的颜色标明)。 2. 修改 .env.production PAPERCLIP_ROOT_URL 是服务器的所有媒体文件链接的子文件夹名称,形如: 默认值是 /system;但是建议改成独特一些的名字,而且建议和 S3_BUCKET 一致。以后需要在本地存储和 s3 之间转换时,可以省一点心。(所以要独特一些,防止回头在 s3 上和别人撞名)…

  • Fediverse: 是否要自建实例?

    之前和人聊到,自建 fediverse 实例时,和在其它实例做注册用户相比,一些不同的体验。然后发现,谈到的许多东西,对于没有自建经历的网友,还是很新鲜的。所以索性在这里列出来,让大家了解一下。 自建实例的优点 1. (可能)更好的稳定性 是的,自建并不是「不稳定」的代名词;恰恰相反,如果技术能力达标,个人实例因为开销相对较少,稳定性反而比很多中小型实例要高。即使我完全有能力,担任几百名用户的实例管理员;和维护一个我自己用的实例相比,我也是对后者的稳定性更有信心的。 而另一方面,现有实例的站长们,也未必都是很靠谱的。他们会因为各种技术、非技术、甚至搞笑的原因,导致站点无法访问。常见例子包括: 目前 fediverse 更换一次账号,还是满麻烦的;也并没有旧帐号数据的导入功能。所以,如果想要让自己的账号,长久地存在下去,自建可能是更好的选择。 以及,自建实例有更好的安全性。——像 fediverse 这类的程序,暴露出的系统漏洞,其中相当大一部分,都是通过「站内用户的恶意攻击」来触发的(譬如上传会包含代码的媒体文件)。如果这个站点只有你自己在使用,那么,这类漏洞,对你来说是无关紧要的。 2. 更好的隐私控制 之前写过一篇《Fediverse 站长都能看到什么?》。普通用户的很多未公开信息,对于所在实例的站长,技术上都是可见的。如果你在这些隐私方面有所顾虑,或者打算把 fediverse 账号当成私密日记来用,那么,自己建站,信息被不相干的人看到的可能性,会更少一些。 3. 管理自己的全部数据 现有的 fediverse 服务程序,为普通用户提供了数据导出功能,但导出的数据内容很有限。譬如 mastodon 导出的数据中,包括: 但并不包括: 其它程序的数据导出,也都大同小异(twitter 也差不多);有的甚至会更少,譬如支持和 fedi 账号互 fo 的,图书管理程序 bookwyrm,用户能导出的,只能用惨烈来形容(只有书的链接;没有书的标题和简介!没有你的书评!)。如果你希望未来也能够看到这些自己交互过的信息,而不是随着网站的消失而听天由命,那么,可能一开始就选择自建比较好。 另外,mastodon 的搜索功能,做的很差劲的(尤其是中文)。elastic search 的开销极其巨大,效果也不好。虽然我也很少用搜索功能,但一旦真的有什么信息,需要精确查找,直接在自己建的站里用 SQL 搜索数据库,要舒适很多。 4. 更少的站内约束 很多 fediverse 实例,是有其内部的聊天「氛围」的。一些和氛围不合拍的发言,可能会遭到实例其它用户的抵制,甚至举报。很多时候,这样的分歧可能无关对错,但多少会对发言者产生困扰和拘束。又或者,站长决定,或者通过「民主表决」的方式,让全站屏蔽了某个实例,而你可能并不希望这样。如果是自建的话,做自己的站长,这样的约束可能会少一些。——虽然偶尔还是会看到一些来自外站的举报,但跨站举报本来就没有相应的处理和交互机制,无视就可以了。以及,我并不是指,自建站就可以肆无忌惮地发色情或者仇恨言论,那可能会让你的整个站点,被其它实例屏蔽的。 5. 使用自己的个性域名作为账号 这样看起来比较酷。但也仅仅是比较酷而已。 6. 免翻墙 随着 fediverse 逐渐进入某国审查机构的视野,那些几百甚至几十人的实例,未来被封杀的可能性也会急剧增加。相对来说,用个人域名在海外服务器搭建的,个人使用的实例,短期内被封的可能性,还不是很大。自建站的用户不必翻墙,就可以直接通过自己的实例,访问到其它被封实例的内容。——当然,翻墙属于必备技能,所以这也算不上是多大的优点。 自建实例的缺点…

  • Fediverse: 你的站长都能看到什么?

    当你注册成为某个 fediverse 实例(mastodon pleroma misskey …)的用户时,你所在的实例,可能是几十万用户的大站,站长离你遥不可及;也可能是几十个甚至几个用户的小站,站长和你关系密切,每天一起聊天玩耍。但无论是哪种,你的站长,都能看到和你有关的哪些内容呢?我觉得这是你应该知道的。 首先,所有人都能看到的: 然后,是你能看到,其它用户看不到,而且你可能也不希望别人看到的: 最后,是你作为普通用户也看不到,但你的站长能看到的: 还有哪些?欢迎大家补充~ P.S.

  • 锁嘟机制

    就像 twitter 的文章被称为「tweet」,mastodon 的文章被称为「嘟文 toot」。 虽然这篇在说 fediverse / mastodon,但目前的 twitter、sina……各种社交网络混乱的隐私设置,其实是一样的。 作为自建实例用户,每次我好奇点开一个,我还没有 follow 的用户时: 在我的界面里,看不到他的历史嘟文; 偶尔能看到几条,以前被我 fo 的人转发过的他的嘟文,才会被存储在我的服务器上; 他可能锁嘟; 他的个人页面(以及整个他的实例)可能只显示 10 条; 他的个人页面(以及整个他的实例)可能根本不许访问; 少数情况下,我已经被对方 block 了,但只有当我想 fo 他时,我才会从灰色的 follow 按钮上注意到这一点…… 我不知道,有什么便利的流程,来判断对方属于上述哪一种/几种情况;也不知道,面对每一种情况,我 是否被允许 如何去 了解一个人。我也不知道,采取了上述每一种措施的人,是否清楚,他在 和他相同的实例 和他不同的大实例 彼此 follow,有着模糊边界的共同好友圈 其它小实例 的人的眼里,有着怎样的可访问性。他希望打造一个什么样的社交网络架构,以及他的这些选择,最终是否能够如他所愿。 这不是在指责具体的人。我知道,有很多人,对这套复杂的体系,比我更熟悉,更习惯去应对。也知道,如果我往这个方向努力,也会应对的更自如一些(但不知道会进步到什么程度)。但现实中的结局是,fediverse,就像没什么人来看的 blog 一样,渐渐被我当作一个,纯表述的平台。别人如何看到我,如何来交互,对我而言,变成了一个不清楚机制、雾里看花的过程。对这方面的期待,也就渐渐减弱了。 于是,虽然我也会去 follow 别人,去 re 去聊天去点赞。但这些行为对我都是不成体系的。很多人我不知道要不要去 follow,聊天时也不知道什么时候要用一个点赞,或者什么都不用,就可以突兀地结束话题。更不用说,在预设别人掌握了这套体系,以及预设别人预设我掌握了这套体系,的基础上,通过彼此的操作方式而不是内容,来判定对方的态度。——扯远了,这些已经和 fediverse 机制关系不大了,我在实体社交中也不会去折腾这些(而且我对实体社交的潜规则也是雾里看花,不去弄明白)。这篇只是例行吐槽网站隐私机制而已。

  • WordPress 的 ActivityPub 插件

    试用一下 WordPress 的 ActivityPub 插件(官网 / Github)。 主要功能,就是在 wordpress 上,建一个 Fediverse 账号,Mastodon / Pleroma / Misskey / Honk……的用户可以 follow 这个账号。新的 blog 文章发布时,这个账号会发一条嘟文,大家可以转发这条嘟文。followers 对这条嘟文的回复,会自动同步到 blog 文章的评论区。 就像我为这个 blog 建的 fedi 账号:@[email protected] 需要指出的是,并不存在 blog.fivest.one 这样一个 fediverse 实例。陌生人搜索这个账号,看不到任何历史嘟文;这个账号不能去 follow 别人,不能对别人说话,不能回复别人对自己嘟文的回复,也不能看到多少人转发点赞了自己的嘟文。——这些功能也许以后会有,但目前,这个插件所做的,只是在新 blog 发布的那一刻,向所有 follow 这个 id 的账号,push 一条嘟文。这条嘟文,在 blog 服务器上,并没有保存;而只存在于 follow 它的那些实例上,再被人转发到更多实例。 当 blog 的文章被删除时,这个插件也会通知所有的 followers,从他们的实例上删除对应的嘟文。但是就像我说过的,这个机制并不能把那些,被转发到其它实例的嘟文,也一起删除。所以,当你在 blog 按下发布按钮的一刹那,带着你所写的全部内容(或者摘要,可设置)的嘟文,就可能会永远飘在 fediverse…

  • 关于 fediverse 的删除机制

    在当前的很多 fediverse 服务(mastodon、pleroma…)里,当 A 站的用户 a 被另一个实例(譬如:B 站)的用户关注时,他所发的嘟文,会在 B 站的服务器上储存一个副本,B 站的用户,通过访问这个副本,来阅读这条嘟文。当原本的嘟文被删除时,A 站会通知 B 站,删除相应的副本。但这个时候,这条嘟文未必像人们期待的那样,从 fediverse 上彻底消失。 假设存在如下情况: A 站的 a 用户 B 站的 b 用户,b 在关注 a C 站的 c 用户,c 在关注 b,但 C 站没有人关注 a a 发了一条公开嘟文,此时 b 可以看到这条嘟文,而 c 是看不到的。 b 转发了 a 的这条嘟文,此时 c 可以看到这条嘟文了。C 站的所有人,在查询 a 的时候,也都可以看到 a 的这条嘟文。 如果这个时候,a 再把这条嘟文删除,那么…