| .. | ||
| ec2-userdata.sh | ||
| main.tf | ||
| README.md | ||
| terraform.tfvars.example | ||
Infrastructure Setup
1. Terraform
cd infra
cp terraform.tfvars.example terraform.tfvars # fill in your values
terraform init
terraform apply
2. SSH Key
terraform output -raw ssh_private_key > everytab-key && chmod 600 everytab-key
terraform output ssh_command # prints the ssh command
3. Bootstrap EC2
scp -i everytab-key ec2-userdata.sh ec2-user@<IP>:~
ssh -i everytab-key ec2-user@<IP> 'bash ~/ec2-userdata.sh'
4. Clone Repo on EC2
git clone <your-repo-url> ~/everytab
cd ~/everytab
5. Database Setup
On the EC2 instance:
# Add to .bashrc (get the URL from: terraform output -raw database_url)
echo "export DATABASE_URL='postgres://everytab:PASS@ENDPOINT:5432/everytab'" >> ~/.bashrc
source ~/.bashrc
# Test connection
psql $DATABASE_URL -c 'SELECT 1;'
# Create schema
psql $DATABASE_URL -f ~/everytab/pipeline/01_cc_index/schema.sql
Teardown (after backup)
Switch to serving-only mode (destroys EC2, RDS, icons bucket):
terraform apply -var="scanning=false"
Full destroy (including the live site):
terraform destroy