C. 配置项速查
概述
manifest/config/config.yaml 全键速查。环境变量覆盖(12-Factor,环境变量 > 配置文件):GF_ 前缀 + 键路径大写下划线(如 GF_DATABASE_DEFAULT_LINK);空值视为未设置,仅覆盖本文件已有键,键名规则与 Docker 注入方式详见 2.5 配置文件说明。
server(服务端)
| 键 | 默认 | 说明 |
|---|---|---|
| server.address | :8000 | 监听地址 |
| server.openapiPath | /api.json | OpenAPI 路径 |
| server.swaggerPath | "" | Swagger UI(本地托管 resource/swagger/) |
| server.dumpRouterMap | false | 启动打印路由表 |
| server.errorStack | true | 响应携带堆栈(生产 false) |
| server.graceful | true | 优雅重启 |
logger / database / redis
| 键 | 默认 | 说明 |
|---|---|---|
| logger.level | all | 日志级别 |
| logger.stdout | true | 控制台输出 |
| logger.path | log | 日志目录 |
| database.default.type | mysql | 五方言:mysql/pgsql/mssql/oracle/sqlite |
| database.default.link | — | 连接串(库名含点需注意) |
| database.default.debug | false | SQL 日志(生产 false) |
| redis.default.address | 127.0.0.1:6379 | 地址 |
| redis.default.pass | — | 密码(生产强密码) |
| redis.default.db / idle / maxActive / timeout | 0/10/50/300 | 池参数 |
jwt / captcha / rateLimit
| 键 | 默认 | 说明 |
|---|---|---|
| jwt.secret | — | 签名密钥(生产必改) |
| jwt.issuer | easygoadmin | 签发者 |
| jwt.accessTokenExpire | 7200 | 访问令牌秒数(2h) |
| jwt.refreshTokenExpire | 604800 | 刷新令牌秒数(7d) |
| captcha.expire | 300 | 验证码秒数 |
| captcha.bypassCode | 618618 | 万能码(生产留空) |
| captcha.length / chars | 6 / 排除易混淆 | 字符 |
| captcha.fontPath | resource/static/fonts/Vera.ttf | 缺失降级 SVG |
| captcha.imageWidth/Height/fontSize | 160/50/40 | 尺寸 |
| captcha.noiseLines/noiseDots | 8/500 | 干扰 |
| rateLimit.enable | true | 限流开关 |
| rateLimit.limit | 120 | 普通接口/窗口/IP/路径 |
| rateLimit.windowSeconds | 60 | 窗口 |
| rateLimit.authLimit | 10 | 认证入口严阈值 |
operationLog / job / tenant / app
| 键 | 默认 | 说明 |
|---|---|---|
| operationLog.enable | true | 操作日志总开关 |
| operationLog.logQuery | true | 记录查询类 |
| job.logRetentionDays | 90 | 三张日志表保留天数(LogClean 消费) |
| tenant.defaultId | 1 | 超管新增的默认归属租户 |
| app.timezone | Asia/Shanghai | 时区 |
| app.demo | false | 演示模式(true 拦截全部写操作) |
| app.errorMsg | true | 详细错误信息(生产 false) |
api / cors / file / generator / ip2region
| 键 | 默认 | 说明 |
|---|---|---|
| api.camelSnakeConvert | true | 驼峰转换(恒开) |
| api.proxyIps | 127.0.0.1,::1,CIDR… | 受信代理(XFF 信任范围) |
| cors.allowOrigin | * | 跨域来源 |
| file.uploadDir | 随环境(当前为开发机绝对路径) | 上传物理根;建议相对项目根,容器部署用 GF_FILE_UPLOADDIR 覆盖 |
| file.domainUrl | http://file.goframe.elevue | 文件访问域名(空=相对 /upload/ 路径) |
| file.tempDir | temp | 临时目录名 |
| file.imageExt | gif,jpg,jpeg,png,bmp,webp,svg | 图片白名单 |
| file.fileExt | (含 doc/xls/pdf/zip/js/css/sql 等) | 文件白名单(公网收紧) |
| file.maxSize | 10 | 单文件 MB |
| file.tempExpireDays | 7 | temp 保留天数(0=不清理) |
| generator.parentMenuId | 189 | 新模块菜单父级 ID |
| generator.overwrite | true | 覆盖开关(唯一入口;true=生成即覆盖,false=缺失补生成、存在跳过) |
| ip2region.path | manifest/data/ip2region.xdb | 归属地库 |
环境变量覆盖示例
sh
GF_SERVER_ADDRESS=":9000"
GF_DATABASE_DEFAULT_LINK="mysql:root:secret@tcp(db:3306)/easygoadmin?charset=utf8mb4&parseTime=true"
GF_REDIS_DEFAULT_ADDRESS="redis:6379"
GF_JWT_SECRET="random"
GF_APP_DEMO="false"
GF_FILE_MAXSIZE="20"新增配置键规范
text
1. config.yaml 增加键 + 注释说明
2. 代码用 cfgBool/cfgInt 带默认值读取(缺失不 panic)
3. 本文档同步
4. 影响限流/日志/上传/调度的键变更后跑对应回归