如何在 Debian 11 上安装 Mastodon 社交网络如何在 Debian 11 上安装 Mastodon 社交网络如何在 Debian 11 上安装 Mastodon 社交网络如何在 Debian 11 上安装 Mastodon 社交网络
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 Mastodon 社交网络

本教程适用于这些操作系统版本

  • Debian 11(Bullseye)
  • Debian 10(Buster)

在此页

  1. 先决条件
  2. 设置存储库和安装依赖项
  3. 安装 rbenv 和 Ruby
  4. 设置 PostgreSQL 数据库服务器
  5. 安装 Mastodon
  6. 将 Mastodon 作为 Systemd 服务运行
  7. 将 Nginx 设置为反向代理
  8. 访问 Mastodon 安装
  9. 结论

Mastodon 是一个类似于 Twitter 的免费、去中心化和开源的社交网络。在 Mastodon 中,用户可以互相关注,并发布消息、图片和视频。但与 Twitter 不同的是,内容没有中央存储或授权。

借助去中心化架构,Mastodon 在数千个不同的服务器上运行,每个服务器由社区的不同成员运行。您可以在您的域下创建您的 Mastodon 服务器。您还可以在其他服务器上关注具有不同域的其他用户。

在本教程中,您将在 Debian 11 服务器上安装去中心化微博平台 Mastodon。通过本指南,您将使用 PostgreSQL 作为数据库服务器并使用 Nginx 作为反向代理来设置 Mastodon。此外,您将通过 Letsencrypt 提供的免费 SSL 证书保护 Mastodon 安装。

先决条件

本指南假定您满足以下要求:

  • Debian 11 服务器 - 此示例使用主机名为 mastodon-server 且 IP 地址为 192.168.5.40 的最新 Debian 11 服务器。
  • 具有 sudo/root 管理员权限的非 root 用户。
  • 指向并解析到您的公共 Debian 服务器的域名 - 此示例使用子域 mastodon.hwdomain.io。

准备好这些先决条件后,就可以开始安装 Mastodon 了。

设置存储库和安装依赖项

Mastodon 是免费的开源软件,用于运行类似于 Twitter 服务的自托管社交网络服务。它主要用 Ruby 编写,尤其是使用 Ruby on Rails web 框架和 JavaScript 以及 Reac.js 和 Redux 框架。

在第一步中,您将为系统设置额外的存储库,并为 Mastodon 安装安装包依赖项。这包括用于编译 Ruby 的 build-essentials、用于数据库服务器的 PostgreSQL、作为 Web 服务器和反向代理的 Nginx、用于通过 Letsencrypt 获取 SSL 证书的 certbot 工具以及将用于键值存储的 Redis 服务器等软件包和 Mastodon 的会话管理。

在开始之前,运行下面的 apt 命令来安装一些基本的依赖项,这些依赖项将用于管理存储库和包。

sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificates

出现提示时,输入 y 确认并按 ENTER 继续。

接下来,运行以下命令添加 Node.js Nodesource 存储库。这里的 Node.js 包将用于编译 Mastodon 的静态资产。在撰写本文时,最新的 Mastodon 至少需要 Node.js v16。

curl -sL https://deb.nodesource.com/setup_16.x | bash -

然后您将收到如下输出。

添加 Node.js 存储库后,您将为 Yarn 包管理器设置存储库。这个存储库提供了将用于安装 JavaScript 依赖项的 Yarn 包。

运行以下命令添加 GPG 密钥和 Yarn 包管理器的存储库。

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

您要添加的第三个存储库是 PostgreSQL 存储库。运行以下命令将 PostgreSQL 存储库添加到您的 Debian 服务器。

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/postgresql.list

添加 Node.js、Yarn 和 PostgreSQL 存储库后,运行以下 apt 命令刷新您的包索引。

sudo apt update

你会收到这样的输出。

最后,运行以下 apt 命令来安装将用于安装 Mastodon 的包依赖项。

sudo apt install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
  bison build-essential libssl-dev libyaml-dev libreadline6-dev \
  zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
  nginx nodejs yarn redis-server redis-tools postgresql postgresql-contrib \
  certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

在提示确认时输入 y,然后按 ENTER 继续。

至此,您已经安装了 Mastodon 的基本依赖项,并向您的 Debian 系统添加了一些第三方存储库。

在接下来的步骤中,您将通过 rbenv - The Ruby 版本管理器安装 Ruby。

安装 rbenv 和 Ruby

rbenv 是类 Unix 系统上 Ruby 编程语言的版本管理器工具。它对于在同一台机器上的多个 Ruby 版本之间切换以及确保您正在处理的每个项目始终在正确的 Ruby 版本上运行非常有用。

首先,运行以下命令在您的系统上创建一个新用户 mastodon。这个新用户将用于运行与 Mastodon 相关的服务,Mastodon 源代码将存储在这个用户的主目录中。

