Mastodon¶
在这篇文章中
信息
Mastodon 是一个免费且开源的去中心化社交平台。与集中式的商业平台不同,Mastodon 不受任何单一组织的控制。
Mastodon 关键功能¶
- Mastodon 允许用户订阅并与任何已连接服务器上的其他用户进行沟通;
- 该平台提供公开帖子源,帮助用户发现有趣的内容。本地源显示您服务器上的帖子,而联合源显示您服务器上已知的所有订阅用户的公开帖子;
- 用户可以直接在源中或在高级帖子视图中通过回复、分享、添加到收藏夹、书签或使用附加菜单与帖子互动;
- Mastodon 会发送与您个人资料和帖子相关的各种互动事件的通知。这些通知可以按类型过滤;
- 要订阅用户,只需点击其个人资料上的
Follow按钮。您还可以启用来自您订阅的新帖子的通知; - Mastodon 中的搜索功能允许您通过链接查找用户、标签和帖子。安装全文搜索后,您可以搜索自己的帖子和收藏夹;
- Mastodon 中的私人帖子仅对订阅者可见。它们显示在单独的对话框列中;
- 订阅列表可用于仅查看帖子源。
部署功能¶
| ID | 软件名称 | 兼容操作系统 | 虚拟机 | 物理机 | vGPU | GPU | 最低CPU(核) | 最低内存(GB) | 最低硬盘(GB) | 自定义域名 | 是否启用 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 59 | Mastodon | Ubuntu 22.04 | + | + | + | + | 2 | 2 | - | 否 | 订购 |
有关此软件的部署功能信息,请参阅 此链接
备注
除非另有说明,默认情况下,我们从开发者的网站或操作系统存储库安装软件的最新发布版本。
部署 Mastodon 后的入门指南¶
支付订单后,将向注册时指定的电子邮件发送通知,告知服务器已准备好工作。它将包含 VPS 的 IP 地址以及连接的登录名和密码。我们公司的客户在服务器和 API 控制面板中管理硬件 — Invapi。
您可以在服务器控制面板的 Configuration >> Tags 选项卡或发送的电子邮件中找到授权数据。
- 访问带有 Web 界面的 Mastodon 仪表板的链接:在 webpanel 标签中;
- 登录名 和 密码 用于连接到服务器:在软件部署后服务器准备就绪时通过电子邮件发送到您的地址;
- 登录名 和 密码 用于在 Mastodon Web 界面中认证,是在通过管理员控制台创建帐户时手动设置的。
访问 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 界面# Sending mail # ------------ 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 记录的更多信息请参见 此处。
-
更新 Mastodon 环境变量 编辑文件
/opt/mastodon/.env.production,将当前值(例如mastodon<server_ID>.hostkey.in)替换为您的新域名:5. 设置支持 HTTPS 的 Nginx# Previous: # LOCAL_DOMAIN=mastodon<server_ID>.hostkey.in # Updated: 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 certificates 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; # Main Mastodon application (port 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 support proxy_http_version 1.1; proxy_set_header X-Scheme $scheme; proxy_buffering off; } # Mastodon Streaming API (port 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 support 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 可能会误解具有多个服务器块的请求
-
重启服务 在包含
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 设置的详细信息,请参阅 开发者文档。