Mastodon¶
在这篇文章中
信息
Mastodon —— 一个免费且开源的去中心化社交平台。与中心化的商业平台不同,Mastodon 不受任何单一组织的控制。
Mastodon. 关键特性¶
- Mastodon 使用户能够订阅并与其他来自任何已连接服务器的用户进行交流;
- 该平台提供公开帖子动态以帮助用户发现有趣的内容。Local feed 显示来自您所在服务器的帖子,而 Federated feed 则显示您的服务器所知的、来自已订阅用户的的所有公开帖子;
- 用户可以直接在动态中或通过高级帖子视图(advanced post view)进行互动,包括回复、分享、添加到收藏夹、添加书签或使用附加菜单;
- Mastodon 会针对与您的个人资料和帖子相关的各种交互事件发送通知。这些通知可以按类型进行过滤;
- 要订阅用户,只需点击其个人资料上的
Follow按钮。您还可以启用新帖子的订阅通知; Mastodon 的搜索功能允许您通过链接查找用户、话题标签(hashtags)和帖子。如果安装了全文搜索,您可以搜索自己的帖子和收藏夹; - Mastodon 中的私密帖子仅对订阅者可见。它们显示在单独的对话列中;
- 订阅列表可用于专门查看帖子动态。
部署功能¶
| ID | 软件名称 | 兼容操作系统 | 虚拟机 | 物理机 | vGPU | GPU | 最低CPU(核) | 最低内存(GB) | 最低硬盘(GB) | 自定义域名 | 是否启用 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 59 | Mastodon | Ubuntu 22.04 | + | + | + | + | 2 | 2 | - | 否 | 订购 |
有关此软件部署功能的详细信息,请参阅 此链接
备注
除非另有说明,否则默认情况下,我们会从开发者的网站或操作系统仓库安装软件的最新发布版本。
部署 Mastodon 后的入门指南¶
在支付订单后,系统会向注册时指定的电子邮件发送一条通知,告知服务器已准备就绪。邮件将包含 VPS 的 IP 地址以及连接所需的登录名和密码。我们公司的客户可以通过 Invapi 管理服务器硬件和 API 控制面板。
您可以在服务器控制面板的 Configuration >> Tags 选项卡中,或在发送的电子邮件中找到授权数据。
- 访问具有 Web 界面的 Mastodon dashboard 的链接:位于 webpanel 标签中;
- 用于连接服务器的 Login 和 Password:在软件部署完成且服务器就绪后,通过电子邮件发送到您的地址;
- 在 Mastodon Web 界面进行身份验证所需的 Login 和 Password 是在通过管理员控制台创建账户时手动设置的。
访问 Web 界面的链接将是:https://mastodon{Server_ID_from_Invapi}.hostkey.in
配置变更¶
要通过命令行更改 Mastodon 配置,请使用 tootctl 和 rails 工具:
- 账户设置、创建、修改、分配权限等;
- SMTP 服务器设置;
- 用户注册设置。
信息
有关如何使用这些工具的更多信息,请参考 开发者文档。
示例用法¶
- 通过 SSH 连接到服务器:
-
进入 Mastodon Web 应用容器。找到并连接到
mastodon_web_1容器: -
要创建新用户,请使用命令
tootctl accounts create。指定用户名、电子邮件以及用于账户确认的--confirmed标志。将RAILS_ENV=production bin/tootctl accounts create new_username --email [email protected] --confirmednew_username替换为您想要的用户名,将[email protected]替换为用户的实际电子邮件。执行此命令后,用户将被创建。请务必保存屏幕上显示的密码:
授予管理员权限及批准用户¶
创建用户后,您需要在数据库中找到他们以更改其权限和状态。
- 启动 Rails 控制台:
- 通过电子邮件或用户名查找用户:
user = User.find_by(email: '[email protected]') # 或者使用: User.find_by(username: 'new_username') -
更新其状态:
此操作将从管理面板中移除通知Your application is pending review by our staff...。 -
为其分配管理员角色:
- 验证:
- 退出控制台:
配置邮件服务器¶
如果您需要配置或更改邮件服务器,请执行以下操作:
-
打开配置文件:
2. 配置 SMTP 参数(例如,用于 MailHog):3. 重启 Mastodon 容器 要应用新设置,请重启 Mastodon 容器: 4. 检查邮件功能 - 对于 MailHog:打开 Web 界面# 发送邮件 # ------------ SMTP_SERVER=mailhog SMTP_PORT=1025 SMTP_LOGIN= SMTP_PASSWORD= SMTP_FROM_ADDRESS=notifications@your_domain SMTP_AUTH_METHOD=none SMTP_OPENSSL_VERIFY_MODE=none SMTP_ENABLE_STARTTLS=falsehttp://your_server:8025- 查看日志: - 进行测试:注册一个新用户并检查是否收到邮件
信息
在 开发者文档 中了解更多关于配置设置的信息。
信息
在 开发者文档 中了解更多关于使用 setup.sh 的信息。
更改 Mastodon 服务器域名¶
信息
本指南使用 skaz.online 作为示例域名。最初,Mastodon 配置的域名类似于 mastodon<server_ID>.hostkey.in。在所有配置示例中,请将 skaz.online 替换为您实际的域名。
关键文件和目录¶
| 文件/目录 | 变更内容 |
|---|---|
/opt/mastodon/.env.production | 环境变量、域名 |
/data/nginx/user_conf.d/*.conf | 新域名的 Nginx 配置 |
/etc/letsencrypt/live/ | SSL 证书(如果使用 certbot) |
| Docker Compose 文件 | docker-compose.yml 中的域名或变量 |
| SMTP 配置 | 更新与域名相关的地址 |
要更改域名,请遵循以下步骤:
-
注册您自己的域名,例如
mastodon.mydomain.com。 -
为该域名配置 DNS 记录:
- 设置指向 Mastodon 服务器 IP 地址的 A 记录;
- 配置指向邮件服务器的 MX 记录。
信息
-
在 Invapi 的 IP 地址设置中添加 PTR 记录; !!! info "信息" 在此处了解更多关于在 Invapi 中设置 PTR 记录的信息 here。
-
更新 Mastodon 环境变量 编辑文件
/opt/mastodon/.env.production,将当前值(例如mastodon<server_ID>.hostkey.in)替换为您的新域名:5. 设置支持 HTTPS 的 Nginx# 修改前: # LOCAL_DOMAIN=mastodon<server_ID>.hostkey.in # 修改后: LOCAL_DOMAIN=skaz.online WEB_DOMAIN=skaz.online5.1 创建 Nginx 配置 重要: 创建一个新的配置文件,替换旧的配置文件。旧配置可能包含不同的
proxy_pass指令,从而导致功能异常。 创建一个 Nginx 配置文件/data/nginx/user_conf.d/skaz.online.conf,内容如下:5.2 获取 SSL 证书 检查证书: 如果缺少证书,请获取它:server { listen 80; server_name skaz.online; return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name skaz.online; # SSL 证书 ssl_certificate /etc/letsencrypt/live/skaz.online/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/skaz.online/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/skaz.online/chain.pem; ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; # 主 Mastodon 应用 (端口 3000) location / { proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:3000; real_ip_header X-Forwarded-For; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header X-Scheme $scheme; proxy_buffering off; } # Mastodon Streaming API (端口 4000) location ^~ /api/v1/streaming { proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:4000; real_ip_header X-Forwarded-For; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header X-Scheme $scheme; proxy_buffering off; } } -
清理冲突的配置
重要! 请删除旧的 Nginx 配置,因为多个 .conf 文件可能会导致冲突: 删除旧的配置(例如针对 mastodon<server_ID>.hostkey.in 的配置)
mv /data/nginx/user_conf.d/mastodon<server_ID>.hostkey.in.conf /data/nginx/user_conf.d/mastodon<server_ID>.hostkey.in.conf.backup
冲突原因:
- 重复的
listen 443 ssl指令会导致错误duplicate listen options - 旧配置可能具有不同的
proxy_pass地址或端口 -
Nginx 可能会误读具有多个 server block 的请求
-
重启服务 在包含
docker-compose.yml的目录中执行: -
验证功能 通过命令行测试
预期响应:HTTP/1.1 200 OK在浏览器中检查 在浏览器中打开该域名 —— Mastodon 主页应当能够加载。
管理员面板初始设置¶
要访问管理员面板,请点击 webpanel 标签中的链接,点击 Log In 按钮,并输入之前设置的凭据。

管理服务器规则¶
在这个去中心化社交网络中,每个独立服务器的管理员和版主负责制定 Mastodon 的规则。要管理规则,请前往 Administration >> Server Rules。
设置规则的基本原则:
- 确保规则合理并符合普遍接受的文明标准,以避免让用户感到反感;
- 明确说明禁止的内容类型(如残忍、暴力和非法活动),并澄清可接受的 NSFW 内容级别;
- 规定警告、封禁或限制违规者的程序,以及纪律处分和时间限制;
- 服务器规则必须对所有用户易于访问,并在注册期间公开展示;
- 随着服务器的发展,定期审查和更新规则非常重要,并让社区参与到管理和改进的过程中。
邀请用户¶
Mastodon 在动态中有多个选项卡用于管理订阅和邀请新用户:
- Follows and Followers —— 此选项卡显示当前用户已订阅的账户,动态将显示这些用户的条目。此外,此选项卡还列出了关注该账户的用户,即 Mastodon 的受众。
- Invite people —— 该功能允许用户邀请朋友和熟人加入其社交网络。这段文字描述了创建唯一链接的过程,该链接可以分享以允许其他用户加入 Mastodon 服务器。
.
备注
有关 Mastodon 基础设置的详细信息,请参考 开发者文档.
使用 API 订购带有 Mastodon 的服务器¶
要使用 API 安装此软件,请遵循 这些说明。