What Gets Created
| Resource | Purpose |
|---|---|
| VPC | Private network with public/private subnets |
| EC2 | Server running Docker Compose |
| RDS PostgreSQL | Application database with pgvector |
| ElastiCache Redis | Caching layer |
| S3 Bucket | Secrets storage |
| Security Groups | Network access control |
| IAM Roles | Service permissions |
Prerequisites
AWS Permissions
AWS Permissions
Your AWS user/role needs permissions for:
- EC2 (instances, security groups, key pairs)
- RDS (instances, subnet groups, parameter groups)
- ElastiCache (clusters, subnet groups)
- VPC (VPCs, subnets, route tables, NAT gateways, internet gateways)
- S3 (buckets, objects)
- IAM (roles, policies, instance profiles)
From Greptile
From Greptile
- Container registry credentials (
CONTAINER_REGISTRY,GREPTILE_TAG) - License (contact [email protected])
GitHub App
GitHub App
Create a GitHub App with:
- Webhook URL:
http://<EC2_IP>:3007/webhook(update after deployment) - Permissions: Contents (read), Pull requests (read/write), Issues (read/write)
- Events: Pull request, Push, Issue comment
LLM Provider
LLM Provider
API keys for at least one provider:
- Anthropic — Claude models
- OpenAI — GPT models
- AWS Bedrock — Various models
Setup
1
Clone the repository
2
Create configuration file
3
Edit terraform.tfvars
4
Initialize and deploy
5
Get the URL
http://<EC2_IP>:3007/webhook.Access
| Service | URL |
|---|---|
| Web UI | http://<EC2_IP>:3000 |
| Hatchet Admin | http://<EC2_IP>:8080 |
Configuration
Instance Sizing
Instance Sizing
Modify
ec2_instance_type in terraform.tfvars:| Team Size | Instance | vCPU | RAM |
|---|---|---|---|
| 5-10 devs | t3.xlarge | 4 | 16GB |
| ~50 devs | m5.2xlarge | 8 | 32GB |
| 100 devs | m5.8xlarge | 32 | 128GB |
Database Sizing
Database Sizing
Modify
db_instance_class:Custom VPC CIDR
Custom VPC CIDR
SSH Key
SSH Key
To enable SSH access:
Operations
SSH into EC2
SSH into EC2
View logs
View logs
Update Greptile
Update Greptile
Check service status
Check service status
Destroy
To remove all infrastructure:Troubleshooting
EC2 not accessible
EC2 not accessible
- Verify security group allows inbound on ports 3000, 3007, 8080
- Check EC2 is in public subnet with internet gateway
- Confirm EC2 instance is running:
aws ec2 describe-instances
Services not starting
Services not starting
SSH in and check:
Database connection failed
Database connection failed
- Verify RDS security group allows traffic from EC2 security group
- Check RDS instance is available:
aws rds describe-db-instances
Webhooks not working
Webhooks not working
- Update GitHub App webhook URL to
http://<EC2_IP>:3007/webhook - Check security group allows inbound on port 3007
- Verify webhook secret matches
github_webhook_secretin tfvars