[docs] add zh docs (#3507)

* [docs] add zh docs

* [docs] add lang dropdown

* [docs] update mkdocs zh config

* [docs] migrate assets

* [docs] update overrides dir in mkdocs zh config

* [docs] exclude locales director in main mkdocs config

* [docs] rename assets to public to avoid conflicting with template

* [docs] extra_css change followup

* [docs] add theme.palette.toggle.icon back into mkdocs zh config

* [docs] fix zh readme reference + migrate language-specific repo markdown to docs

* [docs] translate remaining repo docs + update reference

* [docs] update zh index.md reference

* [docs/zh] wording alignment
This commit is contained in:
CDN 2024-11-05 13:36:43 +00:00 committed by GitHub
commit 38a08cd25a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
139 changed files with 20407 additions and 24 deletions

View file

@ -0,0 +1,164 @@
# 容器
本指南将指引你通过我们发布的官方容器镜像运行 GoToSocial。在本例中我们将直接使用 [Docker Compose](https://docs.docker.com/compose) 和 SQLite 作为数据库。
你也可以使用容器编排系统(如 [Kubernetes](https://kubernetes.io/) 或 [Nomad](https://www.nomadproject.io/))运行 GoToSocial但这超出了本指南的范围。
## 创建工作目录
你需要一个工作目录来存放你的 docker-compose 文件,以及一个目录来存储 GoToSocial 的数据。请使用以下命令创建这些目录:
```bash
mkdir -p ~/gotosocial/data
```
现在切换到你创建的工作目录:
```bash
cd ~/gotosocial
```
## 获取最新的 docker-compose.yaml
使用 `wget` 下载最新的 [docker-compose.yaml](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yaml) 示例,我们将根据需要进行自定义:
```bash
wget https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yaml
```
## 编辑 docker-compose.yaml
由于 GoToSocial 可以使用[环境变量](../../configuration/index.md#环境变量)进行配置,我们可以跳过在容器中挂载 config.yaml 文件,使配置更为简单。只需编辑 docker-compose.yaml 文件以更改一些内容。
首先在你的编辑器中打开 docker-compose.yaml 文件。例如:
```bash
nano docker-compose.yaml
```
### 版本
如果需要,更新 GoToSocial Docker 镜像标签到你想要使用的 GtS 版本:
* `latest`:默认值。这指向最新的稳定版本的 GoToSocial。
* `snapshot`:指向当前在主分支上的代码。不保证稳定,可能经常出错。谨慎使用。
* `vX.Y.Z`:发布标签。这指向 GoToSocial 的特定、稳定的版本。
!!! tip
`latest``snapshot` 标签是动态标签,而 `vX.Y.Z` 标签是固定的。拉取动态标签的结果可能每天都会变化。同一系统上的 `latest` 可能与不同系统上的 `latest` 不同。建议使用 `vX.Y.Z` 标签,以便你始终确切知道运行的是 GoToSocial 的哪个版本。发布列表可以在[这里](https://github.com/superseriousbusiness/gotosocial/releases)找到,最新的发布在顶部。
### 主机
更改 `GTS_HOST` 环境变量为你运行 GoToSocial 的域名。
### 服务器时区(可选但推荐)
为确保你的 GoToSocial 服务器在贴文和日志中显示正确的时间,你可以通过编辑 `TZ` 环境变量设置服务器的时区。
1. 删除环境部分中 `TZ: UTC` 前面的 `#`
2. 将 `UTC` 部分更改为你的时区标识符。有关这些标识符的列表,请参阅 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones。
例如,如果你在明斯克运行服务器,你可以设置 `TZ: Europe/Minsk`,日本设置为 `TZ: Japan`,迪拜设置为 `TZ: Asia/Dubai`,等等。
如果不设置,将使用默认的 `UTC`
### 用户(可选/可能不必要)
默认情况下Docker 化的 GoToSocial 以 Linux 用户/组 `1000:1000` 运行,这在大多数情况下是可以的。如果你想以不同的用户/组运行,应相应地更改 docker-compose.yaml 中的 `user` 字段。
例如,假设你为 id 为 `1001` 的用户和组创建了 `~/gotosocial/data` 目录。如果现在不更改 `user` 字段就尝试运行 GoToSocial将会遇到权限错误无法在目录中打开数据库文件。在这种情况下你需要将 docker compose 文件的 `user` 字段更改为 `1001:1001`
### LetsEncrypt可选
如果你想为 TLS 证书https使用 [LetsEncrypt](../../configuration/tls.md),你还应该:
1. 将 `GTS_LETSENCRYPT_ENABLED` 的值更改为 `"true"`
2. 删除 `ports` 部分中 `- "80:80"` 前面的 `#`
3. (可选)将 `GTS_LETSENCRYPT_EMAIL_ADDRESS` 设置为有效的电子邮件地址,以接收证书过期警告等。
!!! info "可选配置"
config.yaml 文件中记录了许多其他配置选项,你可以使用这些选项进一步自定义你的 GoToSocial 实例的行为。尽可能使用合理的默认设置,因此不一定需要立即对它们进行更改,但以下几个可能会感兴趣:
- `GTS_INSTANCE_LANGUAGES`:确定你实例首选语言的 [BCP47 语言标签](https://en.wikipedia.org/wiki/IETF_language_tag)数组。
- `GTS_MEDIA_REMOTE_CACHE_DAYS`:在存储中保持外站媒体缓存的天数。
- `GTS_SMTP_*`:允许你的 GoToSocial 实例连接到电子邮件服务器并发送通知电子邮件的设置。
如果你决定稍后设置/更改这些变量,请确保在更改后重新创建 GoToSocial 实例容器。
!!! tip
有关将 config.yaml 文件中的变量名称转换为环境变量的帮助,请参阅[配置部分](../../configuration/index.md#environment-variables)。
### Wazero 编译缓存(可选)
启动时GoToSocial 会将嵌入的 WebAssembly `ffmpeg``ffprobe` 二进制文件编译为 [Wazero](https://wazero.io/) 兼容模块,用于媒体处理而无需任何外部依赖。
要加快 GoToSocial 的启动时间,你可以在重启之间缓存已编译的模块,这样 GoToSocial 就不必在每次启动时从头编译它们。
如果你希望在 Docker 容器中进行此操作,首先在工作文件夹中创建一个 `.cache` 目录以存储模块:
```bash
mkdir -p ~/gotosocial/.cache
```
然后,取消注释 docker-compose.yaml 文件中第二个卷的前面的 `#` 符号,使其从
```yaml
#- ~/gotosocial/.cache:/gotosocial/.cache
```
变为
```yaml
- ~/gotosocial/.cache:/gotosocial/.cache
```
这将指示 Docker 在 Docker 容器中将 `~/gotosocial/.cache` 目录挂载到 `/gotosocial/.cache`
## 启动 GoToSocial
完成这些小改动后,您现在可以使用以下命令启动 GoToSocial
```shell
docker-compose up -d
```
运行此命令后,你应该会看到如下输出:
```text
Creating network "gotosocial_gotosocial" with the default driver
Creating gotosocial ... done
```
如果你想跟踪 GoToSocial 的日志,可以使用:
```bash
docker logs -f gotosocial
```
如果一切正常,你应该会看到类似以下的内容:
```text
time=2022-04-19T09:48:35Z level=info msg=connected to SQLITE database
time=2022-04-19T09:48:35Z level=info msg=MIGRATED DATABASE TO group #1 (20211113114307, 20220214175650, 20220305130328, 20220315160814) func=doMigration
time=2022-04-19T09:48:36Z level=info msg=instance account example.org CREATED with id 01EXX0TJ9PPPXF2C4N2MMMVK50
time=2022-04-19T09:48:36Z level=info msg=created instance instance example.org with id 01PQT31C7BZJ1Q2Z4BMEV90ZCV
time=2022-04-19T09:48:36Z level=info msg=media manager cron logger: start[]
time=2022-04-19T09:48:36Z level=info msg=media manager cron logger: schedule[now 2022-04-19 09:48:36.096127852 +0000 UTC entry 1 next 2022-04-20 00:00:00 +0000 UTC]
time=2022-04-19T09:48:36Z level=info msg=started media manager remote cache cleanup job: will run next at 2022-04-20 00:00:00 +0000 UTC
time=2022-04-19T09:48:36Z level=info msg=listening on 0.0.0.0:8080
```
## 创建你的第一个用户
现在 GoToSocial 已在运行,你应该至少为自己创建一个用户。如何创建用户可以在我们的[创建用户](../user_creation.md)指南中找到。
### 完成
GoToSocial 现在应该在你的机器上运行!要验证这一点,打开浏览器,导航到你设置的 `GTS_HOST` 值。你应该会看到 GoToSocial 的登陆页面。干得不错!
## (可选)反向代理
如果你想在 443 端口上运行其他网络服务器或想增加额外的安全层,你可能需要使用[反向代理](../reverse_proxy/index.md)。我们为几个流行的开源选项提供了指南,并乐意接受更多的拉取请求以增加新的指南。

View file

@ -0,0 +1,14 @@
# 安装
正如我们在[版本发布](../releases.md)中提到的那样,我们发布了官方的二进制版本和容器版本。我们提供了一些指南,用于说明如何以这种方式部署你自己的 GoToSocial 实例。
在继续安装之前,请确保你已阅读[部署注意事项](../index.md),并准备好了域名和服务器。
另外,花一点时间熟悉[如何配置](../../configuration/index.md)GoToSocial。
## 指南
对于第三方发布版本,我们不提供使用指南。需要参考他们自己的文档。我们的指南可能仍然有助于你熟悉需要设置和调整哪些配置选项。
* [裸机](metal.md)
* [容器](container.md)

View file

@ -0,0 +1,164 @@
# 裸机
本指南将引导你在裸机上使用官方二进制发行版来运行 GoToSocial。
## 准备 VPS
在 VPS 或你的家庭服务器终端中,创建 GoToSocial 运行的目录,它将用作存储的目录,以及存放 LetsEncrypt 证书的目录。
这意味着我们需要以下目录结构:
```
.
└── gotosocial
└── storage
└── certs
```
你可以通过以下命令一步创建所有目录:
```bash
mkdir -p /gotosocial/storage/certs
```
如果你在机器上没有 root 权限,请使用类似 `~/gotosocial` 的路径。
## 下载发行版
在 VPS 或你的家庭服务器终端中,进入你刚创建的 GoToSocial 根目录:
```bash
cd /gotosocial
```
现在,下载与你运行的操作系统和架构相对应的最新 GoToSocial 发行版压缩包。
!!! tip
你可以在[这里](https://github.com/superseriousbusiness/gotosocial/releases)找到按发布时间排列的发布列表,最新的发行版位于最上面。
例如,下载适用于 64 位 Linux 的版本:
```bash
GTS_VERSION=X.Y.Z # 替换此处
GTS_TARGET=linux_amd64
wget https://github.com/superseriousbusiness/gotosocial/releases/download/v${GTS_VERSION}/gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz
```
然后解压:
```bash
tar -xzf gotosocial_${GTS_VERSION}_${GTS_TARGET}.tar.gz
```
这将在你的当前目录放置 `gotosocial` 二进制文件,以及包含网页前端资源的 `web` 文件夹和包含示例配置文件的 `example` 文件夹。
!!! danger
如果你想使用基于当前主分支代码的 GoToSocial 快照构建,可以从[这里](https://minio.s3.superseriousbusiness.org/browser/gotosocial-snapshots)下载最近的二进制 .tar.gz 文件(基于提交哈希)。仅在你很清楚自己的操作时使用,否则请使用稳定版。
## 编辑配置文件
基于 `example` 文件夹中的 `config.yaml` 创建一个新的配置文件。你可以复制整个文件,但请确保仅保留已更改的设置。这让检查发布升级时的配置变化更加容易。
你可能需要更改以下设置:
- 设置 `host` 为你要运行服务器的域名(例如 `example.org`)。
- 设置 `port``443`
- 设置 `db-type``sqlite`
- 设置 `db-address``sqlite.db`
- 设置 `storage-local-base-path` 为你上面创建的存储目录(例如 `/gotosocial/storage`)。
- 设置 `letsencrypt-enabled``true`
- 设置 `letsencrypt-cert-dir` 为你上面创建的证书存储目录(例如 `/gotosocial/storage/certs`)。
上述选项假设你使用 SQLite 作为数据库。如果你想使用 Postgres请参阅[这里](../../configuration/database.md)获取配置选项。
!!! info "可选配置"
`config.yaml` 文件中记录了许多其他配置选项,可以进一步自定义你的 GoToSocial 实例的行为。这些选项在可能的情况下使用合理的默认值,因此现在不必对此进行任何更改,但以下是一些你可能感兴趣的选项:
- `instance-languages`: 确定实例首选语言的 [BCP47 语言标签](https://en.wikipedia.org/wiki/IETF_language_tag)数组。
- `media-remote-cache-days`: 保存在存储中外站媒体的缓存天数。
- `smtp-*`: 允许你的 GoToSocial 实例连接到邮件服务器并发送通知邮件的设置。
如果你决定稍后设置/更改这些变量,请确保在进行更改后重新启动你的 GoToSocial 实例。
## 运行二进制文件
你现在可以运行二进制文件了。
使用以下命令启动 GoToSocial 服务器:
```bash
./gotosocial --config-path ./config.yaml server start
```
服务器应该现在启动,并且你应该能通过浏览器访问你的域名的启动页面。请注意,首次创建 LetsEncrypt 证书可能需要最多一分钟的时间,因此如有必要请多次刷新页面。
注意在本例中我们假设可以运行在端口 443标准 HTTPS 端口),并且没有其他进程运行在该端口。
## 创建你的用户
你可以使用 GoToSocial 二进制文件来创建并提权你的用户账户。所有这些过程在我们的[创建用户](../user_creation.md)指南中均有记录。
## 登录
你现在应该可以使用刚创建的账户的电子邮件地址和密码登录到你的实例。
## (可选)启用 systemd 服务
如果你不喜欢每次启动时手动启动 GoToSocial你可能希望创建一个 systemd 服务为你启动。
首先,停止你的 GoToSocial 实例。
然后为你的 GoToSocial 安装创建一个新用户和用户组:
```bash
sudo useradd -r gotosocial
sudo groupadd gotosocial
sudo usermod -a -G gotosocial gotosocial
```
然后使其成为你的 GoToSocial 安装目录的所有者,因为它们需要在其中进行读写:
```bash
sudo chown -R gotosocial:gotosocial /gotosocial
```
你可以在 [GitHub](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/gotosocial.service) 或你的安装文件夹中的 `example` 文件夹中找到一个 `gotosocial.service` 文件。
将它复制到 `/etc/systemd/system/gotosocial.service`
```bash
sudo cp /gotosocial/example/gotosocial.service /etc/systemd/system/
```
然后使用 `sudoedit /etc/systemd/system/gotosocial.service` 在编辑器中打开文件。如果你在与本指南中使用的 `/gotosocial` 路径不同的目录中安装了 GoToSocial请根据你的安装修改 `ExecStart=``WorkingDirectory=` 行。
!!! info "运行在端口 80 和 443"
如果你完全遵循本指南,你的 GoToSocial 实例将配置为绑定到端口 443 和 80它们是已知的特权端口。要允许 GoToSocial 用户绑定到这些端口,你需要通过删除前导 `#` 来取消注释服务文件中的 `CAP_NET_BIND_SERVICE` 行。
修改前:
```
#AmbientCapabilities=CAP_NET_BIND_SERVICE
```
修改后:
```
AmbientCapabilities=CAP_NET_BIND_SERVICE
```
如果你以后决定使用反向代理运行 GoToSocial见下文你可能希望重新注释此行以移除权限因为反向代理将绑定到特权端口。
编辑完成后,保存并关闭文件,运行以下命令以启用服务:
```bash
sudo systemctl enable --now gotosocial.service
```
GoToSocial 现在应该已启动并运行。
## (可选)反向代理
如果你想在端口 443 上运行其他网络服务器或想添加额外的安全层,你可能希望使用[反向代理](../reverse_proxy/index.md)。我们提供了几个流行开源选项的指南,并非常欢迎提供更多指南的 pull requests。