Add a dedicated artwork cache directory and save embedded album art from audio tags during library scans. Prefer embedded artwork for album cover resolution while keeping sidecar image files as the fallback path.
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package config
|
|
|
|
import "os"
|
|
|
|
type Config struct {
|
|
AppEnv string
|
|
ServerHost string
|
|
ServerPort string
|
|
DatabasePath string
|
|
ArtworkCacheDir string
|
|
MediaRoot string
|
|
CORSOrigins string
|
|
DefaultAdminUsername string
|
|
DefaultAdminPassword string
|
|
}
|
|
|
|
func Load() Config {
|
|
return Config{
|
|
AppEnv: getenv("APP_ENV", "development"),
|
|
ServerHost: getenv("SERVER_HOST", "0.0.0.0"),
|
|
ServerPort: getenv("SERVER_PORT", "4040"),
|
|
DatabasePath: getenv("DATABASE_PATH", "./data/app.db"),
|
|
ArtworkCacheDir: getenv("ARTWORK_CACHE_DIR", "./data/artwork"),
|
|
MediaRoot: getenv("MEDIA_ROOT", "./media"),
|
|
CORSOrigins: getenv("CORS_ORIGINS", "http://localhost:5173"),
|
|
DefaultAdminUsername: getenv("DEFAULT_ADMIN_USERNAME", "demo"),
|
|
DefaultAdminPassword: getenv("DEFAULT_ADMIN_PASSWORD", "demo"),
|
|
}
|
|
}
|
|
|
|
func (c Config) Address() string {
|
|
return c.ServerHost + ":" + c.ServerPort
|
|
}
|
|
|
|
func getenv(key, fallback string) string {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return fallback
|
|
}
|
|
return value
|
|
}
|