Laravel Laravel
  • Prologue

    • Lychee & LycheeOrg
    • Release Notes
  • Getting Started

    • Installation
    • Configuration
    • Docker
    • Update
    • Upgrade from v3
  • Advanced Topics

    • Settings
    • Keyboard Shortcuts
    • Advanced Setups
  • Frequently Asked Question

    • General
    • Installation, migration, upgrade, update
    • Troubleshooting
  • Contributing

    • Contribution Guide
    • API Documentation
    • Lychee logic overview
    • Directory Structure
    • Front-end
    • Livewire Front-end (alpha)
  • Laravel

Advanced Setups

  • Introduction
  • Separating Data from the Code
  • VirtualBox with Visual Studio Code
    • Set Up & Port Forwarding
    • Apache and Proxy in the Host
    • Apache in the Guest
    • Visual Studio Code
  • Other means of distributions
    • With Linuxserver.io (Free)
    • With Yunohost (Free)
    • With Cloudron (Paid)
    • With alwaysdata (Paid)

Introduction

In this page we describe additional ways to install and potentially to develop on Lychee.

Separating Data from the Code

As described in issue #486, LudovicRousseau proposes a solution to separate your photos from the Lychee code.

He splits Lychee itself and the pictures into 2 directories: - Lychee with the code of Lychee - Lychee-data containing:

Lychee-data/
└── public
    ├── dist
    │   ├── fonts
    │   └── resources
    └── uploads
        ├── big
        ├── import
        ├── medium
        ├── raw
        ├── small
        └── thumb
  • his Lychee/.env contains:
LYCHEE_DIST="/var/www/Lychee-data/public/dist/"
LYCHEE_UPLOADS="/var/www/Lychee-data/public/uploads/"

{note} Note that the path needs to be absolute.

The upgrade script when a new version of Lychee is available is simple:

mv Lychee Lychee.old
unzip Lychee.zip
cp Lychee.old/.env Lychee
chmod g+w -R Lychee/storage
sudo chgrp www-data -R Lychee/storage
cd Lychee
php artisan key:generate
php artisan migrate

It worked fine with the migration from 4.0.4 to 4.0.5 of Lychee.

The hierarchy Lychee-data/public/ is writeable by the group www-data so that apache process can modify the files. The files in Lychee are read only for apache. No write access needed.

VirtualBox with Visual Studio Code

  • Requires an Apache server with proxy and proxy_http enabled.
  • Requires a Virtual Machine (using e.g. VirtualBox)

Set Up & Port Forwarding

Set up your VM as if you would install any server.

Set up the following port forwarding:

  • host:10180 ↠ guest:80
  • host:10122 ↠ guest:22

The first one will allow us to access the server from Local host, the second will allow us to connect to it via SSH.

Apache and Proxy in the Host

Edit your /etc/hosts to contain:

127.0.0.1   lychee.test
127.0.0.1   lycheeorg.test

Create configuration files in /etc/apache2/sites-available: 001-lychee-test.conf and 002-lycheeorg-test.conf

<VirtualHost *:80>
    ServerName lychee.test

    ProxyPass / http://localhost:10180/
    ProxyPassReverse / http://lychee.test/
    ProxyPreserveHost On
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

and

<VirtualHost *:80>
    ServerName lycheeorg.test

    ProxyPass / http://localhost:10180/
    ProxyPassReverse / http://lycheeorg.test/
    ProxyPreserveHost On
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Enable the sites and reload apache:

sudo a2ensite 001-lychee-test.conf
sudo a2ensite 002-lycheeorg-test.conf
sudo systemctl restart apache2

Apache in the Guest

In your guest OS, clone the Lychee repository (requires ssh key to be set up):

git clone git@github.com:LycheeOrg/Lychee.git /var/www/html/Lychee
git clone git@github.con:LycheeOrg/LycheeOrg.github.io /var/www/html/LycheeOrg.github.io

Similarily in /etc/apache2/sites-available create 2 configuration files: 001-lychee.conf and 002-lycheeorg.conf

<VirtualHost *:80>
    ServerName lychee.test

    DocumentRoot /var/www/html/Lychee/public

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

and

<VirtualHost *:80>
    ServerName lycheeorg.test

    DocumentRoot /var/www/html/LycheeOrg.github.io

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Enable the sites and reload apache:

sudo a2ensite 001-lychee-test.conf
sudo a2ensite 002-lycheeorg-test.conf
sudo systemctl restart apache2

Open a browser on your host and navigate to http://lychee.test and http://lycheeorg.test enjoy.

Visual Studio Code

If you use Visual Studio Code, you can use the remote ssh extension. It will allow you to directly edit your files in your VM without having to upload and download the files.

Other means of distributions

In this section we present few out-of-the-box solutions providing Lychee.

{note} Please note that we, at LycheeOrg, do not endorse any of the following solutions. We give the reader a link to their websites as they provide our software. You are free to use their installation, however we will not be providing you support with their solution.

With Linuxserver.io (Free)

Linuxserver.io is a group of like minded enthusiasts from across the world who build and maintain the largest collection of Docker images on the web, and at our core are the principles behind Free and Open Source Software. Their primary goal is to provide easy-to-use and streamlined Docker images with clear and concise documentation.

You can find the corresponding Lychee image here.

With Yunohost (Free)

Yunohost is a simple operating system for self-hosting your applications. Lychee is available from their app store and can be installed by clicking this installation link. You can find the source code of the app under https://github.com/YunoHost-Apps/lychee_ynh.

With Cloudron (Paid)

Cloudron is a complete solution for running apps on your server and keeping them up-to-date and secure.

Install

The source code for the package can be found here.

See their pricing here.

With alwaysdata (Paid)

alwaysdata.com is a modern hosting platform allowing you to host all your services in one place: files, emails, sites, media, databases, workers, etc.

You can use their Marketplace to install Lychee and have your own instance available (with HTTPS) within a minute!

See their pricing here.

{tip} Caught a mistake or want to contribute to the documentation? Edit this page on Github!