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 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.
