Tower configuration#
The configuration of your Tower instance can be controlled using various environment variables specified in the tower.env and tower.yml files. Note that a number of core Tower configuration values must be specified using environment variables in tower.env
.
In the tower.yml file, configuration options are objects nested within the tower
object. This is formatted as follows:
1 2 3 4 5 6 7 |
|
The following parameters control the Tower configuration and deployment:
Generic options#
Specify general Tower configuration values in your environment variables. The boolean value to enable user workspaces can also be specified in your tower.yml file.
tower.env
- `TOWER_SERVER_URL`: Server URL e.g. `https://tower.your-company.com` (**required**). - `TOWER_CONTACT_EMAIL`: Sysadmin email contact e.g. `tower@your-company.com` (**required**). - `TOWER_LICENSE`: Your Tower license key. If you don't have a license key, contact [Seqera sales team](mailto:sales@seqera.io) (**required**). - `TOWER_APP_NAME`: Application name (default: `Tower`). - `TOWER_CONFIG_FILE`: Custom path for the `tower.yml` file. - `TOWER_LANDING_URL`: Customize the landing page for the application (requires Tower 21.10.1 or later). - `TOWER_CRON_SERVER_PORT`: Define the HTTP port usd by the Tower cron service (default: `8080`, requires Tower 21.06.1 or later). - `TOWER_USER_WORKSPACE_ENABLED` : Enable or disable the showing of the user private workspace context. (default: `true`, requires Tower 22.1.0 or later).tower.yml
1 2 3 |
|
Tower and Redis Databases#
For further information, please refer to Tower and Redis Databases.
Note
As of Tower version 22.3, we officially support Redis version 6. Follow your cloud provider specifications to upgrade your instance.
TOWER_DB_URL
: Database JDBC connection URL e.g.jdbc:mysql://localhost:3307/tower
(required).TOWER_DB_USER
: Database user name (required).TOWER_DB_PASSWORD
: Database user password (required).TOWER_DB_DRIVER
: Database JDBC driver class name (default:org.mariadb.jdbc.Driver
).TOWER_DB_DIALECT
: Database SQL Hibernate dialect (default:io.seqera.util.MySQL55DialectCollateBin
).TOWER_DB_MIN_POOL_SIZE
: Database min connections pool size e.g. 5 (default: 5).TOWER_DB_MAX_POOL_SIZE
: Database max connections pool size e.g. 20 (default: 10).TOWER_DB_MAX_LIFETIME
: Database max lifespan of connections in milliseconds (default: 1800000)TOWER_REDIS_URL
: Custom Redis instance connection URL (default:redis://redis:6379
, requires Tower 21.06.1 or later).TOWER_REDIS_PASSWORD
: Custom Redis password to connect to Redis instance above.
Mail Server#
For further information, please refer to Mail Server.
tower.env
- `TOWER_SMTP_HOST`: SMTP server host name e.g. `email-smtp.eu-west-1.amazonaws.com` (**required**) - `TOWER_SMTP_USER`: SMTP server username (**required**) - `TOWER_SMTP_PASSWORD`: SMTP server user password (**required**) - `TOWER_SMTP_PORT`: SMTP server port (default: `587`) - `TOWER_SMTP_AUTH`: SMTP server authentication (default: `true`)tower.yml
```yaml mail: smtp: host: "your.smtphost.com" # SMTP server host name (required) user: "your_smtp_user" # SMTP server username password: "your_smtp_password" # SMTP server user password port: "587" # SMTP server port (default: 587) auth: "true" # SMTP server authentication (default: true) ```1 |
|
Cryptographic options#
TOWER_JWT_SECRET
: Secret used to generate the login JWT token. Use a long random string (35 characters or more) (required).TOWER_CRYPTO_SECRETKEY
: Secret key used to encrypt user credentials. Use a long random string (required).
Warning
The TOWER_CRYPTO_SECRETKEY
should not be modified or altered across Tower starts, otherwise the application won't be able to decrypt the corresponding data. Use different keys for independent installations (e.g. test and production). Make sure to store a copy in a safe location.
Compute environments#
For further information, please refer to Compute Environments.
TOWER_ENABLE_PLATFORMS
: Comma separate list of execution backends to be enabled (required).MICRONAUT_ENVIRONMENTS
: Enable specific configuration profile for the Micronaut backend service (required).TOWER_FORGE_PREFIX
: Override the defaultTowerForge
prefix appended to AWS resources created by Tower Forge with a custom value.
Nextflow launch container#
TOWER_LAUNCH_CONTAINER
: Container image to run Nextflow execution (requires Tower 20.10.2 or later)
Tower API#
For further information, please refer Tower API page.
TOWER_ENABLE_OPENAPI
: Settrue
to enable OpenAPI documentation endpoint.
Admin panel#
Note
This feature is available in Tower 21.10.3, 21.12.1, and 22.1.0 (or later).
To enable access to the application admin panel for specific users i.e. root users
, add the TOWER_ROOT_USERS
variable to your tower.env
file (or root-users
to your tower.yml
). You can specify the user email IDs, separated by commas ,
as value for this variable. For example:
tower.env
1 |
|
tower.yml
1 2 3 |
|
Custom navigation menu#
To modify the Tower top navigation menu and add custom menu items, add a configuration snippet similar the one shown below in the tower.yml configuration file:
1 2 3 4 5 6 7 |
|
Logging#
To customize the log detail pattern displayed when using STDOUT
, use the TOWER_LOG_PATTERN
environment variable to specify a pattern in the Logback pattern layout encoding syntax. See here for a reference of the full Logback pattern syntax.
1 |
|
To change the output format of Tower logs, the TOWER_LOG_APPENDER_TYPE
variable can be used. The available logging formats are STDOUT
(default) and JSON
.
1 |
|