everytab/infra
2026-05-18 13:42:49 -04:00
..
ec2-userdata.sh updated duckdb and added a swap file 2026-05-18 02:10:15 -04:00
main.tf added logging to cloudfront 2026-05-18 13:42:49 -04:00
README.md added infra setup with terraform 2026-05-17 16:07:50 -04:00
terraform.tfvars.example added infra setup with terraform 2026-05-17 16:07:50 -04:00

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