Do you like lychees? I bet you will like this one!
Few weeks ago, I was looking for a self-hosted solution where I can store all my travel pictures and I eventually bumped into Lychee. Lychee is a free, simple and secure photo-management-system which can be run in a Docker container. Which is basically what I was looking for! So I decided to try it out and… I loved it!
That’s how I have done it. First, I needed a big room for my pictures. A shared folder in my NAS would do the job.
I needed two more folders: a database folder (yes, we need a database) and a config folder.
Once created these folders, it was time to create the containers.
1 2 3 4 mkdir lychee cd lychee touch docker-compose nano docker-compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 --- version: '3' services: lychee_db: container_name: lychee_db image: mariadb:10 environment: - MYSQL_ROOT_PASSWORD=YourSuperSecretRootPassword - MYSQL_DATABASE=lychee - MYSQL_USER=YourUsername - MYSQL_PASSWORD=YourSuperSecretPassword expose: - 3306 volumes: - /path/to/db:/db networks: - lychee restart: unless-stopped lychee: image: lycheeorg/lychee container_name: lychee ports: - 90:80 volumes: - /path/to/config:/conf - /path/to/uploads:/uploads networks: - lychee environment: - PUID=1000 - PGID=1000 - PHP_TZ=Europe/London - DB_CONNECTION=mysql - DB_HOST=lychee_db - DB_PORT=3306 - DB_DATABASE=lychee - DB_USERNAME=YourUsername - DB_PASSWORD=YourSuperSecretPassword # has to match the above MYSQL_PASSWORD - STARTUP_DELAY=30 restart: unless-stopped depends_on: - lychee_db networks: lychee: volumes: mysql:
After adding all variables and volumes, just write, save the changes and then:
1 sudo docker-compose up -d
Once the containers were up and running, I opened up a web browser and headed to the
ip address:port where Lychee lives, set up username and password, and ta-dah! I now have my self-hosted photo-management-system.
I can upload, download, share, get details of my pictures, implement 2FA… It’s simply amazing!
I hope you like it too.
If you would like to personalise this service even more, take a look at the Lychee Documentation and edit the