Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[简体中文] Upgrade to Node.js 20, Yarn 4 and Ruby 3.3.3 #1471

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 34 additions & 22 deletions content/zh-cn/admin/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,32 @@ menu:

## 前提条件 {#pre-requisites}

* 一台你有root访问权限的运行 **Ubuntu 18.04** 的机器
* 一台你有root访问权限的运行 **Ubuntu 20.04 LTS** 或者 *Debian 11 LTS* 及以上的机器
* 一个用于Mastodon站点的**域名**(或一个子域名),例如:`example.com`
* 一个电子邮件发送服务提供商,或其他**SMTP服务器**

你需要使用root用户运行命令。如果你现在不是root用户,请切换至root用户
你需要使用 root 用户运行命令。如果你现在不是 root 用户,请切换至 root 用户

### 软件仓库 {#system-repositories}

首先确保已经安装curl:
首先确保已经安装 curl 等系统必要的软件:

```bash
apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates dpkg
```

#### Node.js {#node-js}

```bash
curl -sL https://deb.nodesource.com/setup_12.x | bash -
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
```

#### Yarn {#yarn}
#### PostgreSQL {#postgresql}

```bash
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor > /usr/share/keyrings/postgresql.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list
```

### 软件包 {#system-packages}
Expand All @@ -38,11 +43,18 @@ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.lis
apt update
apt install -y \
imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf \
bison build-essential libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \
nginx redis-server redis-tools postgresql postgresql-contrib \
certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev
zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
nginx nodejs redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
```

#### Yarn {#yarn}

```bash
corepack enable
yarn set version stable
```

### 安装 Ruby {#installing-ruby}
Expand Down Expand Up @@ -73,8 +85,8 @@ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
上述操作完成,我们便可以安装正确的 Ruby 版本:

```bash
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.6
rbenv global 2.6.6
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.3.3
rbenv global 3.3.3
```

我们同样需要安装 bundler:
Expand All @@ -83,7 +95,7 @@ rbenv global 2.6.6
gem install bundler --no-document
```

返回root用户
返回 root 用户

```bash
exit
Expand All @@ -95,11 +107,11 @@ exit

#### 性能调优(可选) {#performance-configuration-optional}

为了优化性能,你可以使用 [pgTune](https://pgtune.leopard.in.ua/#/) 生成一个合适的配置文件。编辑 `/etc/postgresql/9.6/main/postgresql.conf` 中的相应数值并使用 `systemctl restart postgresql` 命令重启 PostgreSQL。
为了优化性能,你可以使用 [pgTune](https://pgtune.leopard.in.ua/#/) 生成一个合适的配置文件。编辑 `/etc/postgresql/16/main/postgresql.conf` 中的相应数值并使用 `systemctl restart postgresql` 命令重启 PostgreSQL。

#### 创建帐户 {#creating-a-user}

你需创建一个供Mastodon使用的PostgreSQL帐户。创建一个使用“ident”认证方式的帐户是最容易的配置方法,即PostgreSQL帐户不需要独立的密码并由同名Linux用户使用
你需创建一个供 Mastodon 使用的 PostgreSQL 帐户。创建一个使用 “ident” 认证方式的帐户是最容易的配置方法,即 PostgreSQL 帐户不需要独立的密码并由同名 Linux 用户使用

打开控制台:

Expand All @@ -126,7 +138,7 @@ su - mastodon

#### 检出代码 {#checking-out-the-code}

使用git下载最新稳定版Mastodon
使用 git 下载最新稳定版 Mastodon

```bash
git clone https://github.com/mastodon/mastodon.git live && cd live
Expand All @@ -145,7 +157,7 @@ yarn install --pure-lockfile
```

{{< hint style="info" >}}
两个`bundle config`命令仅仅第一次安装依赖时需要。如果你之后进行升级或重安装依赖,只需要`bundle install`就够了。
两个 `bundle config` 命令仅仅第一次安装依赖时需要。如果你之后进行升级或重安装依赖,只需要 `bundle install` 就够了。
{{< /hint >}}

#### 生成配置文件 {#generating-a-configuration}
Expand All @@ -162,9 +174,9 @@ RAILS_ENV=production bundle exec rake mastodon:setup
* 预编译静态文件
* 创建数据库schema

配置文件被保存在`.env.production`。如果你愿意的话,你可以查看并编辑这个文件。请参阅[配置文件的文档]({{< relref "config" >}})。
配置文件被保存在 `.env.production`。如果你愿意的话,你可以查看并编辑这个文件。请参阅[配置文件的文档]({{< relref "config" >}})。

你已经完成需使用mastodon用户进行的操作,请切换回root用户
你已经完成需使用 mastodon 用户进行的操作,请切换回 root 用户

```bash
exit
Expand Down Expand Up @@ -193,7 +205,7 @@ ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

重载 nginx 以使变更生效:

### 获取SSL证书 {#acquiring-a-ssl-certificate}
### 获取 SSL 证书 {#acquiring-a-ssl-certificate}

我们将使用 Let’s Encrypt 获取一个免费的SSL证书:

Expand All @@ -207,7 +219,7 @@ certbot --nginx -d example.com

### 配置 systemd 服务 {#setting-up-systemd-services}

从Mastodon目录复制systemd服务模版
从 Mastodon 目录复制 systemd 服务模版

```bash
cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
Expand Down