server/config.yaml

JWT

yaml

# jwt configuration
jwt:
signing-key: 'qmPlus'

struct

type JWT struct {
SigningKey string `mapstructure:"signing-key" json:"signingKey" yaml:"signing-key"`
}

description

配置名类型说明
signing-keystringjwt的签名

Zap

yaml

# zap logger configuration
zap:
level: 'info'
format: 'console'
prefix: '[GIN-VUE-ADMIN]'
director: 'log'
link-name: 'latest_log'
show-line: true
encode-level: 'LowercaseColorLevelEncoder'
stacktrace-key: 'stacktrace'
log-in-console: true

struct

type Zap struct {
Level string `mapstructure:"level" json:"level" yaml:"level"`
Format string `mapstructure:"format" json:"format" yaml:"format"`
Prefix string `mapstructure:"prefix" json:"prefix" yaml:"prefix"`
Director string `mapstructure:"director" json:"director" yaml:"director"`
LinkName string `mapstructure:"link-name" json:"linkName" yaml:"link-name"`
ShowLine bool `mapstructure:"show-line" json:"showLine" yaml:"showLine"`
EncodeLevel string `mapstructure:"encode-level" json:"encodeLevel" yaml:"encode-level"`
StacktraceKey string `mapstructure:"stacktrace-key" json:"stacktraceKey" yaml:"stacktrace-key"`
LogInConsole bool `mapstructure:"log-in-console" json:"logInConsole" yaml:"log-in-console"`
}

description

配置名类型说明
levelstringlevel的模式的详细说明,请看zap官方文档
info: info模式,无错误的堆栈信息,只输出信息
debug:debug模式,有错误的堆栈详细信息
warn:warn模式
error: error模式,有错误的堆栈详细信息
dpanic: dpanic模式
panic: panic模式
fatal: fatal模式
formatstringconsole: 控制台形式输出日志 json: json格式输出日志
prefixstring日志的前缀
directorstring存放日志的文件夹,修改即可,不需要手动创建
link_namestring在server目录下会生成一个link_name的软连接文件,链接的是director配置项的最新日志文件
show_linebool显示行号, 默认为true,不建议修改
encode_levelstringLowercaseLevelEncoder:小写
LowercaseColorLevelEncoder:小写带颜色
CapitalLevelEncoder: 大写
CapitalColorLevelEncoder: 大写带颜色
stacktrace_keystring堆栈的名称,即在json格式输出日志时的josn的key
log_in_consolebool是否输出到控制台,默认为true
  • 开发环境 || 调试环境配置建议
    • level:debug
    • format:console
    • encode-level:LowercaseColorLevelEncoder或者encode-leve:CapitalColorLevelEncoder
  • 部署环境配置建议
    • level:error
    • format:json
    • encode-level: LowercaseLevelEncoder 或者 encode-level:CapitalLevelEncoder
    • log-in-console: false
  • 建议只是建议,按照自己的需求进行即可,给出建议仅供参考

Redis

yaml

# redis configuration
redis:
db: 0
addr: '127.0.0.1:6379'
password: ''

struct

type Redis struct {
DB int `mapstructure:"db" json:"db" yaml:"db"`
Addr string `mapstructure:"addr" json:"addr" yaml:"addr"`
Password string `mapstructure:"password" json:"password" yaml:"password"`
}

description

配置名类型说明
dbintredis的哪个数据库
addrstringredis连接地址及端口
passwordstring密码

Email

yaml

# email configuration
email:
to: 'xxx@qq.com'
port: 465
from: 'xxx@163.com'
host: 'smtp.163.com'
is-ssl: true
secret: 'xxx'
nickname: 'test'

struct

type Email struct {
To string `mapstructure:"to" json:"to" yaml:"to"`
Port int `mapstructure:"port" json:"port" yaml:"port"`
From string `mapstructure:"from" json:"from" yaml:"from"`
Host string `mapstructure:"host" json:"host" yaml:"host"`
IsSSL bool `mapstructure:"is-ssl" json:"isSSL" yaml:"is-ssl"`
Secret string `mapstructure:"secret" json:"secret" yaml:"secret"`
Nickname string `mapstructure:"nickname" json:"nickname" yaml:"nickname"`
}

description

