2个不稳定版本
0.3.0 | 2023年10月2日 |
---|---|
0.2.0 | 2023年9月29日 |
#517 in 配置
52KB
1K SLoC
fercord
一个用于个人使用的Rust编写的Discord机器人。
配置
本地/直接运行时
您可以通过设置环境变量CONFIG
(例如:CONFIG=$XDG_CONFIG_HOME/fercord/config.toml
)来指定配置文件的路径,或者如果未指定,我们将查找当前工作目录中的.config/config.toml
。
示例 config.toml
discord_token = "your-bot-token"
database_url = "sqlite://fercord.db"
redis_url = "redis://127.0.0.1/"
job_interval_min = 1
shard_key = "c69b7bb6-0ca4-40da-8bad-26d9d4d2fb50"
- discord_token:您的机器人令牌
- database_url:数据库的URL。目前我们只支持PostgreSQL
- redis_url:用于存储运行时配置的Redis实例的URL
- job_interval_min:调度器在运行之间的间隔(以分钟为单位)
- shard_key:连接到相同键值存储的每个机器人实例应该具有唯一UUID
环境变量中的配置
上面提到的每个变量都可以通过环境来覆盖。正确的环境变量前缀是"FERCORD_"。
要覆盖您的Discord令牌,请将环境变量FERCORD_DISCORD_TOKEN
设置为您的令牌。通过环境变量设置的设置优先于通过配置文件设置的设置。
Docker
容器在/config/config.toml
存储了内置的config.toml
。在那里设置的唯一设置是job_interval_min(设置为1)。如果您想构建自己的Docker镜像,您可以在Dockerfile中设置环境变量CONFIG
来覆盖fercord查找配置文件的位置。
这意味着以下环境变量必须指定,以便容器能够正常工作
- FERCORD_DISCORD_TOKEN
- FERCORD_DATABASE_URL
- FERCORD_REDIS_URL
- FERCORD_SHARD_KEY
如果您想设置不同的作业间隔,您可以通过FERCORD_JOB_INTERVAL_MIN
来指定。
sqlite数据库位于/data
目录中,名称为fercord.db
。容器将/data
作为卷公开,因此它将在更新等之间持久化。
RUST_LOG
容器中 RUST_LOG
的默认值是 info,sqlx::query=warn
。您可以覆盖此值,但如果选择这样做,请复制 sqlx::query
的值。
低于此日志级别的任何日志都将输出 sqlx 运行的查询,这可能会成为安全问题。
依赖关系
~34-53MB
~1M SLoC