GoToSocial项目裸金属服务器部署指南

GoToSocial项目裸金属服务器部署指南

gotosocial Fast, fun, ActivityPub server, powered by Go. gotosocial 项目地址: https://gitcode.com/gh_mirrors/go/gotosocial

前言

GoToSocial是一个轻量级的ActivityPub社交网络服务器,采用Go语言编写。本文将详细介绍如何在裸金属服务器上部署GoToSocial服务,适合希望完全掌控服务器环境的用户。

环境准备

创建目录结构

首先需要为GoToSocial创建必要的目录结构,建议按照以下层次组织:

.
└── gotosocial
    └── storage
        └── certs

使用以下命令一键创建:

mkdir -p /gotosocial/storage/certs

如果当前用户没有root权限,可以将路径改为用户主目录下,如~/gotosocial

获取发布版本

下载二进制文件

  1. 进入刚创建的目录:
cd /gotosocial
  1. 下载对应操作系统和架构的最新发布版本。例如64位Linux系统:
GTS_VERSION=X.Y.Z  # 替换为实际版本号
GTS_TARGET=linux_amd64
wget https://[下载地址]/gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz
  1. 解压下载的文件:
tar -xzf gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz

解压后会得到以下内容:

  • gotosocial可执行文件
  • web目录(包含前端资源)
  • example目录(包含示例配置文件)

配置服务

编辑配置文件

  1. 基于示例配置文件创建自定义配置:
cp example/config.yaml config.yaml
  1. 修改关键配置项:
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服务

  1. 复制示例服务文件:
sudo cp example/gotosocial.service /etc/systemd/system/
  1. 编辑服务文件,主要确认:
  • ExecStartWorkingDirectory路径正确
  • 如需绑定80/443端口,取消AmbientCapabilities=CAP_NET_BIND_SERVICE的注释
  1. 启用并启动服务:
sudo systemctl enable --now gotosocial.service

进阶配置

反向代理(可选)

虽然GoToSocial可以直接运行,但在生产环境中建议使用反向代理,如Nginx或Caddy,可以提供:

  • 更好的性能
  • 额外的安全层
  • 多服务共存能力

反向代理的具体配置可参考项目文档中的相关章节。

常见问题

  1. 证书申请失败:检查域名解析是否正确,确保80/443端口可被外部访问
  2. 服务无法启动:检查日志journalctl -u gotosocial.service -f
  3. 性能问题:考虑迁移到PostgreSQL数据库

总结

本文详细介绍了GoToSocial在裸金属服务器上的部署流程,从环境准备到服务配置,再到系统服务化和可选的反向代理设置。按照这些步骤,您可以快速搭建一个属于自己的ActivityPub社交网络实例。

部署完成后,建议定期检查更新,以获取最新的功能和安全补丁。同时,根据实际使用情况调整配置参数,以获得最佳性能和用户体验。

gotosocial Fast, fun, ActivityPub server, powered by Go. gotosocial 项目地址: https://gitcode.com/gh_mirrors/go/gotosocial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屈皎童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值