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

 1天前     35  

文章目录

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

    版权声明:段先森 发表于 1天前,共 3519 字。
    转载请注明:宝塔面板部署GoToSocial实例全流程指南 | 三无青年

    您可能感兴趣的

    2 条评论

    • ACEVS( VIP 3 )

      日本
      回复

      好的我去关注。
      最近感觉星球移民变多了。

    • 刘郎( VIP 1 )

      中国贵州
      回复

      有点类似朋友圈😳