Self-host Lychee
updated Sep 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
A photo-management web app for uploading, organizing and sharing photos in albums from your own server.
Key facts
CategoryPhoto backup & gallery
LicenseMIT
StackPHP, Laravel, Vue
Min RAM1024 MB
Official imageyes
Measured idle RAM279 MB
Difficulty
What you need
- Any VPS with at least 1024 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + USKamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + AsiaDigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + AsiaPaid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Lychee + MariaDB — the README's Docker (Recommended) compose, with APP_KEY and DB passwords generated
mkdir -p lychee && cd lychee
DB_PW=$(openssl rand -hex 16)
cat > docker-compose.yml <<EOF
services:
lychee:
image: ghcr.io/lycheeorg/lychee:latest
ports: ["8000:8000"]
volumes:
- ./lychee/uploads:/app/public/uploads
- ./lychee/logs:/app/storage/logs
- ./lychee/tmp:/app/storage/tmp
environment:
APP_URL: http://SERVER_IP:8000
APP_KEY: "base64:$(openssl rand -base64 32)"
DB_CONNECTION: mysql
DB_HOST: lychee_db
DB_PORT: 3306
DB_DATABASE: lychee
DB_USERNAME: lychee
DB_PASSWORD: $DB_PW
depends_on: { lychee_db: { condition: service_healthy } }
restart: unless-stopped
lychee_db:
image: mariadb:11
environment:
MYSQL_DATABASE: lychee
MYSQL_USER: lychee
MYSQL_PASSWORD: $DB_PW
MYSQL_ROOT_PASSWORD: $(openssl rand -hex 16)
volumes: ["lychee_db:/var/lib/mysql"]
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
retries: 10
restart: unless-stopped
volumes:
lychee_db:
EOF
docker compose up -d
# open http://SERVER_IP:8000 — the first visit asks you to create the admin accountMore in Photo backup & gallery
Photo backup & gallery
Ente
GoPostgreSQL
moderateRead guide →
Photo backup & gallery
Immich
TypeScriptNode.js
moderateRead guide →
Photo backup & gallery
PhotoPrism
GoJavaScript
easyRead guide →
Photo backup & gallery
PiGallery2
TypeScriptNode.jsAngular
easyRead guide →