Prerequisites
- Terraform
- AWS credentials configured for your target account and role
- A public Route53 hosted zone (domain and hosted zone ID)
openssland AWS CLI (if using the helper secret script)
Clone the repository
Clone the Tracecat repository and navigate to the Fargate deployment directory.Create core secrets
You can create these in AWS Secrets Manager manually or use the helper script:Configure authentication secrets (optional)
Depending on your chosenauth_types (e.g. saml, oidc, oauth), provide the necessary secret ARNs as Terraform variables.
For example, for SAML:
saml_idp_metadata_url_arnsaml_ca_certs_arnsaml_metadata_cert_arn
Initialize and deploy
Initialize Terraform and apply the configuration.Access Tracecat
Once deployed, access your instance at:- UI:
https://<domain> - API docs:
https://<domain>/api/docs - MCP:
https://<domain>/mcp
Updating Tracecat
To update an existing Tracecat deployment on Fargate:- Pull the latest Fargate stack from the Tracecat repository to ensure you have the most recent infrastructure changes.
- Change the
TF_VAR_tracecat_image_tagvariable to the desired image tag compatible with the stack, or remove the variable to default to the latest image tag. - Run
terraform applyto apply the updates.
Temporal DB SSL enforcement
For the bundled Fargatetemporalio/auto-setup deployment, temporal_db_force_ssl defaults to false:
disable_temporal_autosetup=true and point temporal_cluster_url at your external cluster. In that setup, temporal_db_force_ssl is typically unused because the bundled Temporal RDS instance is not created. If you run your own external Temporal PostgreSQL and want SSL-only enforcement there, set TF_VAR_temporal_db_force_ssl=true.
FAQ
Is untrusted code execution safe on Fargate?
Is untrusted code execution safe on Fargate?
Fargate does not support the permissions model required by
nsjail. Tracecat uses a fallback executor without nsjail isolation on Fargate.
If you need the highest isolation for untrusted code execution (like custom registry actions or core.script.run_python), deploy Tracecat on Kubernetes using the Helm chart, where nsjail is enabled by default.What infrastructure does this stack create?
What infrastructure does this stack create?
The Terraform stack deploys:
- Public ALB, Route53 records, and ACM certificates
- ECS cluster with Service Connect
- RDS instances (core database and optional Temporal database)
- ElastiCache Redis
- S3 buckets for attachments, registry, and workflow artifacts
- VPC endpoints for S3 and Secrets Manager
What happens if database migrations fail?
What happens if database migrations fail?
Migrations run in an init container during the API task startup. The API container only starts if migrations succeed. If migrations fail, the deployment pauses and dependent services (
worker, executor) will not update.