TOWER_SERVER_URL=http://localhost:8000
TOWER_CONTACT_EMAIL=admin@your-org.com
TOWER_JWT_SECRET=<Replace This With A Secret String containing at least 35 characters>
TOWER_CRYPTO_SECRETKEY=<Replace This With Another Secret String>
TOWER_LICENSE=<YOUR TOWER LICENSE KEY>
# Compute environment settingsTOWER_ENABLE_PLATFORMS=awsbatch-platform,azbatch-platform,gls-platform,k8s-platform,slurm-platform
# DB settingsTOWER_DB_URL=jdbc:mysql://db:3306/tower
TOWER_DB_DRIVER=org.mariadb.jdbc.Driver
TOWER_DB_DIALECT=io.seqera.util.MySQL55DialectCollateBin
TOWER_DB_USER=tower
TOWER_DB_PASSWORD=tower
FLYWAY_LOCATIONS=classpath:db-schema/mysql
# SMTP settings TOWER_SMTP_HOST=mail
TOWER_SMTP_PORT=587TOWER_SMTP_USER=foo
TOWER_SMTP_PASSWORD=foo
# Configure a local SMTP server# DO NOT USE IN PRODUCTION ENVIRONMENT# # Replace these settings with a SMTP server # provided by your cloud vendor# The mail scope is used for providing config to the underlying Micronaut frameworkmail:from:"${TOWER_CONTACT_EMAIL}"smtp:host:${TOWER_SMTP_HOST}port:${TOWER_SMTP_PORT}user:${TOWER_SMTP_USER}password:${TOWER_SMTP_PASSWORD}# `auth` and `starttls` should be enabled# with a production SMTP hostauth:falsestarttls:enable:falserequired:false# The tower scope is used for providing config for your Tower Enterprise installationtower:auth:# Tower instance-wide configuration for authentication. For further information, see https://install.tower.nf/latest/configuration/authentication/google:allow-list:-"*@org.xyz"oidc:allow-list:-"*@org.xyz"trustedEmails:-'*@org.xyz'-'named_user@org.xyz'scm:# Tower instance-wide configuration for SCM provider. For further information, see https://install.tower.nf/latest/configuration/git_integration/providers:github:user:<YOUR GITHUB USER NAME>password:<YOUR GITHUB ACCESS TOKEN OR PASSWORD>gitlab:user:<YOUR GITLAB USER NAME>password:<YOUR GITLAB PASSWORD>token:<YOUR GITLAB TOKEN>bitbucket:user:<YOUR BITBUCKET USER NAME>password:<YOUR BITBUCKET TOKEN OR PASSWORD>
version:"3"services:db:image:mysql:5.6networks:-backendexpose:-3306environment:MYSQL_ALLOW_EMPTY_PASSWORD:"yes"MYSQL_USER:towerMYSQL_PASSWORD:towerMYSQL_DATABASE:towerrestart:always# enable this snippet to store the Mysql data in the host volume# volumes:# - $HOME/.tower/db/mysql:/var/lib/mysqlredis:image:public.ecr.aws/seqera-labs/redis:5.0.8networks:-backendexpose:-6379command:--appendonly yesrestart:always# enable this snippet to store the Redis data in the host volume# volumes:# - $HOME/.tower/db/redis:/datacron:image:${REPOSITORY_URL}/backend:${TAG}command:-c '/wait-for-it.sh db:3306 -t 60; /migrate-db.sh; /tower.sh'networks:-frontend-backendvolumes:-$PWD/tower.yml:/tower.ymlenv_file:-tower.envenvironment:-MICRONAUT_ENVIRONMENTS=prod,redis,cronrestart:alwaysdepends_on:-db-redisbackend:image:${REPOSITORY_URL}/backend:${TAG}command:-c '/wait-for-it.sh db:3306 -t 60; /tower.sh'networks:-frontend-backendexpose:-8080volumes:-$PWD/tower.yml:/tower.ymlenv_file:-tower.envenvironment:-MICRONAUT_ENVIRONMENTS=prod,redis,harestart:alwaysdepends_on:-db-redis-cronfrontend:image:${REPOSITORY_URL}/frontend:${TAG}networks:-frontendports:-8000:80restart:alwaysdepends_on:-backendnetworks:frontend:{}backend:{}
This script simply defines the repository URL and tag of the Tower container images. Refer to the corresponding Prerequisites page for instructions on how to authenticate Docker to pull these images.
Deploy Tower and wait for it to initialize (takes a few minutes):
To make sure that Tower is properly configured, please follow these steps:
Login to Tower.
Create an organization.
Create a workspace within that organization.
Create a new Compute Environment. Refer to Compute Environments for detailed instructions.
Select Quick Launch from the Launchpad tab in your workspace.
Enter the repository URL for the nf-core/rnaseq pipeline (https://github.com/nf-core/rnaseq).
In the Config profiles dropdown, select the test profile.
In the Pipeline parameters textarea, change the output directory to a sensible location based on your Compute Environment:
12345
# save to S3 bucketoutdir:s3://<your-bucket>/results# save to scratch directory (Kubernetes)outdir:/scratch/results
Select Launch.
You'll be transitioned to the Runs tab for the workflow. After a few minutes, you'll see the progress logs in the Execution log tab for that workflow.
Tip
Once you've made sure that Tower is configured correctly and you can launch workflows, you can run docker-compose up -d to deploy Tower as a background process, so that you can disconnect from the VM instance.