Nextflow Tower is an open source monitoring and management platform for Nextflow workflows developed by Seqera Labs.
Availability
A free-to-use public Tower service is available at tower.nf.
The community version of Tower is available from this repository. It can be deployed in a user's own environment and has features for single users to monitor their Nextflow pipelines, deployed anywhere.
The fully-featured enterprise version of Tower is available from Seqera Labs. It can be deployed in any on-premise or cloud environment and includes advanced workflow management, resource optimization, and enterprise-grade support. To learn more, please visit Seqera Labs.
Requirements
- Java 8
- Docker engine
Build the environment
make build
Run locally
make run
See docker-compose.yml
file for details.
Backend settings
Tower backend settings can be provided in either:
application.yml
in the backend class-pathtower.yml
in the launching directory
A minimal config requires the settings for the SMTP server, using the following variables:
TOWER_SMTP_HOST
: The SMTP server host name e.g.email-smtp.eu-west-1.amazonaws.com
.TOWER_SMTP_PORT
: The SMTP server port number e.g.587
.TOWER_SMTP_USER
: The SMTP user name.TOWER_SMTP_PASSWORD
: The SMTP user password.
Basic use case
Navigate to GUI in http://localhost:8000
and follow the instructions.
Development
Backend execution
Define the following env variables:
TOWER_SMTP_USER=<smtp user name>
TOWER_SMTP_PASSWORD=<smpt password>
See tower-backend/src/main/resources/application.yml
for further config details.
Launch the backend with the command:
./gradlew tower-backend:run --continuous
Frontend execution
cd tower-web
npm install
npm run livedev
Database
Tower is designed to be database agnostic and can use most popular SQL database servers, such as MySql, Postgres, Oracle and many other.
By default it uses H2, an embedded database meant to be used for evaluation purpose only.
Environment variables:
TOWER_APP_NAME
: Application name.TOWER_SERVER_URL
: Server URL e.g.https://tower.nf
.TOWER_CONTACT_EMAIL
: Sysadmin email contact e.g.[email protected]
.TOWER_DB_CREATE
: DB creation policy e.g.none
.TOWER_DB_URL
: Database JDBC connection URL e.g.jdbc:mysql://localhost:3307/tower
.TOWER_DB_DRIVER
: Database JDBC driver class name e.g.com.mysql.cj.jdbc.Driver
.TOWER_DB_DIALECT
: Database SQL Hibernate dialectorg.hibernate.dialect.MySQL55Dialect
.TOWER_DB_USER
: Database user name.TOWER_DB_PASSWORD
: Database user password.TOWER_SMTP_HOST
: SMTP server host name.TOWER_SMTP_PORT
: SMTP server port e.g.587
.TOWER_SMTP_AUTH
: SMTP server authentication egtrue
TOWER_SMTP_USER
: SMTP server user name.TOWER_SMTP_PASSWORD
: SMTP server user password.
Support
- For common problems, doubts and feedback please use the Gitter community channel or the GitHub issues page.
- This source code is distributed as it is for community adoption.
- Distribution packages, deployment scripts, maintenance updates, migration scripts and custom integrations are available to customers of Seqera Labs.