Mastodon 长毛象多租户:自定义域名、自定义账号别名

news/2025/2/21 8:53:37/

概念

自定义域名后缀

假设,Mastodon 主节点域名 domain1.com,我在该域名下拥有一个用户 user1@domain1.com

配置自定义域名后缀支持后,也可以通过 user1@domain2.com 搜索到。该配置需要在主节点中设置 ALTERNATE_DOMAINS

自定义账号别名

假设,Mastodon 主节点域名 domain1.com,我在该域名下拥有一个用户 user1@domain1.com

配置自定义账号别名支持后,可以通过 user2@domain2.com 搜索到(即用户名和域名均可自定义)。

如果您想要一个属于自己的账号别名,但没有服务器的话,可以参考一下我的发电计划: https://afdian.net/a/willin

配置自定义域名后缀

1. 配置环境变量

首先检查 .env.production 环境变量中的 ALTERNATE_DOMAINS,配置正确,示例值:

LOCAL_DOMAIN=example1.com
ALTERNATE_DOMAINS=example2.com,example3.com

配置好重启 Mastodon 服务。

2.配置域名

以自定义域名 example2.com 为例,需要做 3 个 301 跳转的配置:

  • /.well-known/host-meta 跳转到 https://example1.com/.well-known/host-meta
  • /.well-known/webfinger 跳转到 https://example1.com/.well-known/webfinger
  • /.well-known/nodeinfo 跳转到 https://example1.com/.well-known/nodeinfo

传统配置

可以通过 Apache 或者 Nginx 的配置直接进行跳转。配置文件自行编写一下即可。

Serverless 配置

如果是 Serverless 服务,以 Cloudflare Pages 为例,为 example2.com 的应用创建 _redirects 文件:

/.well-known/host-meta* https://example1.com/.well-known/host-meta:splat 301
/.well-known/webfinger* https://example1.com/.well-known/webfinger:splat 301
/.well-known/nodeinfo* https://example1.com/.well-known/nodeinfo:splat 301

Cloudflare Redirect 跳转

可以在 Cloudflare Redirect Rules 中直接创建规则跳转。

在这里插入图片描述
免费有 10 条配额,照着上图创建 3 次即可。

设置自定义账号别名

如果您想要一个属于自己的账号别名,但没有服务器的话,可以参考一下我的发电计划: https://afdian.net/a/willin

该方法理论上来说并不需要在 example1.com 主站域名上进行额外配置。只需要自定义三个静态文件即可。

/.well-known/webfinger

{"subject": "acct:user1@example1.com","aliases": ["https://example1.com/user1","https://example1.com/users/user1"],"links": [{"rel": "http://webfinger.net/rel/profile-page","type": "text/html","href": "https://example1.com/@user1"},{"rel": "self","type": "application/activity+json","href": "https://example1.com/users/user1"},{"rel": "http://ostatus.org/schema/1.0/subscribe","template": "https://example1.com/authorize_interaction?uri={uri}"}]
}

/.well-known/host-meta

<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><Link rel="lrdd" template="https://example1.com/.well-known/webfinger?resource=acct:user1@example1.com" />
</XRD>

/.well-known/nodeinfo

{"links": [{"rel": "http://nodeinfo.diaspora.software/ns/schema/2.0","href": "https://example1.com/nodeinfo/2.0"}]
}

进阶使用

使用该方法进写死了一个域名下的一个账号,如果需要多账号自定义域名的话。则需要使用动态接口来实现类似以上格式的响应。参考资料:

  • 主站讨论: https://github.com/mastodon/mastodon/issues/2668
  • 旧文档: https://guide.toot.as/guide/use-your-own-domain/

http://www.ppmy.cn/news/78123.html

相关文章

微服务解码:揭示API的优势挑战与最佳实践

在当今快节奏的软件开发环境中&#xff0c;微服务已成为一种流行的架构模式。但微服务到底是什么&#xff1f;简而言之&#xff0c;微服务是一种将应用程序构建为松耦合、细粒度服务集合的方式&#xff0c;这些服务通过轻量级协议进行通信。这种架构风格使团队能够独立开发和部…

《消息中间件(一)- 初识消息中间件MQ》

文章目录 MQ 消息中间件一、初识MQ1、同步通讯同步通讯和异步通讯同步调用存在的问题总结2、异步通讯异步调用方案事件驱动 Broker事件驱动优势异步调用存在的问题总结3、MQ常见框架MQ简介MQ框架MQ 消息中间件 一、初识MQ 1、同步通讯 同步通讯和异步通讯 同步通讯 - 手机通…

关于跨域问题详解

关于跨域问题详解 1 为什么会有跨域问题 因为浏览器的同源政策&#xff0c;就会产生跨域。比如说发送的异步请求是不同的两个源&#xff0c;就比如是不同的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑&#xff0c;就会产生一个同源政策&#xff0c;不是…

分享Java代码中一些常见的炫技代码写法,请各位点赞、收藏

以下是一些常见的例子。请记住&#xff0c;这些写法通常是为了展示技术的巧妙和灵活性&#xff0c;但并不一定适用于所有情况。在实际项目中&#xff0c;可读性和可维护性应始终是首要考虑因素。 流式操作&#xff08;Stream API&#xff09;&#xff1a; List<Integer>…

【源码笔记】print、printf与println

文章目录 导读问题发现printprintlnprintf总结 导读 一直用着的 2020 2020 2020科技版在今天终于再也没办法用科技打开了&#xff0c;虽然用VScode能进行一定的操作&#xff0c;但还是由于被IDEA惯坏了&#xff0c;新建任何东西都得折腾一下。最终&#xff0c;用上了 2023.1 2…

java_配置文件_xml

XML配置文件是什么 做数据交互的媒介,用于传输数据,解决硬编码问题 注意事项: 1.一个xml文件只有一个根节点(可以是任意名字) 2.所有标签都是成对出现 3.标签不能嵌套使用 4.标签里面可以有属性值 示例: <?xml version"1.0" encoding"UTF-8" s…

基于 Bert 论文构建 Question-Answering 模型

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 摘要 本文拜读了提出 Bert 模型的论文&#xff0c;考虑了在 Bert 中算法模型的实现.比较了 Bert 与其他如 Transformer、GPT 等热门 NLP 模型.BERT 在概念上很简单&#xff0c;在经验上也很强大。它推动了 11 项自然语言处理任…

详解知识蒸馏原理和代码

目录 知识蒸馏原理概念技巧举例说明KL 散度及损失 KD训练代码导入包网络架构teacher网络student网络 teacher网络训练定义基本函数训练主函数 student网络训练&#xff08;重点&#xff09;理论部分定义kd的loss定义基本函数训练主函数 绘制结果teacher网络的暗知识softmax_t推…