41 lines
2.0 KiB
Go
41 lines
2.0 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/caarlos0/env"
|
|
)
|
|
|
|
// Config 全局配置,从环境变量加载
|
|
type Config struct {
|
|
PG string `env:"PG" envDefault:"postgresql://postgres:pan@localhost:5432/silk"`
|
|
Redis string `env:"REDIS" envDefault:"redis://:pan@localhost:6379"`
|
|
JWTSecret string `env:"JWT_SECRET" envDefault:"silk-secret-please-change-me"`
|
|
JWTExpiresIn string `env:"JWT_EXPIRES_IN" envDefault:"2h"`
|
|
MQTT string `env:"MQTT" envDefault:"mqtt://pan:pan@localhost:1883"`
|
|
IoTDBURL string `env:"IOTDB_URL" envDefault:"http://127.0.0.1:18081"`
|
|
S3Endpoint string `env:"S3_ENDPOINT" envDefault:"http://100.83.103.1:7480"`
|
|
S3AccessKey string `env:"S3_ACCESS_KEY" envDefault:"silk-app"`
|
|
S3SecretKey string `env:"S3_SECRET_KEY" envDefault:"Silk-App-Secret-2026!"`
|
|
S3Bucket string `env:"S3_BUCKET" envDefault:"silk-video-events"`
|
|
S3Region string `env:"S3_REGION" envDefault:"us-east-1"`
|
|
WVPAPIBase string `env:"WVP_API_BASE" envDefault:"http://localhost:18978"`
|
|
WVPUsername string `env:"WVP_USERNAME" envDefault:"admin"`
|
|
WVPPassword string `env:"WVP_PASSWORD" envDefault:"admin"`
|
|
ZLMAPIBase string `env:"ZLM_API_BASE" envDefault:"http://100.83.103.1:8081"`
|
|
ZLMSecret string `env:"ZLM_SECRET" envDefault:"su6TiedN2rVAmBbIDX0aa0QTiBJLBdcf"`
|
|
RecorderAPIBase string `env:"RECORDER_API_BASE" envDefault:"http://localhost:9090"`
|
|
InternalAPIKey string `env:"INTERNAL_API_KEY" envDefault:"silk-internal-2026"`
|
|
Port int `env:"PORT" envDefault:"3000"`
|
|
DefaultAdminUsername string `env:"DEFAULT_ADMIN_USERNAME" envDefault:"admin"`
|
|
DefaultAdminPassword string `env:"DEFAULT_ADMIN_PASSWORD" envDefault:"silk@123"`
|
|
DefaultAdminEmail string `env:"DEFAULT_ADMIN_EMAIL" envDefault:"admin@silk.local"`
|
|
}
|
|
|
|
// Load 从环境变量加载配置
|
|
func Load() (*Config, error) {
|
|
cfg := &Config{}
|
|
if err := env.Parse(cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
return cfg, nil
|
|
}
|