配置名类型说明
tostring邮件接收者,可以是多个,
以英文逗号(,)进行区分,最好别带空格,如果是一个邮箱最后请不要加英文逗号(,)
portint邮件服务端口
fromstring用户名
hoststring邮箱的主服务器地址
is-sslbool是否使用ssl
secretstring密码
nicknamestring对方收到的昵称

Casbin

yaml

# casbin configuration
casbin:
model-path: './resource/rbac_model.conf'

struct

type Casbin struct {
ModelPath string `mapstructure:"model-path" json:"modelPath" yaml:"model-path"`
}

description

配置名类型说明建议是否修改
model-pathstring存放casbin模型的相对路径
默认值为./resource/rbac_model.conf
不推荐修改

System

yaml

# system configuration
system:
env: 'public' # Change to "develop" to skip authentication for development mode
addr: 8888
db-type: 'mysql'
oss-type: 'local'
need-init-data: false
use-multipoint: false

struct

type System struct {
Env string `mapstructure:"env" json:"env" yaml:"env"`
Addr int `mapstructure:"addr" json:"addr" yaml:"addr"`
DbType string `mapstructure:"db-type" json:"dbType" yaml:"db-type"`
OssType string `mapstructure:"oss-type" json:"ossType" yaml:"oss-type"`
NeedInitData bool `mapstructure:"need-init-data" json:"needInitData" yaml:"need-init-data"`
UseMultipoint bool `mapstructure:"use-multipoint" json:"useMultipoint" yaml:"use-multipoint"`
}

description

配置名类型说明
envstring更改为“develop”以跳过开发模式的身份验证
addrint后端端口,默认8888
db-typestring可以使用mysql/postgresql/sqlite/sqlserver,
mysql: 完美支持
postgresql:可以自行配置,但有代码不兼容,需自行测试并修改
sqlite:sqlite需要gcc支持 windows用户需要自行安装gcc,
还需要在server/core/gorm.go把注册的初始化sqlite的方法
sqlserver:可以自行配置,可能有代码不兼容,需自行测试并修改
oss-typestring可以指定上传头像的oss为local/qiniu/aliyun/minio
local:本地的 local.path 目录
qiniu:七牛云
aliyun与minio可能框架不会集成,需自己添加,或者参考 额外功能
need-init-databool是否需要初始化数据,v2.3.1版本起支持 gva 终端进行数据的初始化
use-multipointbool单点登录,默认为关闭

captcha

yaml

# captcha configuration
captcha:
key-long: 6
img-width: 240
img-height: 80

struct

type Captcha struct {
KeyLong int `mapstructure:"key-long" json:"keyLong" yaml:"key-long"`
ImgWidth int `mapstructure:"img-width" json:"imgWidth" yaml:"img-width"`
ImgHeight int `mapstructure:"img-height" json:"imgHeight" yaml:"img-height"`
}

description

配置名类型说明
key-longint验证码长度
img-widthint验证码宽度
img-heightint验证码高度

Mysql

yaml

# mysql connect configuration
mysql:
username: root
password: 'Aa@6447985'
path: '127.0.0.1:3306'
db-name: 'qmPlus'
config: 'charset=utf8mb4&parseTime=True&loc=Local'
max-idle-conns: 10
max-open-conns: 10
log-mode: false

struct

type Mysql struct {
Path string `mapstructure:"path" json:"path" yaml:"path"`
Config string `mapstructure:"config" json:"config" yaml:"config"`
Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"`
Username string `mapstructure:"username" json:"username" yaml:"username"`
Password string `mapstructure:"password" json:"password" yaml:"password"`
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"`
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"`
LogMode bool `mapstructure:"log-mode" json:"logMode" yaml:"log-mode"`
}

description

配置名类型说明
usernamestring用户名
passwordstring密码
pathstringmysql的连接地址及端口
db-namestring数据库名
configstring高级配置
max-idle-connsint设置空闲中的最大连接数
max-open-connsint设置打开到数据库的最大连接数
log-modebool是否开启Gorm全局日志

Sqlite

yaml

# sqlite connect configuration (sqlite需要gcc支持 windows用户需要自行安装gcc)
sqlite:
path: 'db.db'
max-idle-conns: 10
max-open-conns: 10
logger: true

struct

type Sqlite struct {
Path string `mapstructure:"path" json:"path" yaml:"path"`
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"`
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"`
Logger bool `mapstructure:"logger" json:"logger" yaml:"logger"`
}

description

