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.