Skip to main content
Version: 26.1

Platform: Docker Compose

Docker Compose deployments are suitable for evaluation, development, and small production workloads.

Prerequisites

Other than the basic requirements already listed in the Platform installation overview, you will need:

  • Docker Engine and Docker Compose

Container images

Seqera Enterprise container images are hosted on a private registry (cr.seqera.io). Access is provided as part of your purchase. Contact support if you require access.

We recommend mirroring these images to your own private container registry for production use. See Mirroring container images for details.

Database configuration

Create a MySQL database and user for Seqera:

CREATE DATABASE tower;
CREATE USER 'tower'@'%' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON tower.* TO 'tower'@'%';

See Database configuration for details.

Redis or Valkey configuration

Seqera Platform requires a Redis-compatible cache store for transient data, primarily Nextflow job metrics reporting. Both Redis and Valkey are supported.

info

The bundled redis container in docker-compose.yml is intended for evaluation and small workloads. For production, use a managed service or an official Redis installation source.

Supported versions

Cache / versionStatus
Redis 6.xNot supported (EoL upstream)
Redis 7.2Supported
Redis 7.4Supported
Valkey 7.xSupported (from 26.1)

Connection URL

Configure the connection URL in your Seqera environment using the scheme that matches your cache backend:

BackendSchemeExample
Redisredis://TOWER_REDIS_URL=redis://<host>:6379
Redis with TLSrediss://TOWER_REDIS_URL=rediss://<host>:6380

The Redisson client embedded in Platform 26.1+ supports Valkey 7 dial schema — no further configuration is required. Redis password and ACL configuration carry over unchanged when migrating to Valkey.

Managed service options

Use a managed cache service for production:

For migration guidance from Redis to Valkey on an existing installation, see Cache layer changes.

Deploy Seqera Enterprise

  1. Download and configure tower.env. See Configuration for detailed instructions.

  2. Download and configure tower.yml. See Configuration for detailed instructions.

  3. Download and configure the docker-compose.yml file:

    • The db and redis containers should be used only for local testing. If you have configured these services elsewhere, you can remove these containers.

    • To configure the Seqera pipeline optimization service (groundswell), see Pipeline optimization.

    • To deploy with Studios, see Studios deployment.

  4. Deploy the application and wait for it to initialize (this process takes a few minutes):

    docker compose up
  5. Test the application by running an nf-core pipeline with a test profile.

  6. After you've confirmed that Seqera Enterprise is correctly configured and you can launch workflows, run docker compose up -d to deploy the application as a background process. You can then disconnect from the VM instance.

note

For more information on configuration, see Configuration options.

Seqera frontend unprivileged

An unprivileged version of the Seqera frontend image is also available. This image listens on an unprivileged port and therefore doesn't need to be run as the root user.

Replace the tag of the frontend image cr.seqera.io/enterprise/platform/frontend:v24.x.x with cr.seqera.io/enterprise/platform/frontend:v24.x.x-unprivileged. Then update the frontend section of the docker-compose.yml file as follows, replacing the port mappings as needed:

  frontend:
image: cr.seqera.io/enterprise/platform/frontend:v24.x.x-unprivileged
platform: linux/amd64
environment:
NGINX_LISTEN_PORT: 8001 # If not defined, defaults to 8000
networks:
- frontend
ports:
- 8081:8001 # Map host port 8081 to container port 8001
restart: always
depends_on:
- backend

The unprivileged Seqera image will soon deprecate the current image that requires root. The unprivileged image can be easily customized using environment variables:

  • NGINX_LISTEN_PORT: The port the NGINX process will listen on inside the container. Default: 8000.
  • NGINX_LISTEN_PORT_IPV6: The NGINX listening port to open on the IPv6 address. Default: 8000.
  • NGINX_UPSTREAM_HOST: The hostname of the backend service to which the NGINX process will route requests. Default: 8000.
  • NGINX_UPSTREAM_PORT: The port where the backend service is exposed. Default: 8000.

If further customization of the config file is needed, mount a config map/secret over the templated NGINX configuration file at /etc/nginx/templates/tower.conf.template. See SSL/TLS for an example.

Optional features

Pipeline optimization

Seqera Platform offers a service that optimizes pipeline resource requests. Refer to Pipeline optimization for more information.

Studios

Studios is an interactive analysis environment available in organizational workspaces. To enable Studios, see Studios deployment.

note

Studios is available from Seqera Platform v24.1. If you experience any problems during the deployment process please contact your account executive. Studios in Enterprise is not installed by default.