mirror of
https://github.com/photoprism/photoprism.git
synced 2026-01-23 02:24:24 +00:00
|
|
||
|---|---|---|
| .. | ||
| testdata | ||
| acl.go | ||
| acl_test.go | ||
| album.go | ||
| customize.go | ||
| defaults.go | ||
| download.go | ||
| feature.go | ||
| features_default.go | ||
| features_default_test.go | ||
| import.go | ||
| import_test.go | ||
| index.go | ||
| maps.go | ||
| README.md | ||
| scope.go | ||
| scope_test.go | ||
| search.go | ||
| settings.go | ||
| settings_test.go | ||
| share.go | ||
| stack.go | ||
| template.go | ||
| ui.go | ||
PhotoPrism — Customize Package
Last Updated: November 21, 2025
Overview
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.
Feature Defaults
- Feature flags live in
FeatureSettingsand are initialized via the newDefaultFeaturesvariable. NewFeatures()returns a copy ofDefaultFeatures, letting callers mutate per-request or per-user state without modifying the shared defaults.
Environment Overrides
- Set
PHOTOPRISM_DISABLE_FEATURESto disable specific features at startup. - The value may be comma- or space-separated (case-insensitive); hyphens/underscores are ignored.
- Tokens are inflected so singular/plural variants match (for example,
albums,album, orAlbumall disable the Albums flag).
Settings Lifecycle
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.
Testing
- Unit tests cover feature default copying, environment-based disabling, scope application, and ACL interactions.
- Run
go test ./internal/config/customize/...or the lints viagolangci-lint run ./internal/config/customize/....