December 15, 2021
PhotoPrism is not directly affected by the Apache Log4j vulnerability. Logs may still contain messages that can cause harm if consumed by an unpatched Java application. As a precaution, this release includes additional rules and filters to validate user input.
Sharing: Fixed album link redirect on shared domains
Import: More helpful warning when another import is already running
Docker: ARMv7 image for 32-bit processors and operating systems

December 10, 2021
Starting with this release, the regular multi-arch Docker image is 64-bit only. A 32-bit version of our stable release for older devices is offered separately. In the long run, this frees up development resources and saves weeks of build, upload, and test time on our infrastructure.
Based on Go version 1.17.5, which includes important HTTP/2 and network security fixes
People: Concurrent updates are no longer possible to prevent inconsistencies
Places: Additional logs to detect invalid GPS coordinates in metadata
SQLite: Reduced routine maintenance log levels and fixed migration warnings
Thumbnails: Apple Display P3 profile support for more accurate colors
Translations: Updated French

December 3, 2021
Since the funding goal required to make all features and maps generally available has not been reached, early-access features have been renamed to sponsor features in this update. Offline and high-resolution street maps remain free for everyone, while hybrid, topographic and outdoor maps are now a sponsor feature. We believe this is fair. A big thank you to all our sponsors and contributors!
CLI: Improved parameter and command descriptions
CLI: Reset command optionally also deletes files in the cache folder
Config: Improved docker-compose.yml examples

November 30, 2021
Videos: Live photos page has been added to the sub-navigation
Albums: Manually created albums are sorted by name, with favorites first
Places: Improved location details in border regions and near Paris
PWA: Updated app icons, style is now also applied to the user interface
For our sponsors and contributors:
UI: New Abyss and Gemstone dark themes 💎

November 28, 2021
Official support for MySQL 8 is discontinued with this update as it's not feasible to perform a full test before each release. We recommend upgrading to MariaDB 10.6 or later. PostgreSQL support is planned for 2022 without a specific release date yet.
CLI: photoprism migrate --failed will re-run previously failed migrations

November 27, 2021
When possible, location estimates now include a latitude and longitude. Photos load faster when you open them in Places, and the viewer sorts them by distance. Time zone handling has been completely reworked, in particular for UTC. The Docker base image has been upgraded to Ubuntu 21.10, which ships with Darktable 3.6 among other updated dependencies.
UX: Redesigned splash screen based on theme colors
Places: Viewer loads faster and sorts photos by distance instead of date
Places: Less frequent estimates to reduce background activity
Places: Normalized names of states, oceans, and lakes
Places: Updated location data from OpenStreetMap
Places: State albums are grouped by country name
Folders: Path names are searched in addition to titles
People: Improved face detection performance
People: Fixed naming faces in non-primary files
People: Optimized matching of children's faces
RAW: Upgraded Darktable to 3.6.0
Metadata: Improved estimates and UTC time zone handling
Metadata: Altitude is indexed even if coordinates are missing
Auth: Usernames are not case-sensitive anymore
CLI: Added --force flag to photoprism optimize command
CLI: Improved parameter and command descriptions
Config: Improved docker-compose.yml examples
Translations: Added Bahasa Indonesia and Hungarian
Translations: Updated Polish and Italian
For our sponsors and contributors:
CLI: Run photoprism places update to retrieve updated location details
Config: Set PHOTOPRISM_APP_ICON to choose an alternative PWA icon

October 18, 2021
UI: Updated Lavender theme
Places: Fixed maps initialization after reload in non-public mode
Search: Added live and raw:true filters as alternative to type:…
Search: Added faces:new alias for face:new
Config: Maximum background worker interval has been increased to 7 days
Security: Added Content-Security-Policy header to prevent framing attacks
Translations: Updated Russian and Slovak
For our sponsors and contributors:
UI: New Vanta dark theme ✨

October 10, 2021
Translations: Fixed German frontend typo
Translations: Updated all backend locales
We've generated missing translations with the help of DeepL and Google Translate. Native speakers are invited to help us improve those if needed. Learn how to contribute.

