Files
EasyGoAdmin_GoFrame_EleVue/manifest/config/config.yaml
T
2026-10-20 11:37:25 +08:00

149 lines
9.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ======================================================================
# EasyGoAdmin 运行时配置
# 环境变量覆盖规则:使用 GF_GENV_ 前缀,例如 GF_GENV_DATABASE_DEFAULT_LINK
# ======================================================================
# ----------------------------------------------------------------------------
# 服务端:监听地址、OpenAPI 文档与优雅重启
# ----------------------------------------------------------------------------
server:
address: ":8000" # 监听地址与端口
openapiPath: "/api.json" # OpenAPI 文档路径(gf 原生自动生成,bind.go 补注册闭包路由)
swaggerPath: "" # Swagger UI 路径(内置页依赖境外 CDN,已改为本地托管 resource/swagger/)
dumpRouterMap: false # 启动时是否打印路由表
errorStack: true # 响应中是否携带错误堆栈
graceful: true # 是否开启优雅重启
# ----------------------------------------------------------------------------
# 日志:级别、输出目标与文件目录
# ----------------------------------------------------------------------------
logger:
level: "all" # 日志级别
stdout: true # 是否输出到控制台
path: "log" # 日志文件目录
# ----------------------------------------------------------------------------
# 多数据库:切换数据库仅需修改 type 与 link(五方言示例)
# ----------------------------------------------------------------------------
database:
default:
type: "mysql" # 数据库类型
link: "mysql:root:root@tcp(127.0.0.1:3306)/easygoadmin.goframe.elevue?charset=utf8mb4&parseTime=true&loc=Local" # 连接串
debug: false # 是否打印 SQL 调试日志(调试期开启,生产环境改回 false)
# 其他方言示例:
# type: "pgsql" link: "pgsql:user:password@tcp(127.0.0.1:5432)/easygoadmin?sslmode=disable"
# type: "mssql" link: "mssql:sa:Password1@tcp(127.0.0.1:1433)/easygoadmin?encrypt=disable"
# type: "oracle" link: "oracle:user:password@tcp(127.0.0.1:1521)/XE"
# type: "sqlite" link: "sqlite::@file(easygoadmin.db)"
# ----------------------------------------------------------------------------
# Redis:缓存连接(JWT 黑名单、验证码、字典、租户与身份缓存)
# ----------------------------------------------------------------------------
redis:
default: # 分组名(g.Redis() 默认组)
address: "127.0.0.1:6379" # 地址
db: 0 # 库编号
pass: "123456" # 密码
idle: 10 # 空闲连接数
maxActive: 50 # 最大活跃连接数
timeout: 300 # 超时时间(秒)
# ----------------------------------------------------------------------------
# JWT 双令牌:accessToken 短时效 + refreshToken 长时效轮换
# ----------------------------------------------------------------------------
jwt:
secret: "easygoadmin-goframe-elevue-jwt-secret-2026" # 签名密钥
issuer: "easygoadmin" # 签发者
accessTokenExpire: 7200 # 访问令牌有效期(秒),2 小时
refreshTokenExpire: 604800 # 刷新令牌有效期(秒),7 天
# ----------------------------------------------------------------------------
# 图形验证码:字符集、图片尺寸与干扰参数
# ----------------------------------------------------------------------------
captcha:
expire: 300 # 有效期(秒)
bypassCode: "618618" # 万能验证码:携带该值免校验,仅开发调试使用,生产环境留空
length: 6 # 字符数,取值范围 4 到 8
chars: "ABCDEFGHJKLMNPQRSTUVWXYZ23456789" # 字符集,已排除 0O、1lI 等易混淆字符
fontPath: "resource/static/fonts/Vera.ttf" # TTF 字体路径(相对项目根),缺失时降级为 SVG 渲染
imageWidth: 160 # 图片宽度(像素),字符放不下时自动加宽防裁剪
imageHeight: 50 # 图片高度(像素)
fontSize: 40 # 字体大小
noiseLines: 8 # 干扰线数量,越多越难识别,影响可读性
noiseDots: 500 # 噪点数量,越多越难识别,影响可读性
# ----------------------------------------------------------------------------
# API 限流:固定窗口计数(键含窗口起点,缓存层 Redis 优先、内存降级)
# ----------------------------------------------------------------------------
rateLimit:
enable: true # 是否启用限流
limit: 120 # 普通接口每窗口每 IP 每路径最大请求数,0 关闭普通限流
windowSeconds: 60 # 计数窗口(秒)
authLimit: 10 # 登录/验证码/令牌兑换每窗口每 IP 最大请求数(更严格)
# ----------------------------------------------------------------------------
# 操作日志:总开关与查询类记录开关
# ----------------------------------------------------------------------------
operationLog:
enable: true # 是否启用操作日志
logQuery: true # 是否记录查询类操作
# ----------------------------------------------------------------------------
# 定时任务:日志保留天数(LogClean 任务消费,任务参数可覆盖)
# ----------------------------------------------------------------------------
job:
logRetentionDays: 90 # 操作/登录/任务日志保留天数,超期由 LogClean 任务物理删除
# ----------------------------------------------------------------------------
# 租户:超管新增租户级数据时的默认归属
# ----------------------------------------------------------------------------
tenant:
defaultId: 1 # 超管新增租户级数据时的默认归属租户ID,显式指定租户时从显式值
# ----------------------------------------------------------------------------
# 应用参数:时区、演示模式与错误信息开关
# ----------------------------------------------------------------------------
app:
timezone: "Asia/Shanghai" # 应用时区
demo: false # 演示模式:为 true 时写操作一律拒绝,读操作与登录类公开接口放行
errorMsg: true # 是否返回详细错误信息,生产环境建议置为 false
# ----------------------------------------------------------------------------
# API:驼峰转换与受信代理
# ----------------------------------------------------------------------------
api:
camelSnakeConvert: true # 是否启用驼峰与下划线自动转换,本项目全链路驼峰,恒开
# 受信代理列表,逗号分隔并支持 CIDR;
# 直连来源在此列表内才信任 X-Forwarded-For 与 X-Real-IP
proxyIps: "127.0.0.1,::1,101.226.0.0/15,112.65.0.0/16,140.207.0.0/16,180.101.0.0/16,182.254.0.0/16,223.166.0.0/16"
# ----------------------------------------------------------------------------
# 跨域:允许来源
# ----------------------------------------------------------------------------
cors:
allowOrigin: "*" # 允许的来源,为空或 * 时使用框架内置策略
# ----------------------------------------------------------------------------
# 文件上传:临时目录中转,提交保存时转正至正式目录
# ----------------------------------------------------------------------------
file:
uploadDir: "E:\\EasyGoAdmin_V3\\EasyGoAdmin_GoFrame_EleVue\\upload" # 物理根目录,相对项目根
domainUrl: "http://file.goframe.elevue" # 文件访问域名,为空时使用 /upload/ 相对路径
tempDir: "temp" # 临时目录名,位于 uploadDir 下
imageExt: "gif,jpg,jpeg,png,bmp,webp,svg" # 允许的图片扩展名
fileExt: "gif,jpg,jpeg,png,bmp,webp,svg,doc,docx,xls,xlsx,ppt,pptx,pdf,zip,rar,txt,csv,mp3,mp4,sql,js,css" # 允许的文件扩展名
maxSize: 10 # 单文件大小上限(MB)
tempExpireDays: 7 # 临时目录保留天数,超期自动清理,0 表示不清理
# ----------------------------------------------------------------------------
# 代码生成器:菜单挂载位置与文件覆盖策略
# ----------------------------------------------------------------------------
generator:
parentMenuId: 189 # 新模块菜单挂载的父级ID
overwrite: true # 是否覆盖已存在文件:true 生成即覆盖,false 或未配置时缺失补生成、存在跳过
# ----------------------------------------------------------------------------
# 归属地库:供登录日志与操作日志的归属地解析使用
# ----------------------------------------------------------------------------
ip2region:
path: "manifest/data/ip2region.xdb" # 归属地库文件路径