chore: parametrize port and prometheus #181
All checks were successful
Build Docker Image / Explore-Gitea-Actions (push) Successful in 46s

This commit is contained in:
2024-10-02 18:27:16 +02:00
parent bddcfc6778
commit 33380e2124
2 changed files with 32 additions and 15 deletions

View File

@@ -6,6 +6,9 @@ import (
)
type ServerSettings struct {
Port string
PrometheusEnabled bool
BaseUrl string
Environment string
DbPath string
@@ -23,11 +26,6 @@ type SmtpSettings struct {
func NewServerSettingsFromEnv(env func(string) string) *ServerSettings {
dbPath := env("DB_PATH")
if dbPath == "" {
dbPath = "./data.db"
}
var smtp *SmtpSettings
if env("SMTP_ENABLED") == "true" {
smtp = &SmtpSettings{
@@ -60,20 +58,30 @@ func NewServerSettingsFromEnv(env func(string) string) *ServerSettings {
}
settings := &ServerSettings{
BaseUrl: env("BASE_URL"),
Environment: env("ENVIRONMENT"),
Smtp: smtp,
Port: env("PORT"),
PrometheusEnabled: env("PROMETHEUS_ENABLED") == "true",
BaseUrl: env("BASE_URL"),
DbPath: env("DB_PATH"),
Environment: env("ENVIRONMENT"),
Smtp: smtp,
}
if settings.DbPath == "" {
settings.DbPath = "./data.db"
}
if settings.BaseUrl == "" {
log.Fatal("BASE_URL must be set")
}
if settings.Port == "" {
log.Fatal("PORT must be set")
}
if settings.Environment == "" {
log.Fatal("ENVIRONMENT must be set")
}
if settings.Environment == "prod" && settings.Smtp == nil {
log.Fatal("SMTP must be enabled in production")
if settings.Environment == "prod" && (settings.Smtp == nil || !settings.PrometheusEnabled) {
log.Fatal("SMTP and Prometheus must be enabled in production")
}
slog.Info("BASE_URL is " + settings.BaseUrl)