GoToSocial项目裸金属服务器部署指南
前言
GoToSocial是一个轻量级的ActivityPub社交网络服务器,采用Go语言编写。本文将详细介绍如何在裸金属服务器上部署GoToSocial服务,适合希望完全掌控服务器环境的用户。
环境准备
创建目录结构
首先需要为GoToSocial创建必要的目录结构,建议按照以下层次组织:
.
└── gotosocial
└── storage
└── certs
使用以下命令一键创建:
mkdir -p /gotosocial/storage/certs
如果当前用户没有root权限,可以将路径改为用户主目录下,如~/gotosocial
。
获取发布版本
下载二进制文件
- 进入刚创建的目录:
cd /gotosocial
- 下载对应操作系统和架构的最新发布版本。例如64位Linux系统:
GTS_VERSION=X.Y.Z # 替换为实际版本号
GTS_TARGET=linux_amd64
wget https://[下载地址]/gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz
- 解压下载的文件:
tar -xzf gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz
解压后会得到以下内容:
gotosocial
可执行文件web
目录(包含前端资源)example
目录(包含示例配置文件)
配置服务
编辑配置文件
- 基于示例配置文件创建自定义配置:
cp example/config.yaml config.yaml
- 修改关键配置项:
host: "example.org" # 你的域名
port: 443
storage-local-base-path: "/gotosocial/storage"
letsencrypt-enabled: true
letsencrypt-cert-dir: "/gotosocial/storage/certs"
可选配置项
可根据需要调整以下参数:
instance-languages
: 设置实例的默认语言media-remote-cache-days
: 远程媒体缓存天数smtp-*
系列参数: 邮件服务器配置
启动服务
首次运行
使用以下命令启动服务:
./gotosocial --config-path ./config.yaml server start
首次启动时,Let's Encrypt证书申请可能需要1-2分钟,请耐心等待。
创建管理员账户
服务启动后,需要创建第一个管理员账户:
./gotosocial --config-path ./config.yaml admin account create \
--username yourusername \
--email youremail@example.org \
--password "yourpassword"
然后提升为管理员权限:
./gotosocial --config-path ./config.yaml admin account promote --username yourusername
系统服务化
创建专用用户
为安全考虑,建议创建专用用户运行服务:
sudo useradd -r gotosocial
sudo groupadd gotosocial
sudo usermod -a -G gotosocial gotosocial
sudo chown -R gotosocial:gotosocial /gotosocial
配置systemd服务
- 复制示例服务文件:
sudo cp example/gotosocial.service /etc/systemd/system/
- 编辑服务文件,主要确认:
ExecStart
和WorkingDirectory
路径正确- 如需绑定80/443端口,取消
AmbientCapabilities=CAP_NET_BIND_SERVICE
的注释
- 启用并启动服务:
sudo systemctl enable --now gotosocial.service
进阶配置
反向代理(可选)
虽然GoToSocial可以直接运行,但在生产环境中建议使用反向代理,如Nginx或Caddy,可以提供:
- 更好的性能
- 额外的安全层
- 多服务共存能力
反向代理的具体配置可参考项目文档中的相关章节。
常见问题
- 证书申请失败:检查域名解析是否正确,确保80/443端口可被外部访问
- 服务无法启动:检查日志
journalctl -u gotosocial.service -f
- 性能问题:考虑迁移到PostgreSQL数据库
总结
本文详细介绍了GoToSocial在裸金属服务器上的部署流程,从环境准备到服务配置,再到系统服务化和可选的反向代理设置。按照这些步骤,您可以快速搭建一个属于自己的ActivityPub社交网络实例。
部署完成后,建议定期检查更新,以获取最新的功能和安全补丁。同时,根据实际使用情况调整配置参数,以获得最佳性能和用户体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考