網路受限下部署Fediverse實例GoToSocial

網路受限下部署Fediverse實例GoToSocial

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

这篇文章介绍了如何使用GoToSocial部署一个ActivityPub社交网络服务器。首先,需要部署Clash容器作为跳板,然后使用Cloudflare Tunnel将GoToSocial实例暴露在公共网络上。接下来,文章详细介绍了如何安装docker和部署Clash,以及如何部署GoToSocial和Cloudflare Tunnel。最后,文章提到了一些用户设置和使用GoToSocial的方法。

🔎

延伸解读

网络受限下的部署思路

文章针对无法直接访问联邦宇宙且缺乏公网IP的环境,提出用Clash容器作跳板建立连接,再通过Cloudflare Tunnel将本地GoToSocial实例暴露到公网。这种组合绕开了对公网IP的依赖,但前提是能运行Docker并配置好macvlan网络,同时需要有一个可托管在Cloudflare的域名。

GoToSocial的轻量优势与适用场景

GoToSocial用Golang编写,资源需求低,作者在香橙派3B上以Docker部署,说明它适合单板机或低功耗设备。对于想自托管社交节点又不想投入高配置硬件的用户,这是一个可考虑的选项。但文章也指出其用户管理界面不完善,日常管理需依赖命令行。

部署中的关键配置与风险点

配置config.yaml时需设置allow-ips限制访问来源,启动容器时通过HTTP_PROXY和HTTPS_PROXY指向Clash的socks5地址,让GoToSocial的出站流量走代理。Cloudflare Tunnel的token需严格保密,否则服务可能被劫持。此外,GoToSocial未启用Let's Encrypt,HTTPS由Cloudflare Tunnel终止。

用户管理与客户端使用现状

目前GoToSocial没有完善的网页用户管理界面,创建用户、提升或降级管理员、修改密码都需通过docker exec执行命令行。内容发布与浏览也需借助兼容Mastodon的客户端,官方暂无独立网页界面。这意味着日常使用依赖第三方客户端,管理操作对不熟悉命令行的用户有一定门槛。

❓

Q&A

GoToSocial 是什么?它有什么特点?

GoToSocial 是一个使用 Golang 编写的 ActivityPub 社交网络服务器。它的特点是资源需求低,单板机足以运行,且开发者较为活跃。

在网路受限的环境下,如何让 GoToSocial 实例接入联邦宇宙?

需要先部署 Clash 容器作为跳板,建立与联邦宇宙的连接;同时使用 Cloudflare Tunnel 将 GoToSocial 实例暴露在公共网络上,因为无法获得公网 IP。

部署 Clash 容器的具体步骤是什么?

首先安装 Docker(可指定阿里云镜像源),然后创建 macvlan 网络,最后运行 Clash 容器并连接到该网络,配置代理文件。

如何部署 GoToSocial?需要修改哪些配置?

下载 GoToSocial 的 config.yaml,修改 allow-ips 为服务器内网 IP,然后将配置文件拷贝到指定目录,运行 Docker 命令部署,设置环境变量如 GTS_HOST、GTS_DB_TYPE 等,并配置代理。

如何设置 Cloudflare Tunnel 将 GoToSocial 暴露到公网?

注册 Cloudflare Zero Trust(免费套餐),创建隧道,获取 token,运行 cloudflared 容器,然后在隧道配置中添加公开服务,填写子域名、域名、类型为 HTTP,URL 指向 GoToSocial 的内网 IP 和端口。

GoToSocial 如何管理用户?有哪些命令行操作?

GoToSocial 目前没有完善的用户管理界面,需使用命令行。可以创建用户(admin account create)、提升为管理员(promote)、降级为普通用户(demote)、修改密码(password)。

GoToSocial 有网页界面吗?如何发布和浏览内容?

GoToSocial 目前没有网页界面来发布和浏览内容,但兼容 Mastodon 的客户端,可以使用这些客户端进行内容发布与浏览。

➡️

继续阅读