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"` S3BucketImages string `env:"S3_BUCKET_IMAGES" envDefault:"silk-images"` 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 }