gotosocial/docs/locales/zh/configuration/index.md

139 lines
6 KiB
Markdown
Raw Normal View History

2024-11-01 21:58:56 +00:00
# 配置概述
GoToSocial 力求尽可能让所有属性可配置,以适应多种不同的使用场景。
我们尽量提供合理的默认值,但在运行 GoToSocial 实例时,你需要进行*一些*配置管理。
## 配置方法
配置 GoToSocial 实例有三种不同的方法,这些方法可以根据你的设置进行组合。
### 配置文件
配置 GoToSocial 最简单的方法是将配置文件传递给 `gotosocial server start` 命令,例如:
```bash
gotosocial --config-path ./config.yaml server start
```
该命令需要一个 [YAML](https://en.wikipedia.org/wiki/YAML) 或 [JSON](https://en.wikipedia.org/wiki/JSON) 格式的文件。
可以在[这里](https://github.com/superseriousbusiness/gotosocial/blob/main/example/config.yaml)找到示例配置文件,其中包含每个配置字段的解释、默认值和示例值。此示例文件也包含在每个发行版的下载资源中。
建议创建你自己的配置文件,只更改你需要改变的设置。这可以确保在每次发布时,你不必合并默认值的更改或者增删未从默认值更改的配置设置。
#### 在容器中挂载
你可能需要在容器中挂载一个 `config.yaml`,因为某些设置不容易通过环境变量或命令行标志管理。
为此,请在主机上创建一个 `config.yaml`,将其挂载到容器中,然后告诉 GoToSocial 读取该配置文件。可以通过将容器的运行命令设置为 `--config-path /path/inside/container/to/config.yaml` 或使用 `GTS_CONFIG_PATH` 环境变量来实现这一点。
对于 docker compose可以这样修改配置
```yaml
services:
gotosocial:
command: ["--config-path", "/gotosocial/config.yaml"]
volumes:
- type: bind
source: /path/on/the/host/to/config.yaml
target: /gotosocial/config.yaml
read_only: true
```
或者,通过环境变量来修改配置:
```yaml
services:
gotosocial:
environment:
GTS_CONFIG_PATH: /gotosocial/config.yaml
volumes:
- type: bind
source: /path/on/the/host/to/config.yaml
target: /gotosocial/config.yaml
read_only: true
```
对于 Docker 或 Podman 命令行,需要传递一个 [符合规范的挂载参数](https://docs.podman.io/en/latest/markdown/podman-run.1.html#mount-type-type-type-specific-option)。
在使用 `docker run``podman run` 时,传递 `--config-path /gotosocial/config.yaml` 作为命令,例如:
```sh
podman run \
--mount type=bind,source=/path/on/the/host/to/config.yaml,destination=/gotosocial/config.yaml,readonly \
docker.io/superseriousbusiness/gotosocial:latest \
--config-path /gotosocial/config.yaml
```
使用 `GTS_CONFIG_PATH` 环境变量:
```sh
podman run \
--mount type=bind,source=/path/on/the/host/to/config.yaml,destination=/gotosocial/config.yaml,readonly \
--env 'GTS_CONFIG_PATH=/gotosocial/config.yaml' \
docker.io/superseriousbusiness/gotosocial:latest
```
### 环境变量
你也可以通过设置[环境变量](https://en.wikipedia.org/wiki/Environment_variable)来配置 GoToSocial。这些环境变量遵循的格式为
1. 在配置标志前加上 `GTS_`
2. 全部使用大写。
3. 将短横线(`-`)替换为下划线(`_`)。
例如,如果不想在 config.yaml 中设置 `media-image-max-size``2097152`,你可以改为设置环境变量:
```text
GTS_MEDIA_IMAGE_MAX_SIZE=2097152
```
如果对于环境变量名称有疑问,只需查看你正在使用的子命令的 `--help`
### 命令行标志
最后,你可以使用命令行标志来设置配置值,这些标志是在运行 `gotosocial` 命令时直接传递的。例如,不在 config.yaml 或环境变量中设置 `media-image-max-size`,你可以直接通过命令行传递值:
```bash
gotosocial server start --media-image-max-size 2097152
```
如果不确定哪些标志可用,请检查 `gotosocial --help`
## 优先级
上述配置方法按列出的顺序相互覆盖。
```text
命令行标志 > 环境变量 > 配置文件
```
也就是说,如果你在配置文件中将 `media-image-max-size` 设置为 `2097152`,但*也*设置了环境变量 `GTS_MEDIA_MAX_IMAGE_SIZE=9999999`,则最终值将为 `9999999`,因为环境变量比 config.yaml 中设置的值具有*更高的优先级*。
命令行标志具有最高优先级,因此如果你设置了 `--media-image-max-size 13121312`,无论你在其他地方设置了什么,最终值都将为 `13121312`
这意味着在你只想尝试改变一件事,但不想编辑配置文件的情况下,可以临时使用环境变量或命令行标志来设置那个东西。
## 默认值
*大多数*配置参数都提供了合理的默认值,除了必须自定义值的情况。
请查看[示例配置文件](https://github.com/superseriousbusiness/gotosocial/blob/main/example/config.yaml)以获取默认值,或运行 `gotosocial --help`
## `GTS_WAZERO_COMPILATION_CACHE`
启动时GoToSocial 会将嵌入的 WebAssembly `ffmpeg``ffprobe` 二进制文件编译为 [Wazero](https://wazero.io/) 兼容模块,这些模块用于媒体处理,无需任何外部依赖。
为了加快 GoToSocial 的启动时间,你可以在首次启动时缓存已编译的模块,这样 GoToSocial 就不必在每次启动时从头开始编译它们。
你可以通过将环境变量 `GTS_WAZERO_COMPILATION_CACHE` 设置为一个目录来指示 GoToSocial 存储 Wazero 工件,该目录将由 GtS 用于存储两个大小约为 ~50MiB 的小型工件(总计约 ~100MiB
要了解此方法的示例,请参见 [docker-compose.yaml](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yaml) 和 [gotosocial.service](https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/gotosocial.service) 示例文件。
如果你希望在 systemd 或 Docker 之外为 GtS 提供此值,可以在启动 GtS 服务器时通过以下方式进行:
```bash
GTS_WAZERO_COMPILATION_CACHE=~/gotosocial/.cache ./gotosocial --config-path ./config.yaml server start
```