LibrePhotos/librephotos

A self-hosted open source photo management service.

django
exif
hacktoberfest
machine-learning
photo
python
selfhosted

Discord Website Read the docs GitHub contributors License: MIT Translation status

LibrePhotos

Mockup designed by rawpixel.com / Freepik

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

  • Stable demo is available here: https://demo1.librephotos.com/ . User is demo, password is demo1234 (with sample images).
  • Latest development demo is available here: https://demo2.librephotos.com/ (same user/password)
  • You can watch development videos on Niaz Faridani-Rad's channel
  • You can join our Discord.

Repository layout

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

Path What it is Previous repo
apps/backend/ Django 5 API, machine-learning pipelines, background jobs librephotos
apps/frontend/ React 18 + Vite web client, i18next localization librephotos-frontend
apps/mobile/ React Native mobile client (Android) librephotos-mobile
apps/docs/ Docusaurus site published to https://docs.librephotos.com librephotos.docs
deploy/ Dockerfiles, Compose configs, proxy, Kubernetes manifests librephotos-docker

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

Installation

Step-by-step installation instructions are available in our documentation.

System Requirements

Resource Minimum Recommended
RAM 4 GB 8 GB+
Storage 10 GB (plus your photo library) SSD recommended
CPU 2 cores 4+ cores
OS Any Docker-compatible OS Linux

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

Features

  • Support for all types of photos including raw photos
  • Support for videos
  • Timeline view
  • Scans pictures on the file system
  • Multiuser support
  • Generate albums based on events like "Thursday in Berlin"
  • Face recognition / Face classification
  • Reverse geocoding
  • Object / Scene detection
  • Semantic image search
  • Search by metadata

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: - Backend - Frontend - Mobile - Docs site

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.

Stars
7983
0.26% more than last month
Forks
372
Open Issues
228