普通视图

发现新文章,点击刷新页面。
昨天以前首页

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

2025年5月15日 23:38

一、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

❌
❌