Skip to content

系统设置总览

系统设置是管理后台的全局配置中心:管理后台 → 系统设置,左侧为 12 个分类菜单,右侧编辑对应配置项,修改后点击「保存设置」即生效——无需重启进程

它与 运行配置 config.yaml 的分工:

系统设置(本章节)config.yaml 配置文件
管什么业务运营:注册、登录、邮件、支付、限流、渠道调度、存储……基础设施:监听端口、数据库连接、Redis、JWT / 加密密钥、日志
怎么改管理后台界面修改,保存即热生效SSH 编辑文件,重启进程生效
存哪里PostgreSQL sys_options服务器本地文件

运行机制

配置的存储与读取

每个配置项由后端注册表(schema)统一定义:键名、类型(string / int / float / bool / json)、默认值、所属分类、校验规则、是否敏感、是否公开。读取链路:

业务代码 → 配置服务 → L1 进程内存缓存 → L2 Redis → PostgreSQL(sys_options)

数据库中没有的键自动使用注册表默认值,因此全新安装无需逐项配置,只改关心的项即可。

保存即生效

点击「保存设置」后:

  1. 逐项校验(类型、取值范围、枚举值,部分分类还有跨字段校验),任何一项不合法整批拒绝;
  2. 写入 sys_options 表;
  3. 清理本实例缓存,并通过 Redis Pub/Sub 广播到所有实例失效各自的内存缓存——多实例部署下全部节点同步生效。

绝大多数配置秒级生效,个别有短暂延迟(各配置页中有标注):

配置生效延迟
渠道路由策略保存后 30 秒内
渠道代理地址约 10 秒(本地缓存 TTL)
限流阈值(QPS / 并发)约 5 秒(限流配置快照)

敏感字段

密码、密钥类字段(SMTP 密码、Client Secret、Access Key 等)回显为掩码 ******保持掩码原样保存即表示「不修改」,只有填入新值才会覆盖。

公开配置

标注为公开的配置项(站点名称、开放注册、维护模式、Turnstile 站点密钥等)会通过公开接口暴露给未登录的租户端页面使用——登录页的注册开关、维护横幅、人机验证组件都依赖它们。

分类总览

分类内容概要配置项数
基础配置站点信息、注册策略与防刷、维护模式13
第三方登录GitHub / Google OAuth 登录接入8
邮件配置SMTP 发件服务器6
安全配置会话、登录防爆破、密码策略、人机验证11
审计配置请求审计级别与留存3
支付配置充值面额、折扣、汇率、支付说明7
性能配置四级 QPS 限流、并发、超时、缓存、沙箱17
内容过滤敏感词过滤策略4
渠道配置渠道探测 / 禁用、路由策略、代理、协议转换14
存储配置S3 / MinIO / R2 / OSS / COS 对象存储9
数据治理各类日志与文件的保留周期8
用户协议用户协议开关1

通过 API 修改(自动化)

系统设置均有对应的管理端 API(需管理员登录态):

方法路径说明
GET/api/admin/settings/categories分类列表
GET/api/admin/settings/{category}读取某分类全部配置项(含 schema 与当前值)
PUT/api/admin/settings/{category}批量保存,body 为 {"settings": {"键": "值", ...}}

适合用脚本 / IaC 批量初始化配置。

部署环境变量

少量行为由环境变量控制(与系统设置、配置文件无关),仅在进程启动时读取:

变量说明
INIT_ADMIN_USERNAME / INIT_ADMIN_PASSWORD首次启动且系统无管理员时自动创建管理员(已有管理员则跳过),见 Docker Compose 部署
GF_GCFG_PATH指定 config.yaml 的绝对路径(GoFrame 约定),见 二进制部署
TZ进程时区(容器部署建议设为 Asia/Shanghai

下一步

按分类逐页了解每项配置的作用,或从 基础配置 开始按顺序阅读。

基于 AGPL-3.0 许可发布