internal/config/customize/README.md
Last Updated: November 21, 2025
The customize package defines user-facing configuration defaults for PhotoPrism’s Web UI, search, maps, imports, indexing, and feature flags. The settings are assembled by NewDefaultSettings() / NewSettings() and serialized through YAML so they can be stored or loaded at runtime.
FeatureSettings and are initialized via the new DefaultFeatures variable.NewFeatures() returns a copy of DefaultFeatures, letting callers mutate per-request or per-user state without modifying the shared defaults.PHOTOPRISM_DISABLE_FEATURES to disable specific features at startup.albums, album, or Album all disable the Albums flag).NewDefaultSettings() seeds UI, search, maps, imports, indexing, templates, downloads, and features from the defaults in this package.Settings.Load() / Save() round-trip YAML configuration files.Settings.Propagate() ensures required defaults (language, timezone, start page, map style) remain populated after loading.go test ./internal/config/customize/... or the lints via golangci-lint run ./internal/config/customize/....