Convert Figma logo to code with AI

LibrePhotos logolibrephotos

A self-hosted open source photo management service.

7,984
371
7,984
228

Top Related Projects

AI-Powered Photos App for the Decentralized Web 🌈💎✨

4,155

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

99,961

High performance self-hosted photo and video management solution.

Quick Overview

LibrePhotos is an open-source, self-hosted photo management solution. It offers features like face recognition, object detection, and location-based organization, allowing users to manage and search their personal photo collections efficiently and securely on their own hardware.

Pros

  • Self-hosted solution, providing complete control over personal data
  • Advanced AI-powered features like face recognition and object detection
  • Supports various file formats and RAW images
  • Customizable and extensible due to its open-source nature

Cons

  • Requires technical knowledge for setup and maintenance
  • May require significant hardware resources for large photo collections
  • Limited mobile support compared to cloud-based alternatives
  • Smaller community and ecosystem compared to commercial solutions

Getting Started

To set up LibrePhotos:

  1. Clone the repository:

    git clone https://github.com/LibrePhotos/librephotos.git
    
  2. Navigate to the project directory:

    cd librephotos
    
  3. Copy the example environment file:

    cp .env.example .env
    
  4. Edit the .env file to configure your settings.

  5. Build and start the containers:

    docker-compose up -d
    
  6. Access the web interface at http://localhost:3000 and follow the setup wizard.

For detailed instructions and configuration options, refer to the project's documentation on GitHub.

Competitor Comparisons

AI-Powered Photos App for the Decentralized Web 🌈💎✨

Pros of PhotoPrism

  • More active development with frequent updates and releases
  • Better support for RAW image formats and advanced metadata handling
  • Faster indexing and search capabilities, especially for large libraries

Cons of PhotoPrism

  • Requires more system resources, especially for initial indexing
  • Less customizable user interface compared to LibrePhotos
  • Steeper learning curve for advanced features and configuration

Code Comparison

PhotoPrism (Go):

func (m *Index) IndexFiles(files []string, opt IndexOptions) (complete Files, failed map[string]error) {
    done := make(chan File)
    jobs := make(chan string)
    failed = make(map[string]error)

    // Start worker goroutines
    for w := 1; w <= opt.Workers; w++ {
        go m.indexWorker(jobs, done)
    }

LibrePhotos (Python):

def index_photos(self):
    photos_to_add = []
    for image_path in self.all_files:
        if is_valid_image(image_path):
            photos_to_add.append(image_path)
    
    self.photos.bulk_create([
        Photo(image_path=p, owner=self.user) for p in photos_to_add
    ])
4,155

A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.

Pros of Lychee

  • Lightweight and easy to set up
  • Supports multiple users and sharing options
  • Clean and intuitive user interface

Cons of Lychee

  • Limited facial recognition and AI-powered features
  • Fewer advanced organization and tagging options
  • Less robust metadata handling and editing capabilities

Code Comparison

Lychee (PHP):

public function add(Request $request)
{
    $request->validate([
        'albumID' => 'required|string',
        'function' => 'required|string',
    ]);
    // ... (implementation)
}

Librephotos (Python):

def add_photo_to_album(request):
    user = request.user
    if not user.is_authenticated:
        return HttpResponse("Unauthorized", status=401)
    # ... (implementation)

Both projects use different languages and frameworks, making direct code comparison challenging. Lychee is built with PHP and Laravel, while Librephotos uses Python and Django. Lychee's code tends to be more concise and focused on web-based functionality, while Librephotos includes more complex features like machine learning integration and advanced metadata processing.

Lychee is better suited for users seeking a straightforward, web-based photo management solution. Librephotos offers more advanced features and AI-powered capabilities, making it ideal for users who require deeper organization and analysis of their photo collections.

99,961

High performance self-hosted photo and video management solution.

Pros of immich

  • More active development with frequent updates and releases
  • Better mobile app support, including iOS and Android clients
  • Faster performance for large photo libraries

Cons of immich

  • Less mature project with potential stability issues
  • Fewer advanced features compared to LibrePhotos (e.g., face recognition)
  • Limited customization options for self-hosted deployments

Code Comparison

immich (TypeScript):

export async function generateAuthToken(user: User): Promise<string> {
  const payload: JwtPayload = { sub: user.id, email: user.email };
  return jwt.sign(payload, JWT_SECRET, { expiresIn: '1d' });
}

LibrePhotos (Python):

def generate_auth_token(user):
    payload = {'user_id': user.id, 'exp': datetime.utcnow() + timedelta(days=1)}
    return jwt.encode(payload, SECRET_KEY, algorithm='HS256')

Both projects use JWT for authentication, but immich implements it in TypeScript while LibrePhotos uses Python. The token generation logic is similar, with immich including the email in the payload and LibrePhotos using a more explicit expiration time.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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.

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/React Native mobile client (Android)librephotos-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

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

System Requirements

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

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:

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.