This repository contains Terraform configurations to deploy Atlantis on AWS ECS Fargate. Atlantis is a self-hosted platform that provides automated Terraform pull request automation and workflow management.
The deployment consists of the following AWS components:
- ECS Fargate for running Atlantis containers
- Application Load Balancer (ALB) for routing traffic
- EFS for persistent storage
- ACM for SSL/TLS certificate management
- GitHub webhook integration for automated PR workflows
.
├── .terraform/ # Terraform plugins and modules
├── tf-modules/ # Custom Terraform modules
│ └── github-repository-webhook/ # GitHub webhook configuration
├── main.tf # Main Terraform configuration
├── provider.tf # AWS provider configuration
├── variables.tf # Input variables
├── outputs.tf # Output values
├── secrets.tf # Sensitive configuration
└── github_webhook.tf # GitHub webhook setup
- AWS Account with appropriate permissions
- Terraform >= 0.12
- GitHub repository access
- Domain name (for SSL certificate)
-
Create a
terraform.tfvarsfile with required variables: -
Initialize Terraform:
terraform init- Apply the configuration:
terraform plan
terraform applyThe deployment utilizes several modules:
atlantis- Core Atlantis configurationatlantis.acm- SSL/TLS certificate managementatlantis.alb- Application Load Balancer setupatlantis.ecs_cluster- ECS cluster configurationatlantis.ecs_service- ECS service and task definitionsatlantis.efs- Elastic File System for persistence (optional)
- SSL/TLS encryption enabled
- Private key authentication
- Secure secrets management
- Network isolation using VPC
After successful deployment, you'll receive:
- Atlantis URL
- ALB DNS name
- GitHub webhook URL
- Fork the repository
- Create a feature branch
- Submit a Pull Request
This project is licensed under the MIT License.