Configuration overview
Nextflow Tower Enterprise is now Seqera Platform Enterprise. Existing configuration parameters, configuration files, and API endpoints that include Tower currently remain unchanged.
Set Seqera configuration values using environment variables, a tower.yml configuration file, or individual values stored in AWS Parameter Store. Sensitive values such as database passwords should be stored securely (e.g., as SecureString type parameters in AWS Parameter Store).
- Environment variables
- tower.yml
- AWS Parameter Store
Declare environment variables in a tower.env file. For example:
TOWER_CONTACT_EMAIL=hello@foo.com
TOWER_SMTP_HOST=your.smtphost.com
See the Environment variables option in each section below.
Declare YAML configuration values in a tower.yml file. For example:
mail:
from: "hello@foo.com"
smtp:
host: "your.smtphost.com"
See the tower.yml option in each section below. YAML configuration keys on this page are listed in "dot" notation, i.e., the SMTP host value in the snippet above is represented as mail.smtp.host in the tables that follow.
Don't declare duplicate keys in your tower.yml configuration file. Platform will only enforce the last instance of configuration keys that are defined more than once, for example:
# This block will not be enforced due to the duplicate `tower` key below
tower:
trustedEmails:
- user@example.com
# This block will be enforced because it's defined last
tower:
auth:
oidc:
- "*@foo.com"
AWS Parameter Store configuration is only supported for AWS deployments.
Create parameters in the AWS Parameter Store individually, using the format
/config/<application_name>/<cfg_path> : <cfg_value>. For example:
/config/tower-app/mail.smtp.user : <your_username>
/config/tower-app/mail.smtp.password : <your_password>
The default application name is tower-app. To deploy multiple instances from the same Seqera Enterprise account, set a custom application name for each instance with the micronaut.application.name value in your tower.yml configuration file.
Sensitive values (such as database passwords) should be SecureString type parameters. See AWS Parameter Store for detailed instructions.
Configuration values not supported in tower.yml or AWS Parameter Store
Due to the order of operations when deploying Seqera Enterprise, some configuration values can only be retrieved from environment variables (tower.env). The following configuration values are not supported for tower.yml or AWS Parameter Store configuration and must be set as environment variables:
- Environment variables
Environment variable | Description | Value |
|---|---|---|
| The user account to access your database. If you are using an external database, you must create this user manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The user password to access your database. If you are using an external database, you must create this password manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The URL to access your database. For installation in a new environment, this value must be set as an environment variable. See the 24.1 release notes for information about the DB URL format. | Example: |
| Application name. To run multiple instances of the same Seqera account, each instance must have a unique name, e.g., | Default: |
| Set | Default: |
| A comma-separated list of execution backends to enable. At least one is required. |
|
| Set to | Default: |
Basic configuration
Basic configuration options such as the Seqera instance server URL, application name, and license key.
- Environment variables
- tower.yml
- AWS Parameter Store
Environment variable | Description | Value |
|---|---|---|
| Your Seqera instance hostname, IP address, DNS name, or full reverse proxy path where the application is exposed. The | Default: |
| Your Seqera Enterprise license key (required). Contact us to obtain your license key. The key is base64-encoded by Seqera — paste this value exactly as received. |
|
| Application name. To run multiple instances of the same Seqera account, each instance must have a unique name, e.g., | Default: |
| Custom path for the |
|
| Custom landing page for the application (requires version 21.10.1 or later). This value doesn't change the |
|
| Define the HTTP port used by the Seqera backend service (requires version 25.3 or later). |
|
| Define the HTTP port used by the Seqera cron service (requires version 21.06.1 or later). |
|
| Grant users access to the application admin panel. |
|
| Your Seqera system administrator contact email. |
|
| Set to | Default: |
| Enable or disable user private workspaces (requires version 22.1.0 or later). | Default: |
YAML configuration keys in this table are listed in "dot" notation, i.e., a nested value:
...
mail:
smtp:
host: "your.smtphost.com"
...
is represented as mail.smtp.host.
tower.yml | Description | Value |
|---|---|---|
| Your Seqera instance hostname, IP address, DNS name, or full reverse proxy path where the application is exposed. The | Default: |
| Your Seqera Enterprise license key (required). Contact us to obtain your license key. The key is base64-encoded by Seqera — paste this value exactly as received. |
|
| Application name. To run multiple instances of the same Seqera account, each instance must have a unique name, e.g., | Default: |
| Custom landing page for the application (requires version 21.10.1 or later). This value doesn't change the |
|
| Define the HTTP port used by the Seqera cron service (requires version 21.06.1 or later). |
|
| Grant users access to the application admin panel. |
|
| Your Seqera system administrator contact email. |
|
| Set to | Default: |
| Enable or disable user private workspaces (requires version 22.1.0 or later). | Default: |
AWS Parameter Store configuration is only supported for AWS deployments.
Replace {prefix} in each configuration path with /config/<application_name>, where application_name is tower or your custom application name. See AWS Parameter Store.
AWS Parameter Store | Description | Value |
|---|---|---|
| Your Seqera instance hostname, IP address, DNS name, or full reverse proxy path where the application is exposed. The | Default: |
| Your Seqera Enterprise license key (required). Contact us to obtain your license key. The key is base64-encoded by Seqera — paste this value exactly as received. |
|
| Custom landing page for the application (requires version 21.10.1 or later). This value doesn't change the |
|
| Define the HTTP port used by the Seqera cron service (requires version 21.06.1 or later). |
|
| Grant users access to the application admin panel. |
|
| Your Seqera system administrator contact email. |
|
| Set to | Default: |
| Enable or disable user private workspaces (requires version 22.1.0 or later). | Default: |
Seqera and Redis databases
Configuration values that control Seqera's interaction with databases and Redis instances. TOWER_DB_USER, TOWER_DB_PASSWORD, and TOWER_DB_URL must be specified using environment variables during initial Seqera Enterprise deployment in a new environment. A new installation will fail if DB values are only defined in tower.yml or the AWS Parameter Store. Once the database has been created, these values can be added to tower.yml or AWS Parameter Store entries and removed from your environment variables.
Database version requirements:
From Seqera Enterprise version 23.4:
- MySQL 8 is the officially supported and tested database version.
- MySQL versions 5.6 and 5.7 are no longer supported.
From Seqera Enterprise version 24.2:
- Redis version 6.2 or greater is required.
- Redis version 7 is officially supported.
Follow your cloud provider specifications to upgrade your instance.
If you use a database other than the provided db container, you must create a user and database schema manually.
- MySQL DB schema creation
- MariaDB schema creation
CREATE DATABASE tower;
ALTER DATABASE tower CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'tower' IDENTIFIED BY <password>;
GRANT ALL PRIVILEGES ON tower.* TO tower@'%' ;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER on tower.* TO tower@'%';
Managed Redis services
Seqera supports managed Redis services such as Amazon ElastiCache, Azure Cache for Redis, or Google Memorystore.
When using a managed Redis service, you must specify the service IP address or DNS name for the TOWER_REDIS_URL as described in the following sections.
- AWS ElastiCache
- Azure Cache for Redis
- Google Memorystore
- Self-hosted Redis
- Use a single-node cluster, as multi-node clusters are not supported
- Use an instance with at least 6 GB capacity (cache.m4.large or greater)
- Specify your private ElastiCache instance in the Seqera environment variables:
TOWER_REDIS_URL=redis://<redis private IP>:6379
- Use a single-node cluster, as multi-node clusters are not supported
- Use an instance with at least 6 GB capacity (C3 or greater)
- Specify your private Azure Cache for Redis instance in the Seqera environment variables:
TOWER_REDIS_URL=redis://<redis private IP>:6379
- Use a single-node cluster, as multi-node clusters are not supported
- Use an instance with at least 6 GB capacity (M2 or greater)
- Specify your private Memorystore instance in the Seqera environment variables:
TOWER_REDIS_URL=redis://<redis private IP>:6379
If you run the Redis service as a container in your Docker or Kubernetes installation, specify the service name as part of the TOWER_REDIS_URL:
TOWER_REDIS_URL=redis://redis:6379
Database and Redis manual configuration
If the DB username and password variables are left empty when using Docker Compose, default tower database values are applied automatically. With Kubernetes and custom DB deployments, tower values are not pre-filled.
We recommend using managed cloud database services for production deployments.
- Environment variables
- tower.yml
- AWS Parameter Store
Environment variable | Description | Value |
|---|---|---|
| The user account to access your database. If you are using an external database, you must create this user manually. | Default: |
| The user password to access your database. If you are using an external database, you must create this password manually. | Default: |
| The URL to access your database. | Example: |
| Minimum database connection pool size. | Default: |
| Maximum database connection pool size. | Default: |
| Maximum lifespan of database connections, in milliseconds. | Default: |
| The URL to access your Seqera Redis instance. | Example: |
| The password of your Seqera Redis instance. |
TOWER_DB_USER, TOWER_DB_PASSWORD, and TOWER_DB_URL must be specified using environment variables during initial Seqera Enterprise deployment in a new environment.
YAML configuration keys in this table are listed in "dot" notation, i.e., a nested value:
...
mail:
smtp:
host: "your.smtphost.com"
...
is represented as mail.smtp.host.
tower.yml | Description | Value |
|---|---|---|
| The user account to access your database. If you are using an external database, you must create this user manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The user password to access your database. If you are using an external database, you must create this password manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The URL to access your database. For installation in a new environment, this value must be set as an environment variable. | Example: |
| Minimum database connection pool size. | Default: |
| Maximum database connection pool size. | Default: |
| Maximum lifespan of database connections, in milliseconds. | Default: |
| The URL to access your Seqera Redis instance. | Example: |
| The password of your Seqera Redis instance. |
AWS Parameter Store configuration is only supported for AWS deployments.
TOWER_DB_USER, TOWER_DB_PASSWORD, and TOWER_DB_URL must be specified using environment variables during initial Seqera Enterprise deployment in a new environment.
Replace {prefix} in each configuration path with /config/<application_name>, where application_name is tower or your custom application name. See AWS Parameter Store.
AWS Parameter Store | Description | Value |
|---|---|---|
| The user account to access your database. If you are using an external database, you must create this user manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The user password to access your database. If you are using an external database, you must create this password manually. For installation in a new environment, this value must be set as an environment variable. | Default: |
| The URL to access your database. For installation in a new environment, this value must be set as an environment variable. |
|
| Minimum database connection pool size. | Default: |
| Maximum database connection pool size. | Default: |
| Maximum lifespan of database connections, in milliseconds. | Default: |
| The URL to access your Seqera Redis instance. | Example: |
| The password of your Seqera Redis instance. |
Opt-in Seqera features
Configuration values that enable opt-in Seqera features per instance or workspace.
Core features
- Environment variables
Environment variable | Description | Value |
|---|---|---|
| Enable Seqera integration with Wave containers. | Default: |
| Define the Wave containers service endpoint URL. | Example: |
| Enable Seqera configuration value retrieval from AWS Parameter Store. | Default: |
| Use AWS Simple Email Service (SES) to send Seqera emails instead of SMTP. | Default: |
| Allow log and report files from Nextflow CLI runs ( | Default: |
| Disable the stepped launch form in the workspaces specified. Omit or set empty ( | Default: Enabled for all workspaces |
| Enable pipeline versioning in the workspaces specified. Accepts a comma-separated list of workspace IDs. | Default: Disabled for all workspaces |
Data features
Configuration values used by Seqera for Datasets, Data Explorer, Data Lineage, and Studios.
- Environment variables
- tower.yml
Environment variable | Description | Value |
|---|---|---|
| Enable Data Explorer in all workspaces. To mount data inside a Studio, you must enable Data Explorer. | Default: |
| Disable Data Explorer automatic cloud bucket retrieval per workspace. | Example: |
| Data Explorer cloud bucket cache duration. | Default: |
| The amount of time that elapses after an error, before a retry attempt is made. | Default: |
| The number of retries Data Explorer will attempt to fetch cloud buckets in the event of temporary errors. | Default: |
| The period of time that retry attempts will be made even when max retries has been exceeded. | Default: |
| Data Explorer download file size limit. Increasing this value may degrade performance. | Default: |
| Maximum and default number of items returned in a single page when listing datasets. | Default: |
| Maximum and default number of items returned in a single page when listing dataset versions. | Default: |
| The URL of the Studios connect proxy. The connect proxy is used internally by Seqera Platform. See Studios deployment. | Example: |
| The custom image repository for Wave containers. Ignored if custom image registry is not present. | Default: |
| The custom image name strategy for Wave containers. See the Wave documentation for available options. | Default: |
| The custom image registry for Wave containers, used as the destination for Studio images that are customized with a conda environment. When left null, defers to whatever Wave has configured as the default. | Default: null |
| An access token used to register new clients in Seqera Platform. Any alphanumeric value is allowed. See Studios deployment. Requires the OIDC provider to be configured. See Cryptographic options. |
|
| Add this variable and set it to | Default: null |
| The file path to a PEM certificate used to sign the OIDC tokens for the OpenID connect provider. See Studios deployment. | Example: |
| Add this variable to enable SSH connection functionality in Studios. Set to comma-separated workspace IDs to enable for specific workspaces, an empty string ("") to enable for all workspaces, or | Default: null |
| Enable SSH key management for Studios SSH connection functionality. | Default: false |
| Comma-separated list of supported SSH public key types for user SSH key registration. | Default: |
| SSH key fingerprint. This allows only SSH connections that have been authenticated with Seqera to connect to the server and is recommended for production environments. To generate the fingerprint, use | Example: |
| | Default: |
| | Example: |
| Control which workspaces have Studios enabled. Leave unset (default) to enable Studios in all workspaces, set to an empty string to disable Studios for all workspaces, or provide a comma-separated list of workspace IDs to enable Studios only in those workspaces. | Default: Enabled for all workspaces |
| Default lifespan in hours for Studios when no workspace-specific settings are configured. | Default: |
| Default privacy setting for Studios when no workspace-specific or Studio-specific settings are configured. Set to | Default: |
| Maximum and default number of items returned in a single page when listing Studios. | Default: |
| The manifest URL used for feature version compatibility checks of Studio clients. | Example: |
| Control which workspaces have the Studio iframe in Connect enabled. Set to | Default: null |
| Initial delay before the job that checks Wave build status for Studios in building status runs for the first time. | Default: |
| Fixed rate at which Wave build status is checked for Studios in building status. | Default: |
| Comma-separated list of registry URLs that are not allowed as build destinations for dockerfile-based Studio images. Registries in this list won't be used for pushing dockerfile builds. | Default: |
| Control which workspaces have Studio startup metrics collection enabled. Set to | Default: null |
| Number of days to retain Studio startup metrics in the database before automatic deletion. Metrics older than this threshold are deleted by a daily scheduled job. | Default: |
| Enable date lineage. Set to | Default: |
tower.yml | Description | Value |
|---|---|---|
| You can set the downloadable file size limit for Data Explorer and workflow reports. Increasing this value may degrade Platform performance. The supported suffixes are | Default: |
| You can set the maximum number of items listed in Data Explorer. Increasing this value may degrade Platform performance. | Default: |
Cryptographic options
Configuration values used by Seqera to encrypt your data.
Do not modify your crypto secret key between starts. Changing this value will prevent the decryption of existing data.
- Environment variables
- tower.yml
- AWS Parameter Store
Environment variable | Description | Value |
|---|---|---|
| The secret key used to encrypt credentials and secrets (required). | Random string of alphanumeric characters. |
| The file path to a PEM certificate used to sign tokens for Seqera Platform's built-in OIDC provider. This is required for Studios and for Google Cloud Batch Workload Identity Federation. | Example: |
| The secret used to generate the login JWT token (required). | Random string of 35 characters or more. |
| Enable ( | Default: |
| Used to store the value of the key used to encrypt existing credentials and secrets ( | Your existing |
| The number of records to extract in chunks until all secrets and credentials are processed. Requires | Default: |
YAML configuration keys in this table are listed in "dot" notation, i.e., a nested value:
...
mail:
smtp:
host: "your.smtphost.com"
...
is represented as mail.smtp.host.
tower.yml | Description | Value |
|---|---|---|
| The secret key used to encrypt user credentials (required). | Random string of alphanumeric characters. |
| The secret used to generate the login JWT token (required). | Random string of 35 characters or more. |
| The secret used to generate the login refresh token (required). | Random string of 35 characters or more. |
| Enable ( | Default: |
| Used to store the value of the key used to encrypt existing credentials and secrets ( | Your existing |
| The number of records to extract in chunks until all secrets and credentials are processed. Requires | Default: |
AWS Parameter Store configuration is only supported for AWS deployments.
Replace {prefix} in each configuration path with /config/<application_name>, where application_name is tower or your custom application name. See AWS Parameter Store.
AWS Parameter Store | Description | Value |
|---|---|---|
| The secret key used to encrypt user credentials (required). | Random string of alphanumeric characters. |
| The secret used to generate the login JWT token (required). | Random string of 35 characters or more. |
| The secret used to generate the login refresh token (required). | Random string of 35 characters or more. |
| Enable ( | Default: |
| Used to store the value of the key used to encrypt existing credentials and secrets ( | Your existing |
| The number of records to extract in chunks until all secrets and credentials are processed. Requires | Default: |
Secret key rotation
Rotate the key used to encrypt the credentials and secrets stored in your Platform database. Encryption key rotation is a security best practice and should be performed at an interval specified by your organization's security requirements, or in the event of a suspected compromise of your secret key.
Enable rotation by setting the following configuration values:
- Environment variables
- tower.yml
- AWS Parameter Store
TOWER_SECRET_ROTATION_ENABLED=trueTOWER_SECRET_ROTATION_PREVIOUS_KEY=<EXISTING_TOWER_CRYPTO_SECRET_KEY_VALUE>TOWER_CRYPTO_SECRETKEY=<NEW_SECRET_KEY_VALUE>
tower.secret.rotation.enabled: truetower.secret.rotation.previous-key: <EXISTING_tower.crypto.secretKey_VALUE>tower.crypto.secretKey: <NEW_SECRET_KEY_VALUE>
/tower/secret-rotation/enabled: true/tower/secret-rotation/previous-key: <EXISTING_/tower/crypto/secretKey_VALUE>/tower/crypto/secretKey: <NEW_SECRET_KEY_VALUE>
With rotation enabled and the previous and new key values set, secret key rotation will run as part of the Platform cron service during application startup. Normal application startup is not affected by this process, and Platform is fully operational while the credentials and secrets in your database are being encrypted using your new secret key.
- To prevent data loss, perform a backup of your Platform database and securely back up your current crypto secret key before enabling and performing key rotation.
- All backend pods or containers for your Enterprise deployment must contain the same previous and new secret key values in their Platform config and must be in a ready/running state before starting the Platform cron service.
The Admin panel Encryption tab displays the status of completed or errored encryption tasks.
Compute environments
Configuration values to enable computing platforms and customize Batch Forge resource naming.
- Environment variables
Environment variable | Description | Value |
|---|---|---|
| Comma-separated list of the execution backends to enable. At least one is required. |
|
| Configuration values to control the behavior of the Seqera | Backend configuration: |
| Override the default | Default: |
| Enable legacy role-based AWS credentials. When true, users provide an IAM role ARN only when creating AWS credentials. Access keys, secret keys, and External ID are not used. | Default: |
Compute environment cleanup
A scheduled cron job can transition compute environments that are stuck in CREATING or DELETING states into terminal states (ERRORED or INVALID). The cleanup job is disabled by default.
- Environment variables
Environment variable | Description | Value |
|---|---|---|
| Enable the compute environment cleanup cron job, which transitions compute environments stuck in | Default: |
| Stagger between consecutive batch start times. Batch i is scheduled to start i × time-offset seconds after the job tick. | Default: |
| Interval at which the compute environment cleanup cron job runs. | Default: |
| Number of organizations processed per batch in the compute environment cleanup job. | Default: |
| Delay between consecutive batch tasks in the compute environment cleanup job. | Default: |
| Time after which a compute environment stuck in the | Default: |
| Time after which a compute environment stuck in the | Default: |
Git integration
Seqera Platform has built-in support for public and private Git repositories. Create Git provider credentials to allow Seqera to interact with the following services:
Credentials configured in your SCM providers list override Git credentials in your (organization or personal) workspace.
Public Git repositories can be accessed without authentication, but are often subject to throttling. We recommend always adding Git credentials to your Seqera workspace, regardless of the repository type you use.
- Environment variables
- tower.yml
- AWS Parameter Store
Credentials and other secrets must not be hard-coded in environment variables in production environments. Credentials added using the application UI are SHA256-encrypted before secure storage and not exposed by any Seqera API.
Environment variable | Description |
|---|---|
| Your GitHub username. |
| Your GitHub (classic or fine-grained) access token. |
| Your GitLab username. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your BitBucket username. |
| Your BitBucket App password. |
| Your Gitea username. |
| Your Gitea token. |
| Your Azure DevOps repository username. |
| Your Azure DevOps repository personal access token. |
Credentials and other secrets must not be stored in plain text in production environments. Credentials added using the application UI are SHA256-encrypted before secure storage and not exposed by any Seqera API.
YAML configuration keys in this table are listed in "dot" notation, i.e., a nested value:
...
mail:
smtp:
host: "your.smtphost.com"
...
is represented as mail.smtp.host.
tower.yml | Description |
|---|---|
| Your GitHub username. |
| Your GitHub (classic or fine-grained) access token. |
| Your GitLab username. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your BitBucket username. |
| Your BitBucket App password. |
| Your Gitea username. |
| Your Gitea token. |
| Your Azure DevOps repository username. |
| Your Azure DevOps repository personal access token. |
AWS Parameter Store configuration is only supported for AWS deployments.
Replace {prefix} in each configuration path with /config/<application_name>, where application_name is tower or your custom application name. See AWS Parameter Store.
AWS Parameter Store | Description |
|---|---|
| Your GitHub username. |
| Your GitHub (classic or fine-grained) access token. |
| Your GitLab username. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your GitLab (Personal, Group, or Project) access token. |
| Your BitBucket username. |
| Your BitBucket App password. |
| Your Gitea username. |
| Your Gitea token. |
| Your Azure DevOps repository username. |
| Your Azure DevOps repository personal access token. |
Local repositories
Seqera Enterprise can connect to workflows stored in local Git repositories. To do so, volume mount your local repository folder in your Seqera backend container. Then, update your tower.yml:
tower:
pipeline:
allow-local-repos:
- /path/to/repo
Mail server
Configure values for SMTP email service integration. Production SMTP hosts must use a TLS-protected connection. See SSL/TLS.
AWS deployments also support Amazon Simple Email Service (SES).
SMTP service integration
To use an SMTP gateway for mail service, set SMTP user and password values to null.
Your organization's email security policy may prevent the TOWER_CONTACT_EMAIL address from receiving Seqera emails. If this occurs after successful SMTP configuration, you may need to configure spf, dkim, and dmarc records for your domain. Contact your IT support staff for further assistance.
- Environment variables
- tower.yml
- AWS Parameter Store
Environment variable | Description | Value |
|---|---|---|
| Your email service user. | Example: |
| Your email service password. | |
| Your email service host name, excluding protocol. | Example: |
| Your email service port. Most cloud services block port 25 by default. | Default: |
| The email address used to send Seqera emails. | Example: |
| Use SMTP authentication when calling your email service endpoint. | Default: |
| Switch the connection to a TLS-protected connection before issuing login commands. Must be | Recommended: |
| Require the use of the STARTTLS command. Must be | Recommended: |
| Use AWS SES (Simple Email Service) to use Seqera emails, instead of SMTP. | Default: |
YAML configuration keys in this table are listed in "dot" notation, i.e., a nested value:
...
mail:
smtp:
host: "your.smtphost.com"
...
is represented as mail.smtp.host.
tower.yml | Description | Value |
|---|---|---|
| Your email service user. | Example: |
| Your email service password. | |
| Your email service host name, excluding protocol. | Example: |
| Your email service port. Most cloud services block port 25 by default. | Default: |
| The email address used to send Seqera emails. | Example: |
| Use SMTP authentication when calling your email service endpoint. | Default: |
| Switch the connection to a TLS-protected connection before issuing login commands. Must be | Recommended: |
| Require the use of the STARTTLS command. Must be | Recommended: |
AWS Parameter Store configuration is only supported for AWS deployments.
Replace {prefix} in each configuration path with /config/<application_name>, where application_name is tower or your custom application name. See AWS Parameter Store.
AWS Parameter Store | Description | Value |
|---|---|---|
| Your email service user. | Example: |
| Your email service password. | |
| Your email service host name, excluding protocol. | Example: |
| Your email service port. Most cloud services block port 25 by default. | Default: |
| The email address used to send Seqera emails. | Example: |
| Use SMTP authentication when calling your email service endpoint. | Default: |
| Switch the connection to a TLS-protected connection before issuing login commands. Must be | Recommended: |
| Require the use of the STARTTLS command. Must be | Recommended: |
AWS SES integration
In AWS deployments, you can use AWS Simple Email Service (SES) instead of traditional SMTP for sending Seqera platform emails.
Simple Email Service (SES) is only supported in Seqera deployments on AWS.
To configure AWS SES as your Seqera email service:
- Set
TOWER_ENABLE_AWS_SES=truein your environment variables. - Specify the email address used to send Seqera emails with one of the following:
- the
TOWER_CONTACT_EMAILenvironment variable - a
mail.fromentry intower.yml - a
/config/<application_name>/mail/fromAWS Parameter Store entry
- the
- The AWS SES service must run in the same region as your Seqera instance.
- The Seqera IAM role must include the
ses:SendRawEmailpermission.
Nextflow launch container
Do not replace the Seqera-provided default image unless absolutely necessary.
- Environment variables
| Environment Variable | Description | Value |
|---|---|---|
TOWER_LAUNCH_CONTAINER | The container image to run the Nextflow execution. This setting overrides the launch container selection for all organizations and workspaces in your account. | Example: quay.io/seqeralabs/nf-launcher:j17-23.04.3 |
Seqera API
Enable the API endpoints to host the Seqera Enterprise OpenAPI specification and use the tw CLI. Set custom API rate limits and timeouts.
To configure API rate limit environment variables, you must add ratelim to the MICRONAUT_ENVIRONMENTS. Without ratelim being set, the rate limit configuration variables below are ignored.
- Environment variables
| Environment variable | Description | Value |
|---|---|---|
TOWER_ENABLE_OPENAPI | Enable the OpenAPI documentation endpoint, e.g., cloud.seqera.io/openapi/index.html. | Default: false |
TOWER_RATELIMIT_PERIOD | Specify the maximum number of HTTP requests that can be made during the TOWER_RATELIMIT_REFRESH period. | Default: 20 |
TOWER_RATELIMIT_REFRESH | API rate limit refresh period. | Default: 1s |
TOWER_RATELIMIT_TIMEOUT | The waiting period before rejecting requests over the TOWER_RATELIMIT_PERIOD limit during the refresh period. | Default: 500ms |
Custom navigation menu
Modify your Seqera instance's navigation menu options.
- tower.yml
tower:
navbar:
menus:
- label: "My Community"
url: "https://host.com/foo"
- label: "My Pipelines"
url: "https://other.com/bar"
Logging
Logging-related configuration values to aid troubleshooting. See Audit logs for more information on application event logging. In 26.1, use TOWER_AUDIT_LOG_V2_WRITE_MODE to control whether audit events are written to the v2 schema, or to both the legacy and the v2 schema. Use TOWER_CRON_AUDIT_LOG_CLEAN_UP_ENABLED to disable automatic audit log deletion, and restart Platform after changing audit log settings.
- Environment variables
- tower.yml
Environment variable | Description | Value |
|---|---|---|
| Set | Default: |
| Application event audit log retention period. When cleanup is enabled, audit log records older than this period are celeted from both v1 and v2 audit log tables. Value includes units ( | |
| Determines which audit log tables receive new write operations. Use | Options: |
| Maximum number of audit log v2 records allowed in a single CSV export. | Default: |
| The output format of Platform logs. | Options: |
| Platform backend logging detail level. | Options: |
| Platform authentication logging detail level. | Options: |
| Base directory to store Platform logs. | Default: |
| The logging format emitted to STDOUT. See here for a reference of the full logback pattern syntax. |
|
| The maximum number of backend log files retained by the system. | Default: |
| The maximum file size of the Platform backend log file. When this limit is reached, a new log file is created. | Default: |
| Tower Agent logging detail level. | Options: |
| Tower Agent polling interval. | Example: |
| Event logging detail level for the SSH connection library used by Seqera. | Options: |
| Set | Default: |
Set the logging detail level for various Seqera services. Logs for particular services may be requested by support to assist with troubleshooting an issue. Set the logging configuration parameter in your Seqera YAML configuration before attempting to reproduce your issue. The example below sets the detail level for application and database logging:
logger is a root-level object in the tower.yml configuration file, i.e., it is not nested under tower.
logger:
levels:
org.hibernate.SQL: DEBUG
org.hibernate.type: TRACE
io.seqera.tower: TRACE
Audit log v2
Configuration values for the v2 audit log subsystem and the audit log cleanup cron job. The v2 audit log adds support for pre/post change state capture and CSV export limits, and runs alongside the existing v1 table when TOWER_AUDIT_LOG_V2_WRITE_MODE is set to dual.
- Environment variables
Environment variable | Description | Value |
|---|---|---|
| Determine which audit log tables receive write operations. Accepted values are | Default: |
| Maximum number of records allowed in a single audit log CSV export. | Default: |
| Enable capturing pre- and post-change state images for audit log target resources in air-gapped Enterprise deployments. In deployments that are not air-gapped this is enabled through License Manager. | Default: |
| Enable the audit log cleanup cron job. | Default: |
| Interval at which the audit log cleanup cron job runs. | Default: |
| Initial delay before the audit log cleanup cron job starts after application startup. | Default: |
| Maximum number of audit log records deleted per cleanup run. | Default: |