Convert Figma logo to code with AI

LycheeOrg logoLychee

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

4,039
362
4,039
69

Top Related Projects

6,360

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

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

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

Quick Overview

Lychee is an open-source photo management system designed for self-hosting. It allows users to upload, organize, and share their photo collections through a sleek, modern web interface. Lychee focuses on providing a user-friendly experience while offering powerful features for managing large photo libraries.

Pros

  • Easy to install and set up, with support for various hosting environments
  • Clean and intuitive user interface for effortless photo management
  • Supports a wide range of image formats and offers advanced sorting and filtering options
  • Provides secure sharing features with password protection and expiration dates for shared albums

Cons

  • Requires self-hosting, which may be challenging for non-technical users
  • Limited built-in editing capabilities compared to some commercial photo management solutions
  • Potential performance issues with very large photo libraries (100,000+ images)
  • Lacks some advanced features found in paid alternatives, such as facial recognition or AI-powered tagging

Getting Started

To get started with Lychee, follow these steps:

  1. Ensure your server meets the requirements (PHP 7.4+, MySQL/MariaDB)
  2. Download the latest Lychee release from GitHub
  3. Upload the files to your web server
  4. Navigate to the Lychee directory in your browser
  5. Follow the installation wizard to set up your database and admin account
# Clone the repository
git clone https://github.com/LycheeOrg/Lychee.git

# Navigate to the Lychee directory
cd Lychee

# Install dependencies
composer install --no-dev

# Set up environment file
cp .env.example .env

# Generate application key
php artisan key:generate

# Run database migrations
php artisan migrate

# Set proper permissions
chown -R www-data:www-data .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

After completing these steps, you can access Lychee through your web browser and start uploading and organizing your photos.

Competitor Comparisons

6,360

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

Pros of Lychee (electerious)

  • Simpler setup and installation process
  • Lighter weight and potentially faster performance
  • More straightforward user interface for basic photo management

Cons of Lychee (electerious)

  • Less actively maintained and updated
  • Fewer advanced features and customization options
  • Limited support for larger photo collections

Code Comparison

Lychee (electerious):

public function photos($albumID) {
    if ($albumID == '0') {
        $photos = Photo::where('album', '=', '0')
            ->orderBy('takestamp', 'DESC')
            ->get();
    } else {
        $photos = Photo::where('album', '=', $albumID)
            ->orderBy('takestamp', 'ASC')
            ->get();
    }
    return $photos;
}

Lychee (LycheeOrg):

public function photos(string $albumID): Collection
{
    $photos = Photo::with('album:id,title')
        ->where('album_id', '=', $albumID)
        ->orderBy($this->configFunctions->get_value('sorting_Photos', 'takestamp'), 'ASC')
        ->get();

    return PhotoCast::wrapCollection($photos);
}

The LycheeOrg version shows more advanced features like eager loading, configurable sorting, and custom collection wrapping, reflecting its more feature-rich nature.

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

Pros of PhotoPrism

  • More advanced AI-powered features, including facial recognition and object detection
  • Supports a wider range of file formats, including RAW images and videos
  • Offers a more comprehensive search functionality with metadata indexing

Cons of PhotoPrism

  • Higher system requirements and more complex setup process
  • Steeper learning curve due to more advanced features
  • Larger codebase, which may lead to slower development and updates

Code Comparison

PhotoPrism (Go):

func (m *Search) Photos(ctx context.Context, f form.SearchPhotos) (results PhotoResults, err error) {
    if err := f.ParseQueryString(); err != nil {
        return results, err
    }

    s := UnscopedDb().Table("photos").Select("photos.*").
        Where("photos.deleted_at IS NULL").
        Where("photos.photo_quality >= 3")

Lychee (PHP):

public function recent(int $albumID = null): Collection
{
    $query = $this->photos;

    if ($albumID !== null) {
        $query = $query->where('album_id', '=', $albumID);
    }

    return $query->orderBy('created_at', 'DESC')->limit(5)->get();
}

The code snippets show different approaches to querying photos, with PhotoPrism using Go and Lychee using PHP. PhotoPrism's code appears more complex, reflecting its advanced features.

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

Pros of LibrePhotos

  • Advanced AI-powered features like face recognition and object detection
  • More comprehensive metadata handling and search capabilities
  • Supports video files in addition to images

Cons of LibrePhotos

  • More complex setup and higher system requirements
  • Steeper learning curve for users
  • Less frequent updates and potentially less stable

Code Comparison

LibrePhotos (Python):

from django.db import models
from django.contrib.auth.models import User

class Photo(models.Model):
    image = models.ImageField(upload_to='photos')
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

Lychee (PHP):

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Photo extends Model
{
    protected $fillable = ['title', 'url', 'description'];
}

LibrePhotos uses Django's ORM with a more complex model structure, while Lychee employs Laravel's Eloquent ORM with a simpler model definition. This reflects the overall complexity difference between the two projects, with LibrePhotos offering more advanced features at the cost of increased complexity.

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

@LycheeOrg

GitHub Release PHP 8.4 & 8.5 MIT License Downloads
Build Status Code Coverage CII Best Practices Summary OpenSSF Scorecard
Website Documentation Changelog Gitter Discord

Lychee: A Stunning and User-Friendly Photo Management System

Lychee is a free, open-source photo-management tool that runs on your server or web space. Installation is quick and easy, taking just seconds. With Lychee, you can upload, manage, and share your photos seamlessly, just like using a native application. It comes with all the essential features you need, ensuring your photos are stored securely. Read more on our website.

For even more advanced features, consider the Supporter Edition (SE). The SE version offers additional functionality to enhance your experience. Learn more about the Supporter Edition and its benefits here.

⚠️ Upgrade Notice to Version 7.0

Version 7.0 introduces significant changes on the docker image. Please refer to our Upgrade Guide for detailed instructions on how to upgrade from previous versions.

Support the Team

We aim to maintain a free open-source photography library with high quality of code.
Being in control of our own data, our own pictures is something that we value above all.

Through contributions, donations, and sponsorship, you allow Lychee to thrive. Your donations directly support demo server costs, continuous enhancements, and most importantly bug fixes!

Contributing

Contributions welcome! Check out our Contribution Guide and documentation for setup, coding standards, and PR guidelines.

Installation

Docker (Recommended)

The easiest way to deploy Lychee with all dependencies configured:

services:
  lychee:
    image: ghcr.io/lycheeorg/lychee:latest
    container_name: lychee
    ports:
      - "8000:8000"
    volumes:
      - ./lychee/uploads:/app/public/uploads
      - ./lychee/storage:/app/storage
      - .env:/app/.env:ro
    environment:
      APP_URL: http://localhost:8000
      DB_CONNECTION: mysql
      DB_HOST: lychee_db
      DB_PORT: 3306
      DB_DATABASE: lychee
      DB_USERNAME: lychee
      DB_PASSWORD: lychee_password
    depends_on:
      lychee_db:
        condition: service_healthy
    restart: unless-stopped

  lychee_db:
    image: mariadb:11
    container_name: lychee_db
    environment:
      MYSQL_DATABASE: lychee
      MYSQL_USER: lychee
      MYSQL_PASSWORD: lychee_password
      MYSQL_ROOT_PASSWORD: root_password
    volumes:
      - lychee_db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 3s
      retries: 10
    restart: unless-stopped

volumes:
  lychee_db:

Images: GitHub Container Registry | Docker Hub

Docker Tags:

  • latest - Latest stable release
  • edge - Latest development build from master

Other Installation Methods

  • Pre-built releases: Download from GitHub Releases
  • From source: Requires PHP 8.4+, Composer, and npm

For detailed installation, configuration, and update instructions, see our Documentation.

Troubleshooting

Open Source Community Support

PhpStorm

We would like to thank Jetbrains for supporting us with their Open Source Development - Community Support program.