配置名类型说明
pathstring文件名
path: 'file::memory:?cache=shared' 这样配置为内存模式
max-idle-connsint设置空闲中的最大连接数
max-open-connsint设置打开到数据库的最大连接数
loggerbool是否开启Gorm全局日志

SqlServer

yaml

# Sqlserver connect configuration
sqlserver:
path: 'localhost:9930'
db-name: 'gorm'
username: 'gorm'
password: 'LoremIpsum86'
max-idle-conns: 10
max-open-conns: 10
logger: true

struct

type Sqlserver struct {
Path string `mapstructure:"path" json:"path" yaml:"path"`
Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"`
Username string `mapstructure:"username" json:"username" yaml:"username"`
Password string `mapstructure:"password" json:"password" yaml:"password"`
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"`
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"`
Logger bool `mapstructure:"logger" json:"logger" yaml:"logger"`
}

description

配置名类型说明
pathstringsqlserver的连接地址及端口
db-namestring数据库名
usernamestring用户名
passwordstring密码
max-idle-connsint设置空闲中的最大连接数
max-open-connsint设置打开到数据库的最大连接数
loggerbool是否开启Gorm全局日志

Postgresql

yaml

# Postgresql connect configuration
postgresql:
host: '127.0.0.1'
port: '9920'
config: 'sslmode=disable TimeZone=Asia/Shanghai'
db-name: 'gorm'
username: 'gorm'
password: 'gorm'
max-idle-conns: 10
max-open-conns: 10
prefer-simple-protocol: true
logger: false

struct

type Postgresql struct {
Host string `mapstructure:"host" json:"host" yaml:"host"`
Port string `mapstructure:"port" json:"port" yaml:"port"`
Config string `mapstructure:"config" json:"config" yaml:"config"`
Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"`
Username string `mapstructure:"username" json:"username" yaml:"username"`
Password string `mapstructure:"password" json:"password" yaml:"password"`
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"`
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"`
PreferSimpleProtocol bool `mapstructure:"prefer-simple-protocol" json:"preferSimpleProtocol" yaml:"prefer-simple-protocol"`
Logger bool `mapstructure:"logger" json:"logger" yaml:"logger"`
}

description

配置名类型说明
hoststringhost地址
portstring端口
configstring高级配置
db-namestring数据库名
usernamestring用户名
passwordstring密码
max-idle-connsint设置空闲中的最大连接数
max-open-connsint设置打开到数据库的最大连接数
prefer-simple-protocolbooltrue:禁用 prepared statement 缓存
false启用 prepared statement 缓存
loggerbool是否开启Gorm全局日志

Local

yaml

# local configuration
local:
path: 'uploads/file'

struct

type Local struct {
Path string `mapstructure:"path" json:"path" yaml:"path" `
}

description

配置名类型说明
Pathstring本地存放路径

Qiniu

yaml

# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址)
qiniu:
zone: 'ZoneHuadong'
bucket: 'qm-plus-img'
img-path: 'http://qmplusimg.henrongyi.top'
use-https: false
access-key: '25j8dYBZ2wuiy0yhwShytjZDTX662b8xiFguwxzZ'
secret-key: 'pgdbqEsf7ooZh7W3xokP833h3dZ_VecFXPDeG5JY'
use-cdn-domains: false

struct

type Qiniu struct {
Zone string `mapstructure:"zone" json:"zone" yaml:"zone"`
Bucket string `mapstructure:"bucket" json:"bucket" yaml:"bucket"`
ImgPath string `mapstructure:"img-path" json:"imgPath" yaml:"img-path"`
UseHTTPS bool `mapstructure:"use-https" json:"useHttps" yaml:"use-https"`
AccessKey string `mapstructure:"access-key" json:"accessKey" yaml:"access-key"`
SecretKey string `mapstructure:"secret-key" json:"secretKey" yaml:"secret-key"`
UseCdnDomains bool `mapstructure:"use-cdn-domains" json:"useCdnDomains" yaml:"use-cdn-domains"`
}

description

配置名类型说明
zonestring存储区域 Zone ,可配置选项为 ZoneHuadong / ZoneHuabei / ZoneHuanan / ZoneBeimei / ZoneXinjiapo
bucketstring存储空间
img-pathstringCDN 加速域名
use-httpsbool是否使用https
access-keystring秘钥AK
secret-keystring秘钥SK
use-cdn-domainsbool上传是否使用CDN上传加速