2025-12-17 22:57:57 +01:00
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
2026-01-10 22:05:07 +01:00
|
|
|
"fmt"
|
2025-12-17 22:57:57 +01:00
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Config struct {
|
|
|
|
|
ServerAddr string
|
|
|
|
|
DatabaseURL string
|
|
|
|
|
OIDCIssuerURL string
|
|
|
|
|
OIDCRedirectURL string
|
|
|
|
|
OIDCClientID string
|
|
|
|
|
OIDCClientSecret string
|
|
|
|
|
JWTSecret string
|
2026-01-09 17:32:16 +01:00
|
|
|
NextcloudURL string
|
|
|
|
|
NextcloudUser string
|
|
|
|
|
NextcloudPass string
|
|
|
|
|
NextcloudBase string
|
2026-01-10 01:06:37 +01:00
|
|
|
AllowedOrigins string
|
2025-12-17 22:57:57 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Load() *Config {
|
2026-01-10 22:05:07 +01:00
|
|
|
cfg := &Config{
|
2025-12-17 22:57:57 +01:00
|
|
|
ServerAddr: getEnv("SERVER_ADDR", ":8080"),
|
|
|
|
|
DatabaseURL: os.Getenv("DATABASE_URL"),
|
|
|
|
|
OIDCIssuerURL: os.Getenv("OIDC_ISSUER_URL"),
|
|
|
|
|
OIDCRedirectURL: os.Getenv("OIDC_REDIRECT_URL"),
|
|
|
|
|
OIDCClientID: os.Getenv("OIDC_CLIENT_ID"),
|
|
|
|
|
OIDCClientSecret: os.Getenv("OIDC_CLIENT_SECRET"),
|
|
|
|
|
JWTSecret: os.Getenv("JWT_SECRET"),
|
2026-01-09 17:32:16 +01:00
|
|
|
NextcloudURL: os.Getenv("NEXTCLOUD_URL"),
|
|
|
|
|
NextcloudUser: os.Getenv("NEXTCLOUD_USER"),
|
|
|
|
|
NextcloudPass: os.Getenv("NEXTCLOUD_PASSWORD"),
|
|
|
|
|
NextcloudBase: getEnv("NEXTCLOUD_BASEPATH", "/"),
|
2026-01-10 01:06:37 +01:00
|
|
|
AllowedOrigins: getEnv("ALLOWED_ORIGINS", "https://b0esche.cloud,http://localhost:8080"),
|
2025-12-17 22:57:57 +01:00
|
|
|
}
|
2026-01-10 22:05:07 +01:00
|
|
|
fmt.Printf("[CONFIG] Nextcloud URL: %q, User: %q, BasePath: %q\n", cfg.NextcloudURL, cfg.NextcloudUser, cfg.NextcloudBase)
|
|
|
|
|
return cfg
|
2025-12-17 22:57:57 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func getEnv(key, defaultVal string) string {
|
|
|
|
|
if val := os.Getenv(key); val != "" {
|
|
|
|
|
return val
|
|
|
|
|
}
|
|
|
|
|
return defaultVal
|
|
|
|
|
}
|