[docs/zh] Update zh docs: synced to e10de84 (#3763)

* [docs/zh] Update zh docs: synced to e10de84

* [docs/zh] update mkdocs config of zh docs

* [docs/zh] update repo docs translations (README, ROADMAP, CONTRIBUTING) + update swagger schema metadata of docs/zh
This commit is contained in:
CDN 2025-02-09 18:13:08 +08:00 committed by GitHub
commit 62f25ea08a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
42 changed files with 1789 additions and 152 deletions

View file

@ -1,8 +1,6 @@
# 基础配置
GoToSocial 的基础配置,包括域名、端口、绑定地址和传输协议等基本内容。
这里*真正*需要设置的只有 `host`,也就是你实例可以访问的域名,可能还需要设置 `port`
GoToSocial 的顶级配置,包括域名、端口、绑定地址和可信代理等基本信息。
## 设置

View file

@ -112,4 +112,47 @@ instance-deliver-to-shared-inboxes: true
# 选项: [true, false]
# 默认值: false
instance-inject-mastodon-version: false
# 字符串。hh:mm 格式的 24 小时制时间。
# 示例: ["14:30", "00:00", "04:00"]
# 默认值: "23:00" 晚上11点
instance-subscriptions-process-from: "23:00"
# 时间间隔。表示更新订阅的周期。
# 示例:["24h", "72h", "12h"]
# 默认值: "24h"(每天一次)。
instance-subscriptions-process-every: "24h"
# 字符串。允许你自定义是否以及如何在 /api/v1|v2/instance
# 和 /nodeinfo 端点向爬虫提供统计数据。
#
# 请注意,无论你在这里进行何种设置,/api/v1|v2/instance
# 端点都不会被 robots.txt 允许抓取,因为这些是客户端
# API端点。
#
# "" / 空字符串(默认模式): 在 instance 和 nodeinfo 端点提供准确的统计数据,
# 并在 robots.txt 中禁止爬虫抓取这些端点。这种模式相当于礼貌地
# 要求爬虫不抓取,但不能保证它们会遵从这些规则,
# 因为遗憾的是许多爬虫甚至不会检查robots.txt。
#
# "zero": 在 instance 和 nodeinfo 端点提供全为零的统计数据,
# 并在 robots.txt 中禁止爬虫抓取这些端点。
# 这种模式阻止行为不端的爬虫收集有关您的实例的统计数据,
# 因为所有收集的值都将为0。这在统计数据方面
# 是保护您的实例隐私的最安全方法。
#
# "serve": 在 instance 和 nodeinfo 端点提供准确的统计数据,
# 并允许爬虫抓取这些端点。如果您希望为
# 联邦宇宙统计信息收集项目做贡献,此模式将非常有用。
#
# "baffle": 在 instance 和 nodeinfo 端点提供随机且荒谬的统计数据,
# 并在 robots.txt 中禁止爬虫抓取这些端点。
# 这种模式可以用于使不尊重 robots.txt 的爬虫感到困惑。
# 警告,此做法可能会引起不尊重 robots.txt 的爬虫开发者的怨恨,
# 因此可能会给您的实例带来风险。
#
# 选项: ["", "zero", "serve", "baffle"]
# 默认: ""
instance-stats-mode: ""
```

View file

@ -10,7 +10,7 @@ GoToSocial 支持 [OpenID Connect](https://openid.net/connect/),这是一种
- 你希望将用户、账户、密码等的管理委托给外部服务,以简化管理。
- 你已经在外部系统中有很多用户,不想在 GoToSocial 中手动重新创建他们。
!!! tip
!!! tip "提示"
如果用户尚不存在,且你的 IdP 没有返回非空的 `email` 作为 claims 的一部分,登录将会失败。这个 email 需要在此实例中是唯一的。尽管我们使用 `sub` claim 将外部身份与 GtS 用户关联,但创建用户时需要一个与之关联的 email。
## 设置

View file

@ -0,0 +1,171 @@
# 可信代理
为了正确执行[速率限制](../api/ratelimiting.md)GoToSocial 依赖于“可信代理”的概念,以准确确定访问你的实例的客户端的 IP 地址。
“可信代理”是一个中间网络跳转层GoToSocial 可以配置为信任由该代理层提供的正确的客户端 IP 地址。
例如,如果你使用 Docker + Nginx 的反向代理配置中运行,那么 Nginx 的 Docker 网络地址应该被配置为可信代理,因为从广域互联网传入的所有流量将通过 Nginx 进入 GoToSocial。
如果没有正确设置 `trusted-proxies` GoToSocial 将看到所有的入站客户端的 IP 地址都是同一个地址,这会导致速率限制的问题,因为 GoToSocial 使用客户端 IP 地址来执行速率限制。
## 总结:如何正确设置 `trusted-proxies`
如果你的 `trusted-proxies` 设置没有正确配置你可能会在实例的网页视图中看到以下警告v0.18.0及以上版本):
> 警告!此实例的配置中 trusted-proxies 的设置似乎不正确。这可能导致速率限制问题,进而导致联合问题。
>
> 如果你是实例管理员,你应该通过将 `SUGGESTED_IP_RANGE` 添加到你的 trusted-proxies 来修复此问题。
要解决这个问题可以复制消息中的IP范围并编辑你的 `config.yaml` 文件将IP范围添加到你的 `trusted-proxies` 中。
!!! tip "即使你没有看到上述警告,你也可能会遇到速率限制!"
如果你使用的是低于 v0.18.0 版本的 GoToSocial或者你在 Cloudflare不推荐 这样的 CDN 之后运行,你将不会看到警告消息。相反,你会在 GoToSocial 日志中看到所有客户端的 IP 都是同一个地址。在这种情况下,可以将重复出现的客户端IP值作为`SUGGESTED_IP_RANGE`
在下面例子中,我们假定`SUGGESTED_IP_RANGE``172.17.0.1/16`默认的Docker桥接网络子网
修改之前(默认配置):
```yaml
trusted-proxies:
- "127.0.0.1/32"
- "::1"
```
修改之后(新配置):
```yaml
trusted-proxies:
- "172.17.0.1/16"
- "127.0.0.1/32"
- "::1"
```
如果你使用[环境变量](../configuration/index.md#环境变量)来配置你的实例,可以通过设置环境变量`GTS_TRUSTED_PROXIES`为以逗号分隔的IP范围列表来配置`trusted-proxies`,如下所示:
```env
GTS_TRUSTED_PROXIES="172.17.0.1/16,127.0.0.1/32,::1"
```
如果你使用 docker compose你的 docker-compose.yaml 文件在更改后应如下所示(注意 yaml 使用 `:` 而不是 `=`:
```yaml
################################
# 其他配置内容 #
################################
environment:
############################
# 其他环境变量 #
############################
## 对于反向代理设置:
GTS_TRUSTED_PROXIES: "172.17.0.1/16,127.0.0.1/32,::1"
################################
# 其他配置内容 #
################################
```
一旦你完成了必要的配置更改,**重启你的实例**并刷新主页。
如果消息消失,则问题已解决!
如果你仍然看到警告消息,但显示了一个不同的建议添加到`trusted-proxies`的 IP 范围,那么重复上述步骤,在你的配置中添加新的建议 IP 范围。
!!! tip "Cloudflare 的 IP 地址列表"
如果你在 GoToSocial 实例前面使用 CDN/代理,例如 Cloudflare (不推荐),那么你可能需要将一个或多个 Cloudflare IP 地址添加到你的 `trusted-proxies`以便速率限制正常工作。你可以在这里找到Cloudflare 的 IP 地址列表: https://www.cloudflare.com/ips/
## 我可能无法正确配置 `trusted-proxies`,可以直接禁用警告吗?
在某些情况下,很难实际正确配置 `trusted-proxies` 来检测入站请求的真实客户端 IP或者确保真实客户端 IP 是准确、但是仍显示为在私有网络内的。
例如,如果你在家用网络上运行 GoToSocial且实例位于无法注入 `X-Forwarded-For` 标头的家庭互联网路由器之后,那么建议你添加到 `trusted-proxies` 的条目看起来会像 `192.168.x.x`,但将其添加到 `trusted-proxies` 后问题依然无法解决。
另一个例子是:你在家庭网络上运行 GoToSocialGoToSocial 连接到家庭网络的路由器,并且你从同样在你家庭网络设备(比如笔记本或手机)上访问 Web 前端。在这种情况下,你的路由器可能会直接将你发送到你的 GoToSocial 实例,且你的请求不会离开家用网络,因此 GtS 将正确地认为*你的*客户端 IP 地址是一个私人网络地址,但*其他*从更广泛的互联网传入的请求将显示其真实的远程客户端 IP 地址。在这种情况下,`trusted-proxies` 的警告实际上不适用。
如果你已尝试编辑 `trusted-proxies` 设置,但仍看到警告,可能上面的一个例子适用于你。你可以通过以下两种方式之一继续:
### 为家庭网络添加速率限制例外(推荐)
如果 `trusted-proxies` 警告中的建议 IP 范围看起来像 `192.168.x.x`,但你在 GoToSocial 日志中仍看到其他客户端 IP 不以 `192.168` 开头,那么可以尝试只为家庭网络上的设备添加速率限制例外,同时对外部 IP 地址保持速率限制。
例如,如果你的建议是类似 `192.168.1.128/32`,那么将 `/32` 换为 `/24`,以便使范围覆盖 `192.168.1.0` -> `192.168.1.255`,并将其添加到 `config.yaml` 文件中的 `advanced-rate-limit-exceptions` 设置中。
默认设置(修改前):
```yaml
advanced-rate-limit-exceptions: []
```
设置修改后:
```yaml
advanced-rate-limit-exceptions:
- "192.168.1.128/24"
```
如果你使用[环境变量](../configuration/index.md#环境变量)来配置实例,可以将环境变量 `GTS_ADVANCED_RATE_LIMIT_EXCEPTIONS` 设为以逗号分隔的 IP 范围列表,来配置 `advanced-rate-limit-exceptions`,如下所示:
```env
GTS_ADVANCED_RATE_LIMIT_EXCEPTIONS="192.168.1.128/24"
```
如果使用 docker compose修改后的 docker-compose.yaml 文件应如下所示(注意 yaml 使用 `: ` 而不是 `=`)
```yaml
################################
# 其他配置内容 #
################################
environment:
############################
# 其他环境变量 #
############################
GTS_ADVANCED_RATE_LIMIT_EXCEPTIONS: "192.168.1.128/24"
################################
# 其他配置内容 #
################################
```
完成必要的配置更改后,**重启你的实例**并刷新主页。
### 完全关闭速率限制(最后手段)
如果其他方法无效,你可以完全禁用速率限制,这也会禁用 `trusted-proxies` 检查和警告。
!!! warning "警告"
完全关闭速率限制应被视为最后的手段,因为速率限制有助于保护你的实例免受骚扰信息和爬虫攻击。
要关闭速率限制,请在 `config.yaml` 中将 `advanced-rate-limit-requests` 设置为 0。
默认配置前:
```yaml
advanced-rate-limit-requests: 300
```
设置后:
```yaml
advanced-rate-limit-requests: 0
```
如果你使用[环境变量](../configuration/index.md#环境变量)来配置实例,可以通过将环境变量 `GTS_ADVANCED_RATE_LIMIT_REQUESTS` 设置为 0来配置 `advanced-rate-limit-requests`,如下所示:
```env
GTS_ADVANCED_RATE_LIMIT_REQUESTS="0"
```
如果使用 docker compose改变后的 docker-compose.yaml 文件应如下所示(注意 yaml 使用 `: ` 而不是 `=`)
```yaml
################################
# 其他配置内容 #
################################
environment:
############################
# 其他环境变量 #
############################
GTS_ADVANCED_RATE_LIMIT_REQUESTS: "0"
################################
# 其他配置内容 #
################################
```
完成必要的配置更改后,**重启你的实例**并刷新主页。