desuto-platform/d6b9841b9a91viewer-only
viewer-only vs master
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
d306da0fd88e | roger-schaer | Use JPEG compression for pyramidal TIFF tiles | Jul 29 2019 | ||||
ad53fe105d09 | roger-schaer | Additional improvements of 'read-only' SVG elements | Jul 29 2019 | ||||
bebb5c079de3 | roger-schaer | Improved handling of 'unselectable' annotations | Jul 28 2019 | ||||
3bc2747ad6fb | roger-schaer | Update local exceptions variable on permissions update | Jul 24 2019 | ||||
6fbf683df1e2 | roger-schaer | Style permission page | Jul 24 2019 | ||||
113447dd7dc1 | roger-schaer | Enable job control again in couchdb entrypoint | Jul 24 2019 | ||||
8acc67007f12 | roger-schaer | Fix protocol to HTTP in the couchdb entrypoint | Jul 24 2019 | ||||
7fd8628089be | roger-schaer | Configure cookie timeout in .ini file | Jul 24 2019 | ||||
6f6cdac5c0dd | roger-schaer | Make the couchdb entrypoint more verbose (debugging) | Jul 24 2019 | ||||
c597d92520bf | roger-schaer | Define traefik port for couchdb | Jul 24 2019 |
/
README.md
Desuto & ParaDISE
This Docker Compose configuration allows building and running a functional Desuto Web Viewer and Retrieval Interface (including the ParaDISE retrieval engine) from scratch on any Docker-enabled host.
This README file aims to describe the structure of the containers and any possible configuration changes that may be required when setting up the system on a new host.
Prerequisites
To run "Desuto-ParaDISE", you will need to install at least:
- A recent version of Docker CE : https://docs.docker.com/install/linux/docker-ce/ubuntu/
- A recent version of Docker Compose : https://docs.docker.com/compose/install/
- Preferably a machine with a minimum of 10GB of available RAM to store the visual indices in-memory
Containers
The `docker-compose.yml` file is made up of the following containers:
- proxy : Proxy facade for all services based on nginx
- mysql : MySQL server for storing image metadata (URLs, modalities, captions, etc.)
- couchdb : CouchDgiggingver for storing image annotation data from the Web Viewer
- uploads : Basic nginx instance for serving uploaded images
- images : Basic nginx instance for serving images of the datasets used for retrieval
- paradise-gf : Glassfish Java application server instance hosting the ParaDISE engine
- retrieval : Apache instance hosting the Shambala-based retrieval interface
- webviewer : Node.js server for the Web Viewer / Annotation tool
- iipsrv : IIPImage server for generating the image tiles for the Web Viewer
- slideprops : Python Web Service for extracting slide properties (using Openslide)
Volumes
The following shared volumes are declared:
- upload-volume : Shared volume for uploaded images (served by the uploads container)
Ports
The following ports need to be open on the host machine to run all services correctly:
- 80 : Port 80 is used by the proxy facade to expose all underlying services
Environment variables
The following default environment variables are declared in the `.env file. All current values assume that the server runs on localhost` and all services are behind the proxy container. All these variables are injected in various configuration files required by Javascript and Node.js applications. If no special setup is required on the test host, this file does not need to be modified.
- PARADISE_ROOT_URL : Default URL of the ParaDISE engine
- RETRIEVAL_INTERFACE_ROOT_URL : Default URL of the Retrieval Interface
- COUCHDB_FRONTEND_ROOT_URL : Public-facing URL of the CouchDB database
- COUCHDB_BACKEND_ROOT_URL : Backend URL for the CouchDB database
- IIP_ROOT_URL : Default URL of the IIP server
- VIEWER_ROOT_URL : Default URL of the Web Viewer
- SLIDEPROPS_ROOT_URL : Default URL of the Slide Properties Web Service
- SLIDEVIEWERDATA_LOCAL_PATH : Default path of the data for the Web Viewer (uploaded images, converted images, overlays, etc.)
Required symbolic links
In order to keep the size of the Docker Compose archive to a minimum, three folders have to be added separately to the folder structure. The easiest way that avoids modifying the `docker-compose.yml` is to make the following symbolic links:
- Create a link to the `images folder (containing the contextvision and pubmedcentral-dmli subfolders) in the following directory (relative to docker-compose.yml) : ./data/`
- Create a link to the `paradise-files folder (containing the lucene and indices folders amongst others) in the following directory (relative to docker-compose.yml) : ./data/`
- Create a link to the `slideviewerdata folder (containing the converted and uploaded folders amongst others) in the following directory (relative to docker-compose.yml) : ./data/`
Make sure there are appropriate read/write rights on these directories.
Running the platform
To create/start/restart all containers (in background mode), type the following command in the terminal from the folder containing the docker-compose.yml file:
docker-compose up -d
To stop the containers, type:
docker-compose stop
To remove all the containers (clean-up), type:
docker-compose down
Accessing the Web Viewer
Wait for 1-2 minutes, then access your browser at `http://localhost` to access the Web Viewer.
You can then log in with one of the following default user accounts defined in the `docker-entrypoint.sh file in the desuto-couchdb` directory:
- User : `user, Password : userpass` (Read-only access)
- User : `pathologist1, Password : pathologistpass`
- User : `pathologist2, Password : pathologistpass`