热爱生活,重新开始

宝塔面板部署GoToSocial实例全流程指南

一、GoToSocial 项目简介

GoToSocial 是一款基于 ActivityPub 协议  的轻量级联邦社交网络服务器,支持去中心化内容分享,强调用户隐私与数据自主。通过本教程,你将在宝塔面板环境中完成以下目标:

  • 搭建独立社交网络实例
  • 配置 HTTPS 访问与反向代理
  • 创建管理员账户并管理普通用户
  • 实现数据持久化与定期备份

二、服务器与宝塔初始化

1. 基础设施准备

 服务器选型

  • 推荐配置:2核4GB内存 + 20GB存储(阿里云/腾讯云轻量服务器)
  • 操作系统:Ubuntu 22.04 LTS(兼容性最佳)
  • 防火墙开放端口:22(SSH)、80(HTTP)、443(HTTPS)、8080(GoToSocial服务)

域名解析

注册域名(如 social.example.com),在域名服务商处添加 A记录指向服务器IP,等待解析生效(约10分钟)。

2. 宝塔面板安装

登录服务器终端,执行以下命令:

sudo apt update && sudo apt install -y wget  
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh  
sudo bash install.sh

安装完成后,复制宝塔登录链接(如 http://服务器IP:8888/xxx),使用生成的账号密码登录。

3. 安装必备组件

在宝塔「软件商店」依次安装:

  • Docker(容器化运行环境)
  • Docker Compose(容器编排工具)
  • Nginx(反向代理服务器)

三、项目目录与权限配置

1. 创建专用数据目录

在宝塔「终端」执行:

mkdir -p /opt/gotosocial/data  # 创建项目数据目录  
chown -R 1000:1000 /opt/gotosocial/data  # 匹配容器默认用户权限

原理:GoToSocial 容器默认以用户 1000 运行,需确保宿主目录所有者为相同 UID/GID,避免权限错误。

2. 下载 Docker Compose 模板

cd /opt/gotosocial  
wget https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yml -O docker-compose.yaml

若下载失败,手动从 [官方仓库]复制内容保存。

四、容器配置与启动

1. 编辑 docker-compose.yaml

在宝塔「文件」中打开  /opt/gotosocial/docker-compose.yaml ,修改以下关键参数:

services:  
  gotosocial:  
    image: docker.io/superseriousbusiness/gotosocial:latest  
    environment:  
      GTS_HOST: social.example.com  # 替换为你的域名  
      TZ: Asia/Shanghai  
      GTS_LETSENCRYPT_ENABLE: false  # 关闭容器内HTTPS,由宝塔处理  
    ports:  
      - "127.0.0.1:9090:8080"  # 仅本地监听,通过Nginx反代到公网  
    volumes:  
      - /opt/gotosocial/data:/gotosocial/storage

2. 启动容器

cd /opt/gotosocial  
docker-compose up -d  # 后台启动容器(首次拉取镜像需等待2-3分钟)

验证状态:执行  docker ps ,若显示 127.0.0.1:9090->8080/tcp 且状态为 Up ,表示启动成功。

五、宝塔反向代理与 HTTPS 配置

1. 创建站点并申请 SSL 证书

步骤1:添加站点

在宝塔「网站」→「添加站点」中填写:

  • 域名:social.example.com
  • 数据库:不创建(GoToSocial 使用内置数据库)

步骤2:申请证书

进入站点「SSL」→「Let's Encrypt」,勾选「强制HTTPS」和「HTTP/2」,点击「申请」生成证书。

2. 配置 Nginx 反向代理

在站点「设置」→「反向代理」中添加:

  • 目标URL:http://127.0.0.1:9090
  • 高级设置:勾选「终止SSL」,自动填充证书路径
  • 完整配置:
    location / {  
        proxy_pass http://127.0.0.1:9090;  
        proxy_set_header Host $host;  
        proxy_set_header X-Forwarded-Proto $scheme;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";  
        proxy_ssl_server_name on;  # 解决502错误关键配置  
    }

保存后 Nginx 自动重载配置。

3. 验证 HTTPS 访问

打开浏览器访问 https://social.example.com ,若显示登录页面且地址栏有锁图标,说明配置成功。若遇  502 Bad Gateway ,检查:

  1. 容器状态(docker ps
  2. 反向代理目标 URL 是否正确
  3. 宝塔防火墙是否放行 9090 端口

六、用户管理与权限配置

1. 查询容器 ID

docker ps -a  # 复制 CONTAINER ID(如 98999461e756)

2. 进入容器终端

docker exec -it 98999461e756 /bin/sh  # 替换为实际容器 ID

3. 创建管理员账户

./gotosocial --config-path /gotosocial/config.yaml admin account create \  
    --username admin_user \  
    --email admin@example.com \  
    --password 'Strong!Pass2025' \  
    --local-only  # 创建本地管理员账户(非联邦)

密码要求:至少10位,包含大小写字母、数字、符号(如 MyPass!@#2025)。

4. 提升普通用户为管理员

./gotosocial --config-path /gotosocial/config.yaml admin account promote --username demo_user

验证方法:使用该账户登录后访问 /_admin ,若显示后台则提权成功。

5. 删除用户(不可逆操作)

./gotosocial --config-path /gotosocial/config.yaml admin account delete --username demo_user

七、常见问题与解决

问题1:容器启动失败

排查步骤:

  1. 检查数据目录权限:ls -ld /opt/gotosocial/data
  2.  查看容器日志:docker logs gotosocial
  3. 确保 GTS_HOST 与域名完全一致

问题2:HTTPS 页面显示不安全

解决方法:

  1. 在宝塔「SSL」中重新申请证书
  2. 清除浏览器缓存,使用无痕模式访问

问题3:用户创建失败(邮箱已存在)

处理流程:

  1. 进入容器:docker exec -it 容器ID /bin/sh
  2. 列出所有用户:./gotosocial admin account list
  3. 删除冲突账户:./gotosocial admin account delete --username 冲突用户名

八、后续维护与升级

1. 数据备份

在宝塔「计划任务」中添加每周备份:

任务类型:Shell脚本  
命令:docker exec gotosocial tar czvf /gotosocial/storage/backup_$(date +\%Y\%m\%d).tar.gz /gotosocial/storage  
执行周期:每周日0点

2. 版本升级

cd /opt/gotosocial  
docker-compose pull  # 拉取最新镜像  
docker-compose down --remove-orphans  
docker-compose up -d  # 启动新版本

3. 开放公共注册

登录管理员后台 →「设置」→「注册」,勾选「允许新用户注册」,可选开启邀请码或邮箱域名限制。

九、成功标志

  1. 浏览器访问 https://你的域名 显示登录页面,地址栏有锁图标。
  2. 管理员账户可登录后台,查看实例统计信息。
  3. 通过 [Fediverse 实例检测工具]验证联邦通信功能正常。

通过本教程,你已完成从服务器初始化到用户管理的全流程操作,可根据实际需求扩展功能(如邮件通知、存储扩展)。部署过程中遇到问题时,建议对照步骤逐一排查,或参考 [GoToSocial 官方文档]获取更多细节。

参考:博友阿均的教程文档

我的gotosocial实例:段先森, @duanxiansen@duanbo.cc

评论

《 “宝塔面板部署GoToSocial实例全流程指南” 》 有 24 条评论

    1. 段先森 的头像

      不多,很小,这会儿没在电脑跟前(家里电脑没有数据)

    1. 段先森 的头像

      我好像快没兴趣了

    1. 段先森 的头像

      其实也没啥用,就是纯折腾

    1. 段先森 的头像

      那就快来吧,嘿嘿

  1. 冰剑 的头像

    最近看到GoToSocial的频率还挺高的,相比Mastodon,步骤上面确实省事很多。

    1. 段先森 的头像

      省事儿,细研究起来比长毛象麻烦

    1. 段先森 的头像

      哈哈,长毛象有点儿费空间

    1. 段先森 的头像

      确实,群里这段时间一阵折腾

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注