Skip to main content
Version: 26.2

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 (from 26.1)
Redis 7.2Supported
Redis 7.4Supported
Valkey 7.xSupported (from 26.1)
note

Managed cache services can offer newer engine versions than Seqera Platform is tested against. For example, Amazon ElastiCache offers Valkey up to 9.x. Select a version from the table. Newer major versions are not tested or supported.

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

Seqera Platform 26.1 and later supports the Valkey 7 dial schema. No further configuration is required. Redis password and ACL configuration carry over unchanged when you migrate to Valkey.

Managed service options​

Use a managed cache service for production:

caution

Microsoft is retiring Azure Cache for Redis. As of April 1, 2026, new customers cannot create instances, and from October 1, 2026, no new instances can be created. For new Azure deployments, use Azure Managed Redis.

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​

From Seqera Platform Enterprise 26.2, Seqera publishes one frontend image, cr.seqera.io/enterprise/platform/frontend:<tag>. The image is unprivileged. It listens on an unprivileged port and doesn't run as the root user. Seqera no longer publishes the -root and -unprivileged tag variants. A docker-compose.yml that references one fails to pull.

The docker-compose.yml template earlier on this page is already configured for this image. To listen on a port other than the default 8000, set NGINX_LISTEN_PORT and map the host port to it:

  frontend:
image: cr.seqera.io/enterprise/platform/frontend:v26.2.1
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

Customize the image with these 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: backend.
  • NGINX_UPSTREAM_PORT: The port where the backend service is exposed. Default: 8080.

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.