README.md 2.2 KB

grayspread.net Website Source Code

This is the code powering the grayspread.net website, which is to date an unpublished WIP. This application uses the Lakesuperior Linked Data repository as a back end and can be used as a real-world example on how to use the Lakesuperior Python API.

[TODO MORE INFO]

Setup

Docker Image TBA

A Docker image allowing to avoid all the setup steps listed below may be made available in the future.

Clone Repository

It is advised to clone this repo as a subfolder of a dedicated project folder, e.g.:

mkdir grayspread
cd grayspread
git clone <remote> src

Virtualenv

A virtual environment must be installed in order to use the autostart scripts.

Run:

python3 -m venv venv

in the parent directory of the git repo root.

Install Python Dependencies

Run:

cd src
source ./load_env
pip install -r requirements.txt

Environment Setup

Copy config/.env to the parent folder of git repo root and change it to fit your needs.

At the end of this process, you should have the following folder layout:

    grayspread/
    |
    `- .env
    |
    `- src/
    |
    `- venv/

iipsrv

IIPImage, or iipsrv, is a high-performance, IIIF-compliant image server. Grayspread uses it to generate derivatives on the fly.

Clone the https://github.com/ruven/iipsrv repository, compile the source code, and place iipsrv.fcgi in the bin directory.

Nginx

You need an Nginx instance running to serve images via the iipsrv FCGI. Copy config/iipsrv.conf to your Nginx configuration, edit if needed, and start or reload Nginx.

Any other webserver similarly set up to listen to FCGI should be fine.

Start Services

The start.sh script starts a multiwatch process that spawns and watches multiple iipsrv instances, and a Flask process for the web app in the background.

The load_env.sh can be sourced in a separate shell to load the virtual environment.

Initial Data Set

An initial data set is provided in the form of CSV files that are parsed by a conversion script. [TODO Resolve issue with source images]