OpenSource-Hub
L

LibrePhotos

8.0k stars·File Management·SHA-256 checksum verified

Self-hosted photo management with AI-powered face recognition, object detection, and semantic search.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

An open-source, self-hosted Google Photos alternative with AI auto-tagging and semantic search.

Core Features

  • Automatic scanning of filesystem, supports raw photos and videos
  • Face recognition and clustering, groups same person automatically
  • Object and scene detection plus reverse geocoding
  • Semantic image search using natural language
  • Smart event-based album generation (e.g. 'Thursday in Berlin')

What It Can't Do

  • ML features are memory-hungry; 8 GB RAM strongly recommended, otherwise system may freeze. 2. Initial scan of large libraries consumes high CPU/RAM; add photos in batches. 3. 'face_recognition' library is tricky on ARM devices (e.g. Raspberry Pi); not recommended. 4. Only Android mobile client available (no iOS). 5. For public deployment, configure a reverse proxy and HTTPS.

Use Cases

  • Replace Google Photos with a private, self-hosted solution
  • Organize large photo libraries for photographers or media teams
  • Privacy-conscious users who want no cloud lock-in
  • Tech enthusiasts or small businesses needing full data control

Detailed Introduction

LibrePhotos is an open-source, self-hosted alternative to Google Photos. It automatically scans your photo library, detects faces and objects, generates event-based albums, and enables powerful semantic searches. Built with Django 5 and React 18, it runs entirely on your own hardware via Docker Compose, ensuring privacy. Machine learning pipelines handle face clustering, scene classification, image captioning, and reverse geocoding out of the box. Supports all photo formats (including raw) and videos.

Troubleshooting & FAQ (1)

Troubleshooting
Why does the delete_missing_photos task crash with GreenletExit error in LibrePhotos?

This occurs when there are a very large number of missing photos (e.g., 400k+), causing the gevent-based worker to timeout or hit concurrency limits. As a workaround, manually clean up missing photos in batches using Django management commands or direct SQL queries. For example, use python manage.py shell and run: from api.models import Photo; missing = Photo.objects.filter(files__isnull=True)[:1000]; Photo.objects.filter(id__in=missing.values_list('id', flat=True)).delete()—repeat until all are removed. Alternatively, try switching to a non-gevent worker like gunicorn with threads, or increase the task timeout.

GitHub Issue #1405

Tags

照片管理自托管人脸识别机器学习开源隐私优先

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: Install Docker and Docker Compose on your system

4

Step 2: Clone the repo: git clone https://github.com/LibrePhotos/librephotos.git

5

Step 3: cd deploy/compose && docker compose up -d

Install Guide
  1. Step 1: Install Docker and Docker Compose on your system
  2. Step 2: Clone the repo: git clone https://github.com/LibrePhotos/librephotos.git
  3. Step 3: cd deploy/compose && docker compose up -d
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Stop and remove containers: run 'docker compose down -v' in the deploy/compose directory, then delete the entire librephotos folder. Note: -v removes all stored data; back up if needed.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseMIT
Last Updated2026-06-27 14:25:14
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects