Add complete ECS Fargate infrastructure for Clawdbot Discord bot deployment on AWS. ## Infrastructure (Terraform) - **VPC**: 100.64.0.0/16 with DNS support - **Public Subnets**: 2 subnets in different AZs - **ECR Repository**: clawdbot/bot with lifecycle policy - **IAM Roles**: Task Role (DynamoDB+S3) + Execution Role - **ECS Resources**: Fargate (256 CPU, 2048 MB memory) - **Security Group**: Outbound only - **CloudWatch**: Log group with 7-day retention ## Security Improvements - Discord Bot Token → AWS Secrets Manager - IAM policy with least privilege principle - No plaintext secrets in code ## Code Quality - Fix all 22 lint errors - Add *.d.ts to oxlint ignore patterns - Fix Dockerfile .buildstamp for Linux compatibility Closes #2049 Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
# AWS Terraform Variables for Clawdbot ECS Fargate Deployment
|
|
# Copy this file to terraform.tfvars and fill in the values
|
|
|
|
# AWS Configuration
|
|
aws_region = "ap-northeast-1"
|
|
aws_account_id = "123456789012" # Your AWS account ID
|
|
|
|
# Environment
|
|
environment = "production"
|
|
project_name = "clawdbot"
|
|
|
|
# ECS Configuration
|
|
ecs_task_cpu = 256 # 0.25 vCPU
|
|
ecs_task_memory = 2048 # 2 GB
|
|
ecs_service_desired_count = 1
|
|
|
|
# Discord Token (DEPRECATED - Use Secrets Manager instead)
|
|
# discord_token = "your_bot_token_here" # DO NOT use in production
|
|
|
|
# Secrets Manager Secret Name for Discord Bot Token
|
|
discord_token_secret_name = "clawdbot/discord-token"
|
|
# Create the secret in AWS Secrets Manager before running Terraform:
|
|
# aws secretsmanager create-secret \
|
|
# --name clawdbot/discord-token \
|
|
# --secret-string "your_bot_token_here"
|
|
|
|
# DynamoDB Tables
|
|
sessions_table_name = "clawdbot-sessions"
|
|
artifacts_table_name = "clawdbot-artifacts"
|
|
|
|
# S3 Bucket
|
|
artifacts_bucket_name = "clawdbot-artifacts"
|
|
artifacts_bucket_ttl_days = 7
|