Skip to content

配置说明

YourTJ Hub 的论坛使用 apps/gooseforum/config.toml 进行配置(不是环境变量)。首次启动时由内嵌模板生成该文件,它已被 Git 忽略,不应提交——其中包含签名密钥与第三方服务凭据。

  • 本地开发:apps/gooseforum/config.toml
  • 服务器:main/config.toml(生产)/ dev/config.toml(测试线)

[app] 应用设置

说明
env运行环境。local 绑定 127.0.0.1;任何非 local 值都会强制 session cookie 携带 Secure(即使 server.urlhttp://…,issue #113)
debug调试模式开关
maintenance维护模式
signingKey签名密钥,必填且 fail-closed:缺失、空白或 REPLACE_SIGNING_KEY 占位值都会导致启动直接退出(防止伪造密码重置令牌,issue #106)
cdn_urlCDN 前缀(可选)

生成签名密钥:

bash
openssl rand -base64 32

[server] 服务设置

说明
url站点 URL(用于生成链接与 cookie 判定)
port监听端口,默认 5234
accessLog访问日志开关
gzipgzip 压缩开关
trusted_proxies信任的反向代理地址(默认仅信任 127.0.0.1 / ::1

[jwtopt] 会话凭证

说明
validTimeJWT 会话有效时长(秒),默认 604800(7 天)

[db] 数据库

说明
[db.default]主库:SQLite 默认,也支持 MySQL 与 PostgreSQL(issue #11)
[db.file]文件库(附件 BLOB):固定使用 SQLite
migration启动时执行迁移(on / off),默认 on

切换主库到本地 PostgreSQL 示例:

toml
[db.default]
connection = "postgres"
url = "host=127.0.0.1 user=yourtj password=yourtj dbname=yourtj port=5432 sslmode=disable"

二进制在首次启动时会对主库全部模型执行 AutoMigrate,并运行版本化数据迁移。

[meilisearch] 搜索(可选)

说明
urlMeilisearch 地址,本地默认 http://localhost:7700
masterkeyMeilisearch master key

搜索是可选的:未配置时搜索功能整体不可用,但不影响论坛其余功能。

[log] 日志

说明
type / path / rolling日志类型、路径与轮转
leveldebug / info / warn / error
formatjson / console
errorPathWARN/ERROR 独立轮转文件
logIp访问日志是否记录客户端 IP,默认关闭(隐私考量)
slowSQL慢 SQL 日志

日志配置修改后需要重启进程。

[github] GitHub OAuth

配置 GitHub OAuth 的 client_id / client_secret,用于 GitHub 登录。

[oidc] 内建 OIDC Provider

论坛内建 OIDC Provider 从 [oidc] 段读取配置,为第一方客户端(移动端、未来的校园服务)签发标准 OIDC 令牌:

说明
enabled是否启用;启用时在 /api/oauth 下挂载 OIDC 端点
issuerissuer 值,默认取 server.url + /api/oauth必须与对外公布的 discovery 值完全一致
signing_key_fileRS256 签名私钥文件(也可用内联 signing_key;二者都为空时自动生成并持久化)
access_token_ttl / auth_request_ttl / id_token_ttl各类令牌有效期(秒),默认 3600 / 600 / 3600
[[oidc.clients]]第一方客户端:id / name / redirect_urissecret 可选(public 客户端不填,强制 PKCE)

几点约束:

  • 提供者只接受 loopback 的 http issuer;默认本地 issuer 为 http://localhost:5234/api/oauth
  • 没有管理后台 UI 修改这些值——改配置文件后重启生效;
  • Android 模拟器必须通过 adb reverse tcp:5234 tcp:5234 访问该地址,10.0.2.2 不是合法的 local issuer。

完整示例见仓库内 deploy/config.toml.example

安全提醒

  • config.tomlsigningKey 等敏感信息,绝不提交到 Git
  • signingKey 缺失或过弱时进程启动即退出(fail-closed),无默认回退;
  • 轮换 signingKey 会让所有会话、TOTP 密钥加密与重置链接同时失效,且不支持热加载——轮换后必须重启进程,使各表面一致地切换到新密钥。

相关文档

MIT 许可仅适用于 apps/gooseforum(基于 GooseForum 的修改);monorepo 其余部分暂无根级许可证