56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
var Cfg Config
|
|
|
|
type Config struct {
|
|
Debug bool
|
|
Host string
|
|
Port string
|
|
LogFolder string
|
|
SSEServerEnabled bool
|
|
DaysToKeepLogs int
|
|
}
|
|
|
|
func LoadConfig() {
|
|
// used to determine server was startet in docker or not
|
|
if os.Getenv("DOCKER") == "" {
|
|
fmt.Println("Load env from file")
|
|
godotenv.Load(".env")
|
|
} else {
|
|
fmt.Println("Load env from system")
|
|
}
|
|
|
|
daysToKeepLogs, err := strconv.Atoi(os.Getenv("DAYS_TO_KEEP_LOGS"))
|
|
|
|
if err != nil {
|
|
log.Fatalf("Failed to load DAYS_TO_KEEP_LOGS from env, err: %s", err.Error())
|
|
}
|
|
|
|
config := Config{
|
|
Debug: os.Getenv("DEBUG") == "true",
|
|
LogFolder: os.Getenv("LOG_FOLDER"),
|
|
SSEServerEnabled: os.Getenv("SSE_SERVER_ENABLED") == "true",
|
|
DaysToKeepLogs: daysToKeepLogs,
|
|
}
|
|
|
|
// load default values if not in docker
|
|
if os.Getenv("DOCKER") == "" {
|
|
config.Host = os.Getenv("HOST")
|
|
config.Port = os.Getenv("PORT")
|
|
} else { // load from docker env
|
|
config.Host = "0.0.0.0"
|
|
config.Port = "3000"
|
|
}
|
|
|
|
Cfg = config
|
|
}
|