如何在 Synology NAS 上安装 Mastodon

Mastodon 是一个基于 ActivityPub 的免费开源社交网络服务器，用户可以在其中关注朋友并发现新朋友。在 Mastodon 上，用户可以发布他们想要的任何东西：链接、图片、文本、视频。所有 Mastodon 服务器都可以作为联合网络进行互操作（一台服务器上的用户可以与另一台服务器上的用户无缝通信，包括实现 ActivityPub 的非 Mastodon 软件，如 Pixelfed 和 WriteFreely）。在这个分步指南中，我将向您展示如何使用 Docker 和 Portainer 在您的 Synology NAS 上安装 Mastodon 。

💡注意：本指南与最新的 Mastodon v4.1.2 版本完美配合 。
使用我的分步指南安装 Portainer 。如果您已在 Synology NAS 上安装 Portainer，请跳过此步骤。注意：确保您已经安装了最新的 Portainer 版本。

第 3 步
确保您拥有 synology.me 通配符证书。按照我的指南获取通配符证书。如果您已经拥有 synology.me Wildcard 证书，请跳过此步骤。

步骤 4
转到 控制面板 / 登录门户 / 高级 选项卡 / 单击 反向代理。按照下图中的说明进行操作
第 5 步
现在单击 “创建” 按钮。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 2

第 6 步
单击 “创建” 按钮后，将打开下面的窗口。按照下图中的说明进行操作。

在常规区域，设置反向代理名称描述：输入 Mastodon。之后，添加以下说明：

来源：
协议： HTTPS
主机名：mastodon。你的名字.synology.me
端口： 443

选中启用 HSTS

目的地：
协议： HTTPS
主机名：localhost
端口： 8562

Mastodon Synology NAS 设置 3 new

第 7 步
在反向代理规则上单击自定义标头 选项卡。单击 创建 ，然后从下拉菜单中单击 WebSocket。点击 WebSocket 后，会自动添加两个 Header Names 和两个 Values。单击 保存。按照下图中的说明进行操作。

Synology 代理 WebSocket

第 8 步
转到 Control Panel / Network / Connectivity 选项卡 / 选中 Enable HTTP/2 然后单击 Apply。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 4

第 9 步
转到控制面板 / 安全 / 高级选项卡 / 选中启用 HTTP 压缩 ，然后单击应用。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 5

第 10 步
进入 File Station 并打开 docker 文件夹。在 docker 文件夹中，创建一个新文件夹并将其命名为 mastodon。按照下图中的说明进行操作。
注意：注意只输入小写字母，不要输入大写字母。

Mastodon Synology NAS 设置 6

第 11 步
现在在您在步骤 10 中创建的 mastodon 文件夹中创建三个新文件夹，并将它们命名为 config、db、redis。按照下图中的说明进行操作。注意：注意只输入小写字母，不要输入大写字母。

Mastodon Synology NAS 设置 7

第 12 步
使用您的用户名和密码登录 Portainer。在 Portainer 的左侧边栏上，单击 Stacks ，然后 单击 + Add stack。按照下图中的说明进行操作。

1 Synology Portainer 添加堆栈

第 13 步
在名称字段中输入 mastodon。按照下图中的说明进行操作。

注意：在 Portainer Stacks Web 编辑器中复制粘贴以下代码。
version: "3.9"
services:
mastodon-redis:
image: redis
container_name: Mastodon-REDIS
hostname: mastodon-redis
security_opt:
- no-new-privileges
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
user: 1026:100
environment:
- TZ=Europe/Bucharest
volumes:
- /volume1/docker/mastodon/redis:/data
restart: always

mastodon-db:
image: postgres
container_name: Mastodon-DB
hostname: mastodon-db
security_opt:
- no-new-privileges
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "mastodon", "-U", "mastodonuser"]
timeout: 45s
interval: 10s
retries: 10
user: 1026:100
volumes:
- /volume1/docker/mastodon/db:/var/lib/postgresql/data
environment:
POSTGRES_DB: mastodon
POSTGRES_USER: mastodonuser
POSTGRES_PASSWORD: mastodonpw
restart: always

mastodon:
image: lscr.io/linuxserver/mastodon
container_name: Mastodon
hostname: mastodon
security_opt:
- no-new-privileges
environment:
- PUID=1026
- PGID=100
- TZ=Europe/Bucharest
- DEFAULT_LOCALE=en
- LOCAL_DOMAIN=mastodon.yourname.synology.me
- WEB_DOMAIN=mastodon.yourname.synology.me
- REDIS_HOST=mastodon-redis
- REDIS_PORT=6379
- DB_HOST=mastodon-db
- DB_USER=mastodonuser
- DB_NAME=mastodon
- DB_PASS=mastodonpw
- DB_PORT=5432
- ES_ENABLED=false
- ES_HOST=es
- ES_PORT=9200
- ES_USER=elastic
- ES_PASS=elastic
- SECRET_KEY_BASE=2e80b1b7d3a70f6358ab08a1cebdffc2424d8800c8ff764ff238f892abd539ff70000f31310d21ac7391d281795479b6d97263edd5d88c05070b6b8acbadf2ab
- OTP_SECRET=eca299ae599a9b4eda009b2abfc1ee5b01e0ca30eea060f2a47c6ca3075c4d3616df992ae7e437fcd061aeb6dc9f9cc3d38e79ab090324092777984478996c06
- S3_ENABLED=false
volumes:
- /volume1/docker/mastodon/config:/config
ports:
- 8562:443
restart: always
depends_on:
mastodon-redis:
condition: service_healthy
mastodon-db:
condition: service_started
注意：在将上面的代码粘贴到下面的 Web 编辑器区域之前，请使用您自己的 UID 和 GID 值更改用户的值编号（按照我关于如何执行此操作的分步指南。） 1026 是我的个人 UID 值， 100 是我的个人 GID 值。您必须输入自己的值。
注意：在将上面的代码粘贴到下面的 Web 编辑器区域之前，请更改 TZ 的值。（从此列表中选择您当前的时区。）
注意：在将上面的代码粘贴到下面的 Web 编辑器区域之前，请使用 您自己的值更改 PUID 和 PGID 的数值。(按照我关于如何执行此操作的分步指南进行操作。) 1026 是我个人的 PUID 值，100 是我个人的 PGID 值。您必须输入自己的值。
注意：在将上面的代码粘贴到下面的 Web 编辑器区域之前，请更改 LOCAL_DOMAIN 的值 并输入您之前在步骤 6 中创建的自己的 synology.me DDNS 。
注意：在将上面的代码粘贴到下面的 Web 编辑器区域之前，请更改 WEB_DOMAIN 的值 并输入您之前在步骤 6 中创建的自己的 synology.me DDNS 。

