一、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 ,检查:
- 容器状态(docker ps)
- 反向代理目标 URL 是否正确
- 宝塔防火墙是否放行 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:容器启动失败
排查步骤:
- 检查数据目录权限:ls -ld /opt/gotosocial/data
- 查看容器日志:docker logs gotosocial
- 确保 GTS_HOST 与域名完全一致
问题2:HTTPS 页面显示不安全
解决方法:
- 在宝塔「SSL」中重新申请证书
- 清除浏览器缓存,使用无痕模式访问
问题3:用户创建失败(邮箱已存在)
处理流程:
- 进入容器:docker exec -it 容器ID /bin/sh
- 列出所有用户:./gotosocial admin account list
- 删除冲突账户:./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. 开放公共注册
登录管理员后台 →「设置」→「注册」,勾选「允许新用户注册」,可选开启邀请码或邮箱域名限制。
九、成功标志
- 浏览器访问 https://你的域名 显示登录页面,地址栏有锁图标。
- 管理员账户可登录后台,查看实例统计信息。
- 通过 [Fediverse 实例检测工具]验证联邦通信功能正常。
通过本教程,你已完成从服务器初始化到用户管理的全流程操作,可根据实际需求扩展功能(如邮件通知、存储扩展)。部署过程中遇到问题时,建议对照步骤逐一排查,或参考 [GoToSocial 官方文档]获取更多细节。
参考:博友阿均的教程文档
我的gotosocial实例:段先森, @duanxiansen@duanbo.cc
ACEVS( VIP 3 )
日本好的我去关注。
最近感觉星球移民变多了。
刘郎( VIP 1 )
中国贵州有点类似朋友圈😳