46 lines
923 B
Go
46 lines
923 B
Go
package config
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
type Config struct {
|
|
JWTSecret string
|
|
DBHost string
|
|
DBPort string
|
|
DBUser string
|
|
DBPassword string
|
|
DBName string
|
|
DBSSLMode string
|
|
}
|
|
|
|
var appConfig = &Config{}
|
|
|
|
func InitConfig() {
|
|
// Load .env file
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
log.Println("Warning: .env file not found, using system environment variables.")
|
|
}
|
|
|
|
// Load config from env
|
|
appConfig.JWTSecret = os.Getenv("JWT_SECRET")
|
|
appConfig.DBHost = os.Getenv("DB_HOST")
|
|
appConfig.DBPort = os.Getenv("DB_PORT")
|
|
appConfig.DBUser = os.Getenv("DB_USER")
|
|
appConfig.DBPassword = os.Getenv("DB_PASSWORD")
|
|
appConfig.DBName = os.Getenv("DB_NAME")
|
|
appConfig.DBSSLMode = os.Getenv("DB_SSLMODE")
|
|
|
|
if appConfig.JWTSecret == "" || appConfig.DBHost == "" {
|
|
log.Fatal("Required environment variables are missing")
|
|
}
|
|
}
|
|
|
|
func GetConfig() *Config {
|
|
return appConfig
|
|
}
|