Files
healthflow/server/internal/config/config.go
2025-12-20 23:51:40 +08:00

45 lines
1.1 KiB
Go

package config
import (
"os"
)
type Config struct {
ServerAddr string
DBPath string
JWTSecret string
BaseURL string
// 本地存储
LocalUploadPath string
// Cloudflare R2
R2AccountID string
R2AccessKeyID string
R2AccessKeySecret string
R2BucketName string
R2PublicURL string
}
func Load() *Config {
return &Config{
ServerAddr: getEnv("SERVER_ADDR", ":8080"),
DBPath: getEnv("DB_PATH", "./data/healthflow.db"),
JWTSecret: getEnv("JWT_SECRET", "change-me-in-production"),
BaseURL: getEnv("BASE_URL", "http://localhost:8080"),
LocalUploadPath: getEnv("LOCAL_UPLOAD_PATH", "./uploads"),
R2AccountID: getEnv("R2_ACCOUNT_ID", ""),
R2AccessKeyID: getEnv("R2_ACCESS_KEY_ID", ""),
R2AccessKeySecret: getEnv("R2_ACCESS_KEY_SECRET", ""),
R2BucketName: getEnv("R2_BUCKET_NAME", "healthflow"),
R2PublicURL: getEnv("R2_PUBLIC_URL", ""),
}
}
func getEnv(key, defaultValue string) string {
if value := os.Getenv(key); value != "" {
return value
}
return defaultValue
}