OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Lychee

Self-hosted photo gallery for uploading, organizing and sharing albums, built on PHP and Laravel

Visit LycheeGitHubDocumentation

Main features

  • Chunked web uploads, CLI import and sync with local folders
  • Nested albums, smart albums and tag-based smart albums
  • Timeline and map views
  • EXIF decoding, auto-rotation and star ratings
  • Per-album access rights, cross-user sharing and sensitive albums
  • Login with WebAuthn or OAuth, invite links and a registration page
  • Duplicate detection by file hash
  • Embeddable albums, RSS feed, slideshow and frame display
  • Justified, masonry and square layouts with per-album settings
  • Unlimited users, albums and uploads in the free edition

What Lychee does

Lychee is a self-hosted photo gallery for people who want to upload, arrange and share albums through a clean web interface. It is album-centered rather than timeline-centered: you build nested albums, add tags, rate photos and use smart albums that fill themselves from tags or other rules. A timeline and a map view (from GPS data in the files) give other ways to browse.

Photos arrive by web upload, split into chunks so large files get through, by import from server directories on the command line or in the web UI, or by syncing with local folders, optionally removing albums and photos that no longer exist on disk. EXIF data is decoded, photos are rotated automatically, and duplicates can be found by file hash.

Sharing and access control

Sharing is where Lychee is most detailed. Each album can have its own access rights, users can share with each other, and sensitive albums can be hidden. Logins work with passwords, WebAuthn or OAuth providers, and admins can send invite links or open a registration page. Albums can be embedded in other websites or followed through an RSS feed, and there is a slideshow and a frame display mode for showing photos on a screen.

Self-hosting Lychee

The recommended install is the official Docker image (based on FrankenPHP) with MariaDB in Docker Compose. Version 7 changed the image and added a separate worker container for background jobs, so older installs need the upgrade guide. Lychee can also be installed by hand on a normal PHP server: it needs PHP 8.4 or newer with common extensions (gd, exif, PDO and others; imagick optional for better thumbnails), a web server, and MySQL, MariaDB, PostgreSQL or SQLite. Redis is optional. That makes it one of the few tools here that can run on ordinary shared web hosting.

Editions

The free edition has no limits on users, albums or uploads. A paid Supporter Edition adds library statistics, user groups with upload quotas, anonymous uploads, secured image links, watermarking and more customization; a Pro add-on on top of it adds a webshop for photographers selling pictures. The project says the free edition has not been cut back to push people toward the paid one.

Hosted version

The Lychee team does not offer hosting; there is a public demo.

Limitations

Lychee is a gallery, not a phone backup service. There is no mobile app, and the feature comparison lists facial recognition as planned for version 8. Some management features sit in the Supporter Edition.

Who it suits

Lychee suits photographers, clubs and families who want to publish and share curated albums with fine-grained permissions, especially on inexpensive PHP hosting. For automatic phone backup, pair it with another tool or look at Immich; for a gallery with a long plugin history and an official hosted option, see Piwigo.

License details

MIT. A paid Supporter Edition adds features such as statistics, user groups, upload quotas, secured links and watermarking; a Pro add-on adds a webshop for selling photos.

Technical details

Self-hosting needs

  • MySQL/MariaDB
  • PostgreSQL or SQLite

Built with

  • PHP
  • Laravel
  • Vue.js

GitHub topics

  • gallery
  • hacktoberfest
  • photo-gallery
  • photo-gallery-application
  • photo-management
  • photos
  • php
  • typescript
  • vuejs

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.