Main features
- Scans existing folders and accepts uploads from the web app
- RAW, HEIC, JPEG XL, video and Live Photos
- Timeline grouped by day and place, with favorites and memories
- Albums created automatically from events
- Face detection and clustering with suggestions after you name a person
- Semantic search ("dog on a beach") plus metadata search
- Generated captions and tags for every photo
- Places and map from reverse geocoding
- RAW+JPEG pairs merged, burst stacks and duplicate detection
- Multiple users, shared albums and public links
- OpenID Connect single sign-on
What LibrePhotos does
LibrePhotos is a self-hosted photo management service with a strong focus on machine learning. It scans the folders where your photos already live and also accepts uploads from its web app. The library is shown as a timeline grouped by day and place, with favorites, recently added items and memories, and it creates albums for events automatically, with titles such as “Saturday in Lisbon”.
The project’s machine-learning pipeline detects and clusters faces, so you name a person once and the app suggests the same face elsewhere. OpenCLIP models power semantic search and “similar photos”, and a small vision-language model writes a caption for each photo using the people and place it recognized. Reverse geocoding fills in places and a map. RAW+JPEG pairs appear as one photo, bursts and brackets are stacked, and duplicates are detected.
Privacy and machine learning
All models run locally through ONNX Runtime; the README says no PyTorch is needed. Nothing has to leave your server for tagging or search. NVIDIA GPUs can speed up processing in the multi-container setup. There is no end-to-end encryption.
Self-hosting LibrePhotos
The project recommends a single “unified” container for most people: one image serves the API and the web app, and it can use a built-in SQLite database or an external PostgreSQL. Before an update migrates a SQLite database, the container copies it to a backup folder and keeps the three newest copies. Docker Compose with separate backend, frontend and Nginx containers, Kubernetes manifests, an Unraid template and a standalone Windows build (no Docker or Python) are also available.
The documented minimum is 4 GB of RAM, 2 CPU cores and 10 GB of storage plus the library; the recommendation is 8 GB or more, 4 cores, an SSD and Linux. The README warns that face recognition, scene classification and captioning are memory-intensive. You can mount the photo folder read-only, but uploads, deletions and writing metadata back to files are then disabled.
Mobile app status
The repository contains a new Expo-based mobile app for Android and iOS with camera-roll backup and offline browsing. Its own README says it is not released yet: there is no build in any app store and no APK, and the only way to use it is to run it from source. Until it ships, automatic phone backup needs a separate tool that copies photos into the scanned folder.
Hosted version
There is no hosted service. LibrePhotos is a community project funded by donations.
Limitations
The lack of a released mobile app is the main gap compared with Immich or Ente Photos, and the reason it is not listed here as a full Google Photos replacement. Machine-learning features need plenty of memory, and there is no paid support option.
Who it suits
LibrePhotos fits people who want rich local AI features (faces, captions, semantic search and event albums) under a permissive MIT license, and who already have a way to get photos from their phones onto the server. It is a good match for an archive on a home server with 8 GB of RAM or more.
Technical details
Self-hosting needs
- PostgreSQL or SQLite
Built with
- Python
- Django
- React
- TypeScript
GitHub topics
- django
- exif
- hacktoberfest
- machine-learning
- photo
- python
- selfhosted
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.