Upstream:
🚀 LibrePhotos: Face Tag Writeback to Sidecar Files
Face recognition results can now be written back to XMP-MWG-RS sidecar files, making your face tagging data portable and compatible with other photo management tools. A new setting controls this behavior, and the metadata handling has been refactored into a dedicated api/metadata package for cleaner architecture.
🚀 LibrePhotos: Server Logs Viewer
A new API endpoint (GET /api/serverlogs/view) allows reading server logs directly from the application, paving the way for in-app log inspection without shell access.
🚀 Frontend: Services Health Monitoring Panel
The admin page now features a dedicated services health monitoring panel showing the real-time status of all background services. Start and Stop controls are shown contextually — only when the action makes sense based on the current service health.
🚀 Frontend: Server Logs Card
A new server logs card in the admin panel lets you inspect server logs directly from the UI, powered by the new /api/serverlogs/view endpoint.
- ✨ LibrePhotos: Optimize N+1 queries in photo serializers for better API performance
- ✨ LibrePhotos: ConcurrentRotatingFileHandler adopted for multi-process-safe log rotation
- ✨ LibrePhotos: Log rotation default increased to 200MB with configurable limits via CONSTANCE settings
- ✨ Frontend: New and updated translations: Danish, German, Korean, Tamil, Dutch, Ukrainian
- 🔨 LibrePhotos: Fix motion photo video serving — use actual file path instead of hardcoded
_1.mp4suffix - 🔨 LibrePhotos: Fix duplicate face detection — replace margin-based overlap check with IoU (Intersection over Union) for accurate deduplication
- 🔨 LibrePhotos: Fix photo captioning crash when the tag service returns a non-JSON response
- 🔨 LibrePhotos: Fix PhotoMetadataSummarySerializer to correctly expose
@propertyfields - 🔨 LibrePhotos: Fix UnorderedObjectListWarning in paginated querysets
- 🔨 LibrePhotos: Fix tagging model configuration errors when
TAGGING_MODELkey is absent from CONSTANCE config - 🔨 Frontend: Fix login error notification — show proper error message on failed login attempt
- 🔨 Frontend: Fix GPU memory stat parsing to accept both string and number values
- 🔒 LibrePhotos: Security — Django updated to v5.2.12
- 🔒 LibrePhotos: Security — Fix privilege escalation: prevent non-admin users from creating superuser accounts via the registration API
- 🔒 Frontend: Security — lodash updated to v4.18.1
- ✨ LibrePhotos: Updated dependencies and updated language strings from the community
If you are interested in how I develop this application, you can watch me develop features live on my channel
Sponsoring development:
My work is sponsored by 3 awesome people!
If you like the work I do, then you can support me via GitHub sponsors or via PayPal