Mastodon Synology NAS 设置 8

第 14 步
在页面上向下滚动，直到您看到名为 Deploy the stack 的按钮 。点击它。按照下图中的说明进行操作。安装过程最多可能需要几分钟。这将取决于您的互联网连接速度。

Mastodon Synology NAS 设置 9 新 2023

第 15 步
如果一切顺利，您将在屏幕右上角看到以下消息：“Success Stack successfully deployed”。

Mastodon Synology NAS 设置 10

第 16 步
在 Portainer 的左侧边栏中，单击 Containers。确定您的 Mastodon 实例，然后单击小终端图标。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 11

第 17 步
在第 16 步单击小终端图标后，将打开一个新页面。单击 “连接”。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 12

第 18 步
单击 Connect at STEP 17 后，将打开一个控制台。复制粘贴下面的代码并按照图像中的说明进行操作。

tootctl accounts create marius --email yourownemail --confirmed --role 所有者
点击复制🐋
注意：在将上面的代码粘贴到下面的控制台区域之前，请将 marius 更改为您自己的名称。
注意：在将上面的代码粘贴到下面的控制台区域之前，请使用您的电子邮件更改您自己的电子邮件文本。

Mastodon Synology NAS 设置 13 新

第 19 步
插入代码后，按键盘上的 Enter 键确认，开始创建密码的过程。几秒钟后，您将获得先前在步骤 18 创建的用户的新密码。复制密码并将其保存在安全的地方 - 稍后您将需要它。

Mastodon Synology NAS 设置 14

第 20 步
回到 第 1 步 ，否则您将处理业力🙂。

第 21 步
现在打开您的浏览器并输入您的 HTTPS/SSL 证书，例如 https://mastodon。您之前在第 6 步创建的 yourname .synology.me。在我的例子中是 https://mastodon。mariushosting .synology.me 如果一切顺利，您将看到 Mastodon 主页。单击登录。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 15

第 22 步
在电子邮件地址字段中输入您在步骤 18 中选择的电子邮件。在密码字段中输入您之前在第 19 步自动生成的密码。单击 “登录”。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 16 新 2023

第 23 步
个性化您自己的个人资料，然后单击首选项以访问您的管理区域。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 17

第 24 步
在左侧边栏中单击 Administration。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 18

第 25 步
在管理下，单击服务器设置以个性化您的 Mastodon 服务器。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 19

第 26 步
如果新用户将订阅您的服务器，您将在 “帐户” 区域的 “审核” 下找到它。单击帐户。单击新的用户配置文件。按照下图中的说明进行操作。

Mastodon Synology NAS 设置 20

第 27 步
单击确认以确认新用户。一旦新用户获得批准，他们就可以开始使用您的 Mastodon 服务器。按照下图中的说明进行操作。
注意：所有者、管理员和版主可以确认，即批准新成员。
笔记：澄清一下：每个将在您的服务器上注册新帐户的用户都需要手动确认才能开始在您的 Mastodon 服务器上使用他们的个人资料。新用户首次注册时，不会向他们发送电子邮件。我决定不包括 SMTP 电子邮件服务器（在 docker compose 中）以自动确认新用户，以免电子邮件服务器过载。出于这个原因，我认为所有新用户都由所有者、管理员或版主手动批准是公平的，这样您就可以完全控制访问您的私有 Mastodon 服务器的用户。如果您希望新用户收到一封自动注册确认电子邮件，请与我进行咨询。

Mastodon Synology NAS 设置 21

享受您的 Mastodon 服务器吧！

注意：了解 使用最新映像更新 Mastodon 容器。
注意：我可以在我的 Synology NAS 上运行 Docker 吗？ 查看支持的型号。
注意：如果您运行 Docker，如何释放 NAS 上的磁盘空间。
注意：如何为 Docker 容器安排启动和停止。
注意：如何激活电子邮件通知。
注意：如何在您的 NAS 上添加访问控制配置文件。
注意：如何更改 Docker 容器重启策略。
注意：如何通过 VPN 使用 Docker 容器.
注意：将 Docker Run 转换为 Docker Compose。
注意：如何清理 Docker。
注意：如何自动清理 Docker。
注意：使用 Docker 和 DDNS 时的最佳实践。
注意：一些 Docker 容器需要 WebSocket。
注意：找出适用于 Docker 的最佳 NAS 型号。
注意：为 Docker 容器激活 Gmail SMTP。