Skip to content
Nextflow Tower system
Groovy HTML CSS TypeScript JavaScript Java Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Remove docker push Jul 15, 2019
.github/workflows Avoid creation of fat jar #180 Dec 20, 2019
tower-backend Show task details as modal dialog Feb 19, 2020
tower-web Show task details as modal dialog Feb 19, 2020
.gitignore Add tower-admin subproject Aug 3, 2019
CHANGELOG.txt Add CLA document Sep 21, 2019 Update DB and SMTP config Jul 27, 2019 Update git readme Nov 26, 2019
LICENSE.txt Add license headers Jun 16, 2019
Makefile Fix docker compose build Feb 17, 2020 Update Jan 30, 2020
gradlew Initial commit Apr 23, 2019
gradlew.bat Initial commit Apr 23, 2019 Add GitHub build file Oct 2, 2019
settings.gradle Rename watchtower-gui to tower-web Jul 11, 2019

Nextflow Tower logo

Chat on Gitter

Nextflow Tower is an open source monitoring and managing platform for Nextflow workflows. Learn more at

This repository contains the open-source community version. Distribution packages, deployment scripts, maintenance updates, migration scripts and custom integrations are available to customers of Seqera Labs

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-path
  • tower.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.
  • 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.


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


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.
  • TOWER_CONTACT_EMAIL: Sysadmin email contact e.g.
  • 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 dialect org.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 eg true
  • TOWER_SMTP_USER: SMTP server user name.
  • TOWER_SMTP_PASSWORD: SMTP server user password.



Mozilla Public License v2.0

You can’t perform that action at this time.