package initialize import ( "github.com/caarlos0/env/v8" "github.com/joho/godotenv" "log" ) type Config struct { AppName string `env:"APP_NAME" envDefault:"codeword"` HTTPHost string `env:"HTTP_HOST" envDefault:"localhost"` HTTPPort string `env:"HTTP_PORT" envDefault:"3000"` MongoHost string `env:"MONGO_HOST" envDefault:"127.0.0.1"` MongoPort string `env:"MONGO_PORT" envDefault:"27020"` MongoUser string `env:"MONGO_USER" envDefault:"test"` MongoPassword string `env:"MONGO_PASSWORD" envDefault:"test"` MongoDatabase string `env:"MONGO_DB" envDefault:"admin"` MongoAuth string `env:"MONGO_AUTH" envDefault:"admin"` PublicCurveKey string `env:"PUBLIC_CURVE_KEY"` PrivateCurveKey string `env:"PRIVATE_CURVE_KEY"` SignSecret string `env:"SIGN_SECRET"` RedisAddr string `env:"REDIS_ADDR" envDefault:"localhost:6379"` RedisPassword string `env:"REDIS_PASS" envDefault:"admin"` RedisDB int `env:"REDIS_DB" envDefault:"2"` SmtpApiUrl string `env:"SMTP_API_URL"` SmtpHost string `env:"SMTP_HOST"` SmtpPort string `env:"SMTP_PORT"` SmtpUsername string `env:"SMTP_UNAME"` SmtpPassword string `env:"SMTP_PASS"` SmtpApiKey string `env:"SMTP_API_KEY"` SmtpSender string `env:"SMTP_SENDER"` } func LoadConfig() (*Config, error) { if err := godotenv.Load(); err != nil { log.Print("No .env file found") } var config Config if err := env.Parse(&config); err != nil { return nil, err } return &config, nil }