October 9, 2021
UX: Improved wording of search result notifications
UX: Fixed sidebar navigation on small screens
Users: Show name and email in sidebar navigation
Folders: Directory names listed in .ppignore are ignored
Config: Allows bypassing low memory suggestion
Docs: Updated about page
Translations: Updated all frontend locales

October 7, 2021
People: Improved stability and performance of new faces overview page
Index: Duplicate error logs caused by broken JPEG files have been removed
UX: Enhanced visibility of file errors in the edit dialog files tab
CLI: Revised descriptions of commands and configuration flags
For our sponsors and contributors:
People: Recognized faces can be hidden on the overview page

October 2, 2021
People: Enhanced UI / UX for renaming and merging faces
People: Improved face detection accuracy
Labels: Improved photo count accuracy
Covers: Thumbnails load and update faster
Search: Finds titles when query is too short for full-text index
Search: name:… filter ignores path and extension
Videos: Optional Intel GPU hardware transcoding support
Index: Automatic cleanup of orphaned file entries
Logs: Updated log messages for improved readability
Translations: Updated German and French
Docker: Simplified installation of TensorFlow with AVX / AVX2 support
Docker: Entrypoint script uses prefixed environment variables, UID and GID are deprecated

September 25, 2021
Recognizes faces so that specific people can be found
UX: Improved UI design, navigation, and wording
Search: Omit full-text index if query is too short
Search: Added keywords:…, subjects:…, and albums:… filters
Places: Internationalized maps incl RTL support
Labels: Added photo counts to overview page
Albums: Fixed share expiration date in form label
Calendar: Empty month albums are hidden
Viewer: Photos will be updated when search filters change
Index: Ignore Synology @eaDir folders
Import: Ignore dot files listed in .ppignore
Upload: Added more detailed error logs
Videos: Skip related images when downloading
Videos: Added .mp as known MP4 file extension
Videos: Default to UTC as metadata time zone
Exiftool: Enabled large file support
Metadata: Improved Exif parser with cycle detection
Metadata: Support for long projection type names like transverse-cylindrical
Config: Added RAW file extension blacklists for Darktable and RawTherapee
Config: Added disable options for image classification and facial recognition
Config: Added support for non-root site URLs
Config: Added content delivery network URL option
MariaDB: Set explicit table engine, charset, and collation
MariaDB: Added log message for old versions with broken table name resolution
Docker: Added HOME env for Darktable & RawTherapee
Docker: Single multi-arch image for AMD64, ARM64, and ARMv7

May 23, 2021
RAW: Added RawTherapee flag to use existing sidecar files
Import: Never remove ignored folders such as for Syncthing

May 20, 2021
Docker: Fixed home directory permissions in new base image
HEIF: Test if JPEG was already rotated based on video metadata

May 19, 2021
Metadata: Upgraded Exiftool to fix security issue

May 18, 2021
Safari: Fixed PWA file download on iOS
Docker: Added config example for scheduled background tasks
Docker: Updated base image includes Darktable 3.4.1, RawTherapee 5.8, and FFmpeg 4.3.2
TensorFlow: Improved error handling
Translations: Updated French

May 5, 2021
UI: Improved RTL (right-to-left language) alignment
RAW: Added config options to disable specific converters
Metadata: Preserve stopwords in existing keywords
Metadata: Allow single quotes in keywords
WebDAV: Keep favorite flag when uploading via PhotoSync
Translations: Updated Dutch and German

April 26, 2021
UI: Added Yellowstone theme for sponsors, unlocked Grayscale theme for everyone
Metadata: Support for XMP sidecar CreateDate and Keywords
Metadata: Merge keywords from different sources
Translations: Updated Hebrew

April 22, 2021
UX: Improved touch event accuracy
UX: Optimized rendering on small screens
UX: Fixed autocomplete in "add to album" dialog
HEIF: Prevent redundant sidecar JPEG files
Backup: Added command flags and usage docs
Translations: Added Danish and Kurdish

February 22, 2021
UX: Autofocus for input fields and confirm on enter
Restore: Find YAML album backups in originals folder
Metadata: Improved location labels and moments
Thumbnails: Fixed auto-rotation for HEIF, TIFF, and PNG images
Translations: Added Norwegian (Bokmål)

February 17, 2021
Videos: Optimized transcoding parameters
Videos: Use AAC audio for MP4 transcoding
Metadata: Default to landscape orientation if data is invalid
Translations: Updated Brazilian Portuguese

February 16, 2021
UX: Automatically hide scrollbar in photo viewer and Places
Delete: Permanently remove all related sidecar files
Videos: Added transcoding config options
Videos: Added batch transcoding via convert command
Metadata: Remove estimate when setting a new country
Metadata: Workaround for Exif strings containing newlines

February 11, 2021
Videos: Native player featuring performance and UX improvements
Index: Improved detection of missing photos, files, and folders

February 8, 2021
Upload: Adds duplicates to selected albums as well
Library: Show folder covers in Originals
Metadata: Automatically remove orphan countries, cameras, and lenses
Metadata: Improved Exif parser
Backup: Restore archive flag from YAML files
Docker: Improved entrypoint script

January 28, 2021
UX: Improved theme colors and icons
UX: Download all related media files using their current name by default
UX: Redirect already authenticated users from /login to /browse
Mobile: Prevent like on touch swipe
Translations: Updated German and French
Config: Reduced auto index & import safety delay defaults
Metadata: Improved photo titles, removed small words from title endings
Metadata: Improved date extraction from current and original file names
Metadata: Fallback to earliest file mod time in case there is no other date
Import: Index keywords from non-primary filenames as well
WebDAV: Improved service discovery
Purge: Hide missing files in edit dialog and set new primary if needed
Archive: Physically delete files after confirmation
Moments: Added delete button to context menu
Settings: Added Estimates and Delete feature flags
CLI: Added cleanup command to remove orphaned index entries and thumbnails

January 21, 2021
UX: Improved video playback and icons
UX: Restructured main navigation
Mobile: Show search field in albums

January 20, 2021
API: Apply limit, offset and sort order when searching for IDs
ARM64: Reverted database image back to arm64v8/mariadb in config example

January 19, 2021
UX: Optimized user interface for iOS and tablets
UX: Improved theme colors
UX: Scroll position is restored when navigating back
Translations: Added Czech
Metadata: Estimate timezone and allow overwriting estimated locations
Settings: Fixed disabling logs
For our sponsors and contributors:

UX: Added two dark themes

January 11, 2021
UX: Disabled preloading in live photo player to reduce memory footprint
UX: Updated main navigation, find all media types via /browse
UX: Removed lag when selecting pictures
UX: Tweaked tile size breakpoints in Albums, Labels, and Search
UX: Added tooltips to navigation expand and minimize buttons
UX: Preload additional search results
UX: Removed image loading spinners for faster rendering
Thumbnails: Added cache control headers for improved performance
Album Covers: Cache will be flushed after updating private flags
Search: Improved performance of photos query
PWA: Added service worker so that app can be installed more easily
PWA: Enabled auto-rotate so that photos may be viewed in landscape mode
Frontend: Removed unused dependencies and reduced build size
Translations: Updated Russian, French, Simplified Chinese, and German
Index: Automatically create JPEGs for related media files as well
Import: Improved error handling when the file system becomes unavailable
Config: Updated docker-compose.yml examples
Config: Added optional gzip compression for built-in web server
Config: Limit number of indexing workers to half the number of physical cores by default to avoid high load on hyper-threading capable CPUs

January 4, 2021
Config: Added auto index & import defaults to Dockerfiles
Import: Extract metadata with ExifTool before moving
Import: Automatically create folder albums
Help: Updated WebSocket page
UX: Added UI.Zoom setting to re-enable page zoom
UI: Updated default theme
Translations: Added Hebrew & Japanese, updated Brazilian Portuguese
Albums & Cards View: Reduced tile size on large screens
WebDAV: Less verbose logging

January 2, 2021
WebDAV: Uploads and other changes trigger auto indexing / importing
Config: Use random hash for improved preview token security
UX: Disabled page zoom so that app feels more native on mobile devices
UX: Reduced min password length to 4 characters
UX: Improved docker-compose.yml examples
UX: Reduced icon size in "add to album" dialog

December 31, 2020
Initial Stable Release