Lychee is a free, open source digital asset management (dam) project written in PHP and released under MIT. It has 4,295 GitHub stars, 377 forks and 37 open issues, and was last pushed 8 hours ago. On this registry it ranks #7 of 25 tracked projects in Digital Asset Management (DAM), with 5 head-to-head comparisons available. It gained 6 stars over the last 6 tracked days.

What is Lychee?

What it is

Lychee is a free, open-source photo-management system written in PHP and released under the MIT license. It is a self-hosted web application for managing photo galleries in the PHP, Vue.js, and TypeScript ecosystem described by the repository topics. People can run it on their own server or web space, then upload, manage, and share photos through a browser.

The concrete problem Lychee addresses is the need to keep photo collections under the owner's control on their own server. It provides a gallery-style application for organizing photos, while deployment is centered on self-hosting with Docker, a database, and mounted storage. The README notes that a Supporter Edition offers additional functionality beyond the open-source core.

Key capabilities

  • Lychee runs as a self-hosted PHP web application with a Vue.js and TypeScript interface indicated by the topics.
  • It supports uploading, managing, and sharing photos through a gallery-style interface.
  • It can be deployed with Docker using a minimal compose file or the ghcr.io/lycheeorg/lychee:latest image.
  • The quick Docker setup includes a separate worker container for background jobs.
  • The recommended deployment uses MariaDB 11 and mounted volumes for uploads, logs, and temporary files.
  • The README badge states support for PHP 8.4 and PHP 8.5.
  • The project is MIT licensed and mentions a Supporter Edition with additional functionality.

Who uses it and how

  • People who want photo management on their own server can install Lychee and access it through a browser.
  • Users can test it by downloading docker-compose.minimal.yaml, starting the containers, and opening http://localhost:8000.
  • Operators can run a longer-lived deployment with the recommended Docker image, a MariaDB database, and persistent volumes.
  • People upgrading to version 7.0 need to consult the upgrade guide because the Docker image changed significantly.
  • Contributors can follow the contribution guide and documentation for setup, coding standards, and pull request guidelines.

Getting started

The README describes a quick Docker trial with curl -O https://raw.githubusercontent.com/LycheeOrg/Lychee/master/docker-compose.minimal.yaml followed by docker compose -f docker-compose.minimal.yaml up -d and opening http://localhost:8000. It also describes a recommended Docker deployment using ghcr.io/lycheeorg/lychee:latest, a MariaDB 11 service, configured environment variables, and mounted volumes for uploads, logs, and temporary files.

When to use it — and when not to

Lychee is a good fit when users want a self-hosted, MIT-licensed photo-management application and are willing to operate the PHP web service, database, storage volumes, and upgrades themselves. It is less suitable when users want a managed service, because the provided facts describe deployment on their server and do not mention a hosted option. The repository facts list 0 contributors, 37 open issues, and a significant Docker image change in version 7.0, so self-hosters should evaluate maintenance capacity and follow the upgrade guide before production use.

project readme (upstream, from github) — read inline

@LycheeOrg

GitHub Release PHP 8.4 & 8.5 MIT License ![Downloads][download-shield]
Build Status Code Coverage CII Best Practices Summary OpenSSF Scorecard
Website Documentation ![Changelog][changelog-shield] [![Discord][discord-shield]][discord] GitGem

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.

AI-assisted contributions are permitted — see our AI/Claude Guidelines and AGENTS.md for the Specification-Driven Development workflow.

Installation

Quick Try (Docker)

Want to quickly test Lychee? Use the minimal docker-compose template:

curl -O https://raw.githubusercontent.com/LycheeOrg/Lychee/master/docker-compose.minimal.yaml
docker compose -f docker-compose.minimal.yaml up -d

Then open http://localhost:8000 in your browser. This setup includes a separate worker container for background jobs.

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/logs:/app/storage/logs
      - ./lychee/tmp:/app/storage/tmp
    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
      # Generate the APP_KEY with `echo "base64:$(openssl rand -base64 32)"` and set it here (without the < >)
      # APP_KEY: base64:<result of 'openssl rand -base64 32'>
    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][jetbrains-opensource] program.

readme truncated — read the full docs on github

Frequently asked questions

Is Lychee free to use?

Lychee is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Lychee do?

Self-hosted photo management with full control

What is Lychee written in?

Lychee is primarily written in PHP. Its source is publicly available at https://github.com/lycheeorg/lychee, and it has 4,295 GitHub stars.