Using CWL Viewer
The dev instance at http://view.commonwl.org:8082/ corresponds to the current
master branch, and is updated every 6 minutes to run the latest commonworkflowlanguage/cwlviewer docker image. Note that this instance is NOT secured and might break at any time.
If you are a developer, or you want to use the CWL Viewer in a closed environment, then you can run your own instance.
Recommended - Running with Docker
To start CWLViewer exposed on port
To stop and remove:
If you change the source code, then use this
version: '3.2' services: spring: build: .
See the docker-compose.yml file for details.
If you have modified the source code, then you may want to build the docker image locally first:
docker build -t commonworkflowlanguage/cwlviewer .
Running without Docker
You will need to have MongoDB running,
by default on
If you are running from the command line, you can override this by supplying
system properties like
Apache Jena Fuseki (or alternative SPARQL server)
You will also need to have a SPARQL server such as Apache Jena Fuseki running,
by default on
Compiling and Running
Spring Boot uses an embedded HTTP server. The Spring Boot Maven plugin includes a run goal which can be used to quickly compile and run it:
$ mvn spring-boot:run
Alternatively, you can run the application from your IDE as a simple Java application by importing the Maven project.
You need to install Graphviz for all unit tests to pass.
You can create an executable JAR file by using:
mvn clean install
java -jar target/cwlviewer*.jar
(The exact filename will vary per version)
Once CWL Viewer is running, you should see log output somewhat like:
()..) s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) org.researchobject.CwlViewerApplication : Started CwlViewerApplication in 28.604 seconds
Now check out http://localhost:8080/ to access CWL Viewer.
There are a variety of configuration options detailed in the application configuration file which can be adjusted.
When deploying with docker, these can be overriden externally by creating/modifying
docker-compose.override.yml as follows:
version: '3.2' services: spring: environment: applicationName: Common Workflow Language Viewer applicationURL: https://view.commonwl.org cacheDays: 1
The properties can alternatively be provided as system properties on the
command line, e.g.
-DcacheDays=1 or via a variety of other methods supported by Spring Boot
While you can perform backup of the Docker volumes, for larger upgrades of CWL Viewer it is recommended instead to do a JSON dump and re-load, which will force CWL Viewer to fetch and parse again.
dump.sh can be used for regular backups, it will store the full
output of /workflows as a timestamped gzip-compressed JSON file:
$ ./dump.sh https://view.commonwl.org/ /var/backups/cwl /var/backups/cwl/2018-06-06T135133+0000.json.gz
load.py (requires Python 3) can be used to restore from such JSON dumps:
./load.py /var/backups/cwl/2018-06-06T135133+0000.json.gz https://view.commonwl.org/
The optional parameter
--no-commits can be added to skip those entries that
look like a commit ID. Note that this might break previous permalinks.
Developers and contributors include:
- Mark Robinson http://orcid.org/0000-0002-8184-7507
- Stian Soiland-Reyes http://orcid.org/0000-0001-9842-9718
- Michael Crusoe http://orcid.org/0000-0002-2961-9670
- Carole Goble http://orcid.org/0000-0003-1219-2137
- Charles Overbeck https://github.com/coverbeck
- Finn Bacall http://orcid.org/0000-0002-0048-3300