Convert Figma logo to code with AI

LibrePhotos logolibrephotos

A self-hosted open source photo management service. This is the repository of the backend.

7,038
310
7,038
286

Top Related Projects

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

3,459

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

54,187

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
    ])
3,459

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.

54,187

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 Translation status

LibrePhotos

Mockup designed by rawpixel.com / Freepik

Installation

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

How to help out

  • ⭐ Star this repository if you like this project!
  • 🚀 Developing: Get started in less than 30 minutes by following this guide.
  • 🗒️ 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

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

What does it use?