LibrePhotos is a self-hosted open source photo management service that provides automatic face recognition, object detection, and semantic search powered by machine learning.
The tool addresses the need for privacy-preserving photo organization by running entirely on your own infrastructure rather than relying on cloud services. It scans your photo library to build a timeline view, automatically detects and clusters faces, classifies scenes and objects within images, and enables semantic search across your collection. The backend uses Django with PostgreSQL and a task queue for processing, while the frontend is built with React and provides both web and mobile interfaces.
LibrePhotos suits self-hosted deployments where you control your data and hardware. It requires at least 4 GB of RAM but performs best with 8 GB or more due to the memory demands of machine learning inference. The system supports raw photos, videos, multiuser accounts, and metadata-based search. It generates albums automatically based on detected events and locations through reverse geocoding. Anyone adopting this should expect to run it on Docker-compatible infrastructure, with Linux recommended for optimal performance.
The project consolidated five previously separate repositories into a single monorepo while preserving full commit history. Development spans a complete stack including a Django backend with machine learning pipelines, a React frontend with internationalization support, a React Native mobile client for Android, comprehensive documentation, and deployment configurations for Docker and Kubernetes. The codebase uses modern tooling across all layers: Django 5 with REST Framework, React 18 with TypeScript, and established machine learning libraries for face detection, clustering, and image captioning.