Grid and album based photo-management-system.
Lychee is commonly used as a self-hosted alternative to Google Photos, Flickr. Replacing a SaaS tool with a self-hosted equivalent lets you avoid recurring subscription fees, keep full control of your data, and continue working even when the original vendor changes pricing, ships limits, or shuts down.
License: MIT. Built with: PHP, Vue, TypeScript, Blade, HTML, Shell, Dockerfile, Makefile. Website: https://lycheeorg.github.io/. Source: https://github.com/LycheeOrg/Lychee.
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: ```yaml 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:
Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.
Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through Lychee. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.
Last verified: 2026-05-21