分享 69 2

    Gotosocial 的分域部署

    AI摘要:DeepSeek AI摘要 DeepSeek
    Gotosocial 0.18.0版本新增了分域部署功能,通过Nginx重定向实现顶级域名与二级域名的分离。部署时需在首次启动前配置`docker-compose.yaml`,设置实例地址、账户域名、数据库类型、存储后端等参数,并确保可信代理和开放注册等功能的正确配置。

    我因为使用mastodon比较多,最近在与新关注的好友交流时发现他使用的GTS实例账号是顶级域名,访问时的网页地址却是二级域名,通过他我才知道GTS更新了很多有意思的功能

    在最新的0.18.0 版本中新增了可信代理 trusted-proxies

    跟我当时使用的版本相比,已经增加了许多功能

    譬如 开放了注册页面, 譬如 分域部署
    需要注意的是 这种部署布局的配置必须在第一次启动 GoToSocial 前完成。

    主要是通过重定向来实现.把原本请求到账户所属域名的流量转发到真实的实例地址上去.

    server {
      server_name ima.cm;                                                      # account-domain
    
      location /.well-known/webfinger {
        rewrite ^.*$ https://social.ima.cm/.well-known/webfinger permanent;    # host
      }
    
      location /.well-known/host-meta {
        rewrite ^.*$ https://social.ima.cm/.well-known/host-meta permanent;  # host
      }
    
      location /.well-known/nodeinfo {
        rewrite ^.*$ https://social.ima.cm/.well-known/nodeinfo permanent;   # host
      }
    }

    如此就需要部署一个新的GTS实例
    修改一下docker-compose.yaml中的配置

    services:
      gotosocial:
        image: superseriousbusiness/gotosocial:latest
        container_name: gotosocial
        user: 1000:1000
        networks:
          - gotosocial
        pull_policy: always  
        environment:
          GTS_HOST: social.ima.cm #实例地址
          GTS_ACCOUNT_DOMAIN: ima.cm #用户账户所属的域名
          GTS_DB_TYPE: sqlite #使用sqlite数据库
          GTS_DB_ADDRESS: /gotosocial/storage/sqlite.db
          GTS_STORAGE_BACKEND: s3 # 使用S3存储 ,如果不需要可以删除包含STORAGE的环境变量
          GTS_STORAGE_S3_BUCKET: user #桶名
          GTS_STORAGE_S3_ENDPOINT: s3.bitiful.net  #S3端点
          GTS_STORAGE_S3_ACCESS_KEY: kmX5VsV8cB4ma8jeAg #
          GTS_STORAGE_S3_SECRET_KEY: DJ9qG7pNAZy9 #密钥
          GTS_STORAGE_S3_PROXY: true #代理S3,不会显示S3地址
          GTS_ACCOUNTS_ALLOW_CUSTOM_CSS: true #允许自定义CSS
          TZ: Asia/Chongqing #时区
          GTS_SMTP_HOST: mail.cock.li #smtp服务器
          GTS_SMTP_PORT: 587 #必须使用TLS
          GTS_SMTP_USERNAME: admin@cock.li #用户名
          GTS_SMTP_PASSWORD: ******  #密码
          GTS_SMTP_FROM: admin@cock.li #邮箱地址
          GTS_INSTANCE_LANGUAGES: zh #中文
          GTS_ACCOUNTS_REGISTRATION_OPEN: true #开放注册
          GTS_TRUSTED_PROXIES: 172.18.0.1/16 #可信代理
        ports:
          - "127.0.0.1:8080:8080"
        volumes:
          - ./data:/gotosocial/storage
        restart: "always"
    
    networks:
      gotosocial:
        ipam:
          driver: default
          config:
            - subnet: "172.18.0.0/16"
              gateway: "172.18.0.1"

    访问https://social.ima.cm/@m
    显示的账户所属的域名是ima.cm
    mastodon 可以通过 @m@ima.cm 来添加好友

    老孙
    资深网民孙先生
    1. ACEVS

      2025-02-16 16:08

      重定向的玩法不错~

        1. 老孙

          2025-02-16 16:42
          @ACEVS

          忍不住又折腾了一番,但是已经和其他实例有交互的话就必须要更改自己和其他实例的数据库了比较麻烦,所以只适用于新部署的实例