Files
verify/backend/internal/config/config.go
T
admin 41fe48e128 feat: 添加安装向导功能
- 后端:安装状态检测API、数据库连接测试、配置文件生成
- 后端:支持SQLite/MySQL数据库选择
- 后端:JWT密钥自动生成或手动设置
- 前端:安装向导界面(数据库配置、安全配置、管理员账号)
- 前端:路由守卫检测安装状态,未安装自动跳转安装页面
2026-05-03 11:52:34 +08:00

78 lines
1.9 KiB
Go

package config
import (
"log"
"github.com/spf13/viper"
)
// Init 初始化配置
func Init() {
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AddConfigPath("./config")
// 设置默认值
setDefaults()
// 读取配置文件
if err := viper.ReadInConfig(); err != nil {
log.Printf("Warning: Config file not found, using defaults: %v", err)
}
// 环境变量覆盖
viper.AutomaticEnv()
}
// setDefaults 设置默认配置值
func setDefaults() {
// 应用配置
viper.SetDefault("app.name", "verification-platform")
viper.SetDefault("app.env", "development")
viper.SetDefault("app.port", "8080")
viper.SetDefault("app.jwt_secret", "your-secret-key")
viper.SetDefault("app.jwt_expire", "24h")
// 数据库配置
viper.SetDefault("database.type", "auto")
viper.SetDefault("database.host", "localhost")
viper.SetDefault("database.port", "3306")
viper.SetDefault("database.name", "verification_platform")
viper.SetDefault("database.username", "root")
viper.SetDefault("database.password", "")
viper.SetDefault("database.charset", "utf8mb4")
viper.SetDefault("database.max_idle_conns", "10")
viper.SetDefault("database.max_open_conns", "100")
// Redis配置
viper.SetDefault("redis.host", "localhost")
viper.SetDefault("redis.port", "6379")
viper.SetDefault("redis.password", "")
viper.SetDefault("redis.db", "0")
// 日志配置
viper.SetDefault("log.level", "info")
viper.SetDefault("log.format", "json")
}
// GetString 获取字符串配置
func GetString(key string) string {
return viper.GetString(key)
}
// GetInt 获取整数配置
func GetInt(key string) int {
return viper.GetInt(key)
}
// GetBool 获取布尔配置
func GetBool(key string) bool {
return viper.GetBool(key)
}
// GetStringSlice 获取字符串切片配置
func GetStringSlice(key string) []string {
return viper.GetStringSlice(key)
}