sudo adduser --disabled-login mastodon

在此过程中,系统会要求您提供用户详细信息配置。输入您的用户信息并输入 y 确认并按 ENTER。

创建mastodon用户后,运行以下命令登录。

su - mastodon

接下来,通过下面的 git 命令下载 rbenv 源代码。

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

然后运行以下命令在您的系统上安装 rbenv。

cd ~/.rbenv && src/configure && make -C src

安装 rbenv 后,您将收到这样的输出。

接下来,运行以下命令将 rbenv bin 目录添加到系统 PATH 并在每次用户登录到新会话时加载 rbenv。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

现在通过重新加载 bashrc 配置文件来重新加载当前的 shell。然后在您的 shell 中输入 rbenv 命令并按 TAB 键。

source ~/.bashrc
rbenv TAB

在下面的屏幕截图中,rbenv 已安装,您现在可以执行 rbenv 命令来安装 Ruby。

在安装 Ruby 之前,您需要安装名为 ruby-build 的 rbenv 插件。这个插件提供了命令行工具,可以简化从源代码安装 Ruby,特别是对于类 UNIX 操作系统。

通过 git 命令下载 ruby-build 插件。

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

添加 ruby-build 插件后,运行以下命令安装 Ruby v3.0.4,这是当前 Mastodon 版本所必需的。

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

安装完成后,您将收到与此类似的输出。

现在运行以下命令将默认 Ruby 版本设置为 3.0.4。然后使用 ruby 命令进行验证,如下所示。您会看到您的 Debian 系统上安装了 Ruby v3.0.4。

rbenv global 3.0.4
ruby --version

最后,您必须安装一个捆绑器作为您的 Ruby 包管理器。运行下面的 gem 命令来安装 bundler。

gem install bundler --no-document

至此,您已经完成了系统上 Mastodon 包依赖项的安装。您已经通过 rbenv Ruby 版本管理器安装了 Ruby 3.0.4,并安装了 bundler,即 ruby 包管理工具。

在接下来的步骤中,您将设置将用于 Mastodon 安装的 PostgreSQL 用户。

设置 PostgreSQL 数据库服务器

在此步骤中,您将验证 PostgreSQL 服务以确保该服务已启用并正在运行。然后,您将通过 PostgreSQL shell 创建一个新的 PostgreSQL 用户/角色 mastodon。

请务必使用 root 用户/权限执行以下这些命令。

在开始之前,运行以下 systemctl 命令实用程序以确保 PostgreSQL 服务正在运行并已启用。

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

您应该会收到与此类似的输出。

在 PostgreSQL 运行的情况下,运行以下命令登录到 PostgreSQL shell。

cd /etc/postgresql
sudo -u postgres psql

登录到 PostgreSQL shell 后,运行以下 PostgreSQL 查询以创建新角色/用户 mastodon。此外,请务必使用新的强密码更改默认密码。

CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';

接下来,运行以下查询以确保创建新的 PostgreSQL 用户/角色。然后输入\q退出PostgreSQL shell。

\du
\q

下面的输出显示新的 PostgreSQL 用户/角色 mastodon 已创建。

创建 PostgreSQL 用户/角色后,您就可以准备在 Debian 系统上安装 Mastodon。

安装 Mastodon

在此步骤中,您将安装 Mastodon 并将其配置到您的 Debian 服务器。您还将为 Mastodon 安装 Ruby 依赖项和 JavaScript 依赖项。最后,您将开始为您的部署配置 Mastodon,这包括域配置、数据库和 Redis 配置、SMTP 配置以及 Mastodon 管理员用户配置。

在开始之前,请通过以下命令登录到 mastodon 用户。

su - mastodon

现在通过 git 命令下载 Mastodon 源代码,并将分支更改为 Mastodon 的最新稳定版本。在撰写本文时,Mastodon 的稳定版本是 v4.0.2。

git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

接下来,运行以下命令来设置 Mastodon 的部署并安装 Ruby 依赖项。

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)

Mastodon Ruby 依赖项的安装需要时间。以下是您将在终端上收到的类似输出。

安装 Mastodon Ruby 依赖项后,运行以下 yarn 命令为 Mastodon 安装 JavaScript 依赖项。

yarn install --pure-lockfile

然后您将收到与此类似的输出。

安装 Ruby 依赖项和 JavaScript 依赖项后,您将设置 Mastodon 安装。

运行以下命令为生产环境设置 Mastodon。

RAILS_ENV=production bundle exec rake mastodon:setup

你会被问及 Mastodon 的一些配置。

  • Mastodon 域名?此示例使用域 mastodon.hwdomain.io。
  • 启用单用户模式?输入 y。
  • 使用 Docker 运行 Mastodon?输入 n 表示编号。
  • 输入 PostgreSQL 用户和密码并确保您收到消息数据库配置有效!。
  • Redis 配置?按 ENTER 将其保留为默认值。
  • 启用上传文件到云端?输入 n 表示编号。
  • 允许从本地主机发送电子邮件?输入 y 表示是确认,或输入 n 表示否。这取决于您的环境,您也可以使用第三方 SMTP 服务器。
  • 保存配置?输入 y 表示是。
  • 用于数据库创建。输入 y 创建 Mastodon 数据库。
  • 输入 y 为 Mastodon 编译资产和静态文件。
  • 设置管理员用户?为您的 Mastodon 安装输入新的管理员用户和电子邮件。然后您会在屏幕上看到自动生成的密码。

域名、PostgreSQL、Redis 服务器和 SMTP 邮件服务器的 Mastodon 配置。

Mastodon 生成资产和静态文件。

创建了 mastodon 管理员用户,并在终端屏幕上生成了密码。

至此,您已经在 Debian 11 上完成了 Mastodon 的安装和配置。在接下来的步骤中,您将把 Mastodon 设置为 systemd 服务。

将 Mastodon 作为 Systemd 服务运行

默认情况下,Mastodon 提供了 /home/mastodon/live/dist/ 目录中可用的 systemd 服务文件示例。

运行以下命令将 Mastodon 服务文件复制到 /etc/systemd/system 目录。

sudo cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/

现在重新加载 systemd 管理器以在 systemd 上应用更改。

sudo systemctl daemon-reload

之后,通过下面的 systemctl 命令实用程序启动并启用 Mastodon 服务。

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

Mastodon 服务现在应该已启动并运行并且也已启用。使用以下 systemctl 命令进行验证。

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

您将收到类似于以下屏幕截图的输出。

mastodon-web 服务正在运行并已启用。

mastodon-sidekiq 也在运行并启用。

mastodon-streaming 服务也在运行并启用。

在运行并启用所有 Mastodon 服务后,您接下来将设置 Nginx 作为 Mastodon 的反向代理并生成 SSL Letsencrypt。

将 Nginx 设置为反向代理

在此步骤中,您将设置 Nginx Web 服务器作为 Mastodon 的反向代理。您还将通过 certbot 命令生成 SSL Letsencrypt,并通过 HTTPS 安全连接保护 Mastodon。

将 Mastodons 默认的 Nginx 服务器块配置复制到 /etc/nginx/sites-available/mastodon。然后激活新的服务器块配置 /etc/nginx/sites-available/mastodon。

sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

接下来,使用以下 nano 编辑器命令打开 Mastodon 服务器块配置文件 /etc/nginx/sites-available/mastodon。

sudo nano /etc/nginx/sites-available/mastodon

使用您的 Mastodon 域更改默认域名。在此示例中,Mastodon 的域是 mastodon.hwdomain.io。

```ini

change domain

```

保存文件并在完成后退出编辑器。

接下来,运行以下命令从 Letsencrypt 生成 SSL 证书。请务必使用您的域更改域名。

sudo certbot --nginx -d mastodon.hwdomain.io

生成 SSL 证书后,运行以下命令来验证 Nginx 配置。如果您收到诸如测试成功 - 语法正确之类的输出消息,则表示您具有正确的配置。然后,重新启动 Nginx 服务以应用新更改。

sudo nginx -t
sudo systemctl restart nginx

最后,运行以下 systemctl 命令实用程序来验证 Nginx 服务并确保该服务正在运行并已启用。

sudo systemctl is-enabled nginx
sudo systemctl status nginx

您将收到类似于此的输出 - Nginx 服务当前正在运行并已启用。 Nginx 服务将在启动时自动运行。

完成所有配置后,您的 Mastodon 现在可以通过 Web 浏览器访问。

访问 Mastodon 安装

打开您的 Web 浏览器并访问您的 Mastodon 安装的域名(即:https://mastodon.hwdomain.io/)。您现在将看到 Mastodon 的默认主页。

单击“登录”按钮以验证您的用户。

现在输入您的管理员用户和为 Mastodon 生成的密码。然后单击“登录”。

然后您将看到 Mastodon 的用户主页。

接下来,单击首选项菜单以获取用户首选项页面。然后,单击左侧的“管理”菜单。你应该在下面看到 Mastodon 管理页面。

您可以查看当前在 Mastodon 安装中使用的软件堆栈的详细信息。

结论

恭喜!您已经在 Debian 11 服务器上完成了 Mastodon 微博平台的安装。您已经安装了 Mastodon,将 PostgreSQL 作为数据库服务器,将 Nginx 作为反向代理。您还通过安全的 HTTPS 连接保护了 Mastodon 部署。

安装完成后,您现在可以为联邦支持设置 Mastodon 规则。您还可以为 Mastodon 安装添加额外的安全层。

©2015-2025 艾丽卡 support@alaica.com