# C. 配置项速查 :::tip 概述 manifest/config/config.yaml 全键速查。环境变量覆盖(12-Factor,环境变量 > 配置文件):`GF_` 前缀 + 键路径大写下划线(如 GF_DATABASE_DEFAULT_LINK);空值视为未设置,仅覆盖本文件已有键,键名规则与 Docker 注入方式详见 [2.5 配置文件说明](../quickstart/env-vars)。 ::: ## 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. 影响限流/日志/上传/调度的键变更后跑对应回归 ```