JWS Online Docker Support¶
JWS Online comes with native Docker support. To run JWS Online from a Docker container a simple docker run is not sufficient due to JWS Online’s dependence on a PostgreSQL database. Therefore a Docker Compose script has been provided in order to make deployment as simple as possible. Create a file with the name docker-compose.yml in a new empty folder and paste the following content into it.
It is strongly advised that you alter the database password. Please refer to Environment Variables and the compose file reference for explanations of the different configuration parameters.
# JWS Online Docker Compose
#
# This is an example file with sane defaults. Nevertheless it is strongly recommended
# that you change the database password and adjust the persistent volume for Postgres according to
# the deployment configuration. Also you need to configure a SMTP server in order to be able
# to send mails from this JWS Online instance.
version: "2"
services:
jwsonline-db:
image: postgres
environment:
# database user name
- POSTGRES_USER=jwsonline
# database password
- POSTGRES_PASSWORD=database-pwd
# database name
- POSTGRES_DB=jwsonline
# data directory for postgres
# - PGDATA= # directory
volumes:
# register default PGDATA as volume
- ./pgsql:/var/lib/postgresql
expose:
- "5432"
jwsonline-django:
image: jwsonline/jwsonline:latest
ports:
- "80:8000"
depends_on:
- jwsonline-db
environment:
# database url. Path is name of the database
- DATABASE=pgsql://jwsonline:database-pwd@jwsonline-db:5432/jwsonline
# SMTP url. Use SMTPS as scheme to enable TLS
- SMTP=smtp://localhost
# enable or disable debug view
- DEBUG=False
# comma-separated list of allowed hosts. Default allows only access via localhost
- ALLOWED_HOSTS=*
# host where the Mathematica package is running. Required for simulations
- MATHEMATICA=https://jjj.bio.vu.nl
To run / stop / update the server execute:
docker-compose up
docker-compose down
docker-compose pull
Note: on the first run Docker will download the JWS Online image from the Docker Hub, if it does not find it locally. Also the very first start of PostgreSQL and JWS Online in Docker container may take a while, since both need to initially create data and databasestructures.
Building the JWS Online Docker image¶
To ease the build, tag, and push process, the fabric script was extended with a Docker goal. It automatically builds the image using the Dockerfile in the repository, tags the image (alos as latest) and pushes it to the Docker Hub. It is strongly recommended to use the fab script.
fab docker
Environment Variables¶
In order to provide an interface to different settings options, we have exposed some of the configurable parameters as environment variables. For an explanation of the available environment variables for postgres, please refer to the PostgeSQL DockerHub image
- DATABASE
URL to the PostgreSQL database, following the common URL scheme. The scheme is required to be pgsql.
pgsql://[db-user]:[db-password]@[db-host]:[db-port]/[db-name]
- SMTP
URL to configure the SMTP server used for sending account registration notices, password reset requests and error messages. The scheme is required to be smtp or smtps for TLS.
smtps://[smtp-user]:[smtp-password]@[smtp-host]:[smtp-port]
- DEBUG
- If set to true JWS Online will show detailed Django Error pages, instead of Whoops!.
- ALLOWED_HOSTS
- Comma separated list of hosts, to which this server will reply. A wildcard indicates, that the server will reply to requests to any hostname.
- MATHEMATICA
URL to the Mathematica instance, without trailing slash.
- MASYMOS_ENABLE
- If set to true this enables basic support for MaSyMoS as search engine for models. Please be aware, that this support is widely untested and unstable at the moment. As default MaSyMoS is disabled.
- MASYMOS_BASE_URL
- URL to a running MaSyMoS instance. Default is http://localhost:7474/morre
- LOCAL_URL
- URL to this JWS Online instance. This needs to be reachable from the MaSyMoS database to retrieve the public models and store them in the search index. Default is http://localhost:8000/
- WEBCAT_ENABLE
- Enables the ‘View in webCAT’ link in the Download dropdown menu for Simulations. (Only works for curated models)
- WEBCAT_URL
- URL to a webCAT instance, without trailing slash. Default is the SEMS webCAT instance http://webcat.sems.uni-rostock.de