Lychee
A great looking and easy-to-use photo-management-system you can run on your server, to manage and share photos.
Top Related Projects
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:
- Ensure your server meets the requirements (PHP 7.4+, MySQL/MariaDB)
- Download the latest Lychee release from GitHub
- Upload the files to your web server
- Navigate to the Lychee directory in your browser
- 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
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
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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 releaseedge- 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
- Documentation - Complete guides and FAQ
- GitHub Issues - Report bugs
- Discord or Gitter - Community support
Open Source Community Support
We would like to thank Jetbrains for supporting us with their Open Source Development - Community Support program.
Top Related Projects
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.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot