LibrePhotos/librephotos

A self-hosted open source photo management service.

Python

8,105

6,923 commits

updated Oct 12, 2026

See the code

README

Discord Read the docs GitHub contributors License: MIT

LibrePhotos

The LibrePhotos timeline, with photos grouped by day and place Sample photos from Pexels, see the credits.

A self-hosted, open-source photo management service with automatic face recognition, object detection, and semantic search — powered by modern machine learning.

Repository layout

This is a monorepo that consolidates what was previously five separate repositories.

PathWhat it isPrevious repo
apps/backend/Django 5 API, machine-learning pipelines, background jobslibrephotos
apps/frontend/React 18 + Vite web client, i18next localizationlibrephotos-frontend
apps/mobile/Expo mobile app (Android and iOS), offline-firstlibrephotos-mobile
apps/docs/Docusaurus site published to https://docs.librephotos.comlibrephotos.docs
deploy/Dockerfiles, Compose configs, proxy, Kubernetes manifestslibrephotos-docker

Commit history from all five repositories is preserved — git log --follow apps/<app>/<file> works across the move.

Installation

Pick the deployment that fits your setup. Step-by-step guides are in the documentation.

System Requirements

ResourceMinimumRecommended
RAM4 GB8 GB+
Storage10 GB (plus your photo library)SSD recommended
CPU2 cores4+ cores
OSAny Docker-compatible OS, or WindowsLinux

Note: Machine learning features (face recognition, scene classification, image captioning) are memory-intensive. 8 GB+ RAM is strongly recommended for smooth operation.

Features

  • Photos in all common formats, including RAW, HEIC and JPEG XL
  • Videos and live photos
  • Timeline grouped by day and place, plus favorites, recent additions and memories
  • Scans your existing folders and accepts uploads from the web and mobile apps
  • Multiple users, shared albums and public links
  • Albums generated from events, like "Saturday in Lisbon"
  • Face detection and clustering: name a person once and the rest is suggested
  • Places and a map from reverse geocoding
  • Tags and generated captions for every photo
  • Semantic search ("dog on a beach") and search by metadata
  • RAW+JPEG pairs kept as one photo, burst and bracket stacks, and duplicate detection
  • Single sign-on through OpenID Connect
  • Expo mobile app for Android and iOS

Tech Stack

Backend

Frontend

Machine Learning

Infrastructure

API Documentation

After starting LibrePhotos, interactive API docs are available at:

  • Swagger UI: http://localhost:3000/api/swagger
  • ReDoc: http://localhost:3000/api/redoc

Development

See CONTRIBUTING.md and the per-app READMEs:

The Docker Compose-based dev environment lives in deploy/compose/ and is described in the development install guide.

How to help out

  • ⭐ Star this repository if you like this project!
  • 🚀 Developing: Get started in less than 30 minutes by following this guide. Also see our CONTRIBUTING.md for detailed development setup, code quality standards, and PR guidelines.
  • 🗒️ Documentation: Improving the documentation is as simple as submitting a pull request here
  • 🧪 Testing: If you want to help find bugs, use the dev tag and update it regularly. If you find a bug, open an issue.
  • 🧑‍🤝‍🧑 Outreach: Talk about this project with other people and help them to get started too!
  • 🌐 Translations: Make LibrePhotos accessible to more people with weblate.
  • 💸 Donate to the developers of LibrePhotos

License

This project is licensed under the MIT License.

django
exif
hacktoberfest
machine-learning
photo
python
selfhosted

LibrePhotos/librephotos

A self-hosted open source photo management service.

Python

8,105

6,923 commits

updated Oct 12, 2026

See the code

README

Discord Read the docs GitHub contributors License: MIT

LibrePhotos

The LibrePhotos timeline, with photos grouped by day and place Sample photos from Pexels, see the credits.

A self-hosted, open-source photo management service with automatic face recognition, object detection, and semantic search — powered by modern machine learning.

Repository layout

This is a monorepo that consolidates what was previously five separate repositories.

PathWhat it isPrevious repo
apps/backend/Django 5 API, machine-learning pipelines, background jobslibrephotos
apps/frontend/React 18 + Vite web client, i18next localizationlibrephotos-frontend
apps/mobile/Expo mobile app (Android and iOS), offline-firstlibrephotos-mobile
apps/docs/Docusaurus site published to https://docs.librephotos.comlibrephotos.docs
deploy/Dockerfiles, Compose configs, proxy, Kubernetes manifestslibrephotos-docker

Commit history from all five repositories is preserved — git log --follow apps/<app>/<file> works across the move.

Installation

Pick the deployment that fits your setup. Step-by-step guides are in the documentation.

System Requirements

ResourceMinimumRecommended
RAM4 GB8 GB+
Storage10 GB (plus your photo library)SSD recommended
CPU2 cores4+ cores
OSAny Docker-compatible OS, or WindowsLinux

Note: Machine learning features (face recognition, scene classification, image captioning) are memory-intensive. 8 GB+ RAM is strongly recommended for smooth operation.

Features

  • Photos in all common formats, including RAW, HEIC and JPEG XL
  • Videos and live photos
  • Timeline grouped by day and place, plus favorites, recent additions and memories
  • Scans your existing folders and accepts uploads from the web and mobile apps
  • Multiple users, shared albums and public links
  • Albums generated from events, like "Saturday in Lisbon"
  • Face detection and clustering: name a person once and the rest is suggested
  • Places and a map from reverse geocoding
  • Tags and generated captions for every photo
  • Semantic search ("dog on a beach") and search by metadata
  • RAW+JPEG pairs kept as one photo, burst and bracket stacks, and duplicate detection
  • Single sign-on through OpenID Connect
  • Expo mobile app for Android and iOS

Tech Stack

Backend

Frontend

Machine Learning

Infrastructure

API Documentation

After starting LibrePhotos, interactive API docs are available at:

  • Swagger UI: http://localhost:3000/api/swagger
  • ReDoc: http://localhost:3000/api/redoc

Development

See CONTRIBUTING.md and the per-app READMEs:

The Docker Compose-based dev environment lives in deploy/compose/ and is described in the development install guide.

How to help out

  • ⭐ Star this repository if you like this project!
  • 🚀 Developing: Get started in less than 30 minutes by following this guide. Also see our CONTRIBUTING.md for detailed development setup, code quality standards, and PR guidelines.
  • 🗒️ Documentation: Improving the documentation is as simple as submitting a pull request here
  • 🧪 Testing: If you want to help find bugs, use the dev tag and update it regularly. If you find a bug, open an issue.
  • 🧑‍🤝‍🧑 Outreach: Talk about this project with other people and help them to get started too!
  • 🌐 Translations: Make LibrePhotos accessible to more people with weblate.
  • 💸 Donate to the developers of LibrePhotos

License

This project is licensed under the MIT License.

django
exif
hacktoberfest
machine-learning
photo
python
selfhosted

Significant stargazers

(top 24 of 45)

Romain Beaumont

2,245 followers · starred Oct 2023

Bastian Köcher

848 followers · starred Dec 2020

Martin Grigorov

312 followers · starred Dec 2020

Oymate

8 followers · starred Jan 2021