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

6.0 KiB
Raw Permalink Blame History

配置概述

GoToSocial 力求尽可能让所有属性可配置,以适应多种不同的使用场景。

我们尽量提供合理的默认值,但在运行 GoToSocial 实例时,你需要进行一些配置管理。

配置方法

配置 GoToSocial 实例有三种不同的方法,这些方法可以根据你的设置进行组合。

配置文件

配置 GoToSocial 最简单的方法是将配置文件传递给 gotosocial server start 命令,例如:

gotosocial --config-path ./config.yaml server start

该命令需要一个 YAMLJSON 格式的文件。

可以在这里找到示例配置文件,其中包含每个配置字段的解释、默认值和示例值。此示例文件也包含在每个发行版的下载资源中。

建议创建你自己的配置文件,只更改你需要改变的设置。这可以确保在每次发布时,你不必合并默认值的更改或者增删未从默认值更改的配置设置。

在容器中挂载

你可能需要在容器中挂载一个 config.yaml,因为某些设置不容易通过环境变量或命令行标志管理。

为此,请在主机上创建一个 config.yaml,将其挂载到容器中,然后告诉 GoToSocial 读取该配置文件。可以通过将容器的运行命令设置为 --config-path /path/inside/container/to/config.yaml 或使用 GTS_CONFIG_PATH 环境变量来实现这一点。

对于 docker compose可以这样修改配置

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

或者,通过环境变量来修改配置:

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 命令行,需要传递一个 符合规范的挂载参数

在使用 docker runpodman run 时,传递 --config-path /gotosocial/config.yaml 作为命令,例如:

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 环境变量:

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

环境变量

你也可以通过设置环境变量来配置 GoToSocial。这些环境变量遵循的格式为

  1. 在配置标志前加上 GTS_
  2. 全部使用大写。
  3. 将短横线(-)替换为下划线(_)。

例如,如果不想在 config.yaml 中设置 media-image-max-size2097152,你可以改为设置环境变量:

GTS_MEDIA_IMAGE_MAX_SIZE=2097152

如果对于环境变量名称有疑问,只需查看你正在使用的子命令的 --help

命令行标志

最后,你可以使用命令行标志来设置配置值,这些标志是在运行 gotosocial 命令时直接传递的。例如,不在 config.yaml 或环境变量中设置 media-image-max-size,你可以直接通过命令行传递值:

gotosocial server start --media-image-max-size 2097152 

如果不确定哪些标志可用,请检查 gotosocial --help

优先级

上述配置方法按列出的顺序相互覆盖。

命令行标志 > 环境变量 > 配置文件

也就是说,如果你在配置文件中将 media-image-max-size 设置为 2097152,但设置了环境变量 GTS_MEDIA_MAX_IMAGE_SIZE=9999999,则最终值将为 9999999,因为环境变量比 config.yaml 中设置的值具有更高的优先级

命令行标志具有最高优先级,因此如果你设置了 --media-image-max-size 13121312,无论你在其他地方设置了什么,最终值都将为 13121312

这意味着在你只想尝试改变一件事,但不想编辑配置文件的情况下,可以临时使用环境变量或命令行标志来设置那个东西。

默认值

大多数配置参数都提供了合理的默认值,除了必须自定义值的情况。

请查看示例配置文件以获取默认值,或运行 gotosocial --help

GTS_WAZERO_COMPILATION_CACHE

启动时GoToSocial 会将嵌入的 WebAssembly ffmpegffprobe 二进制文件编译为 Wazero 兼容模块,这些模块用于媒体处理,无需任何外部依赖。

为了加快 GoToSocial 的启动时间,你可以在首次启动时缓存已编译的模块,这样 GoToSocial 就不必在每次启动时从头开始编译它们。

你可以通过将环境变量 GTS_WAZERO_COMPILATION_CACHE 设置为一个目录来指示 GoToSocial 存储 Wazero 工件,该目录将由 GtS 用于存储两个大小约为 ~50MiB 的小型工件(总计约 ~100MiB

要了解此方法的示例,请参见 docker-compose.yamlgotosocial.service 示例文件。

如果你希望在 systemd 或 Docker 之外为 GtS 提供此值,可以在启动 GtS 服务器时通过以下方式进行:

GTS_WAZERO_COMPILATION_CACHE=~/gotosocial/.cache ./gotosocial --config-path ./config.yaml server start