View the interactive API documentation:
Install ruby 3.4.1 with your package manager (mise is recommended)
brew install postgresql@14
brew services start postgresql@14
brew install redis
brew services start redis
brew services list
createuser -U postgres -d -R -S -P {{username}}
OR
sudo -u postgres psql
CREATE USER admin WITH PASSWORD 'your_password' CREATEDB;
\q
gem install rails
gem install bundler
bundle install
Update .env.development with your own values
cp .env.example .env.development
rails db:create
rails db:migrate
rails db:seed
rails s
bundle exec sidekiq
This project uses LocalStack for local development and Terraform Cloud for production deployment.
-
Install required tools:
brew install localstack brew install terraform pip install terraform-local
-
Start LocalStack:
localstack start
Use tflocal
commands for local development. This will interact with LocalStack instead of real AWS services
When ready to deploy to real AWS infrastructure:
-
Copy the cloud configuration:
Add to main.tf
cloud { organization = "marcusal-dev" workspaces { name = "pairings-app" } }
-
Remove any state files:
rm -rf .terraform.lock.hcl terraform.tfstate terraform.tfstate.backup
terraform state rm $(terraform state list)
-
Initialize and apply with regular Terraform commands:
terraform init terraform plan (confirm changes) terraform apply
-
After deployment, revert any changes to continue local development:
git clean -f
-
main.tf
- Main Terraform configuration (local development version) -
.gitignore
- Excludes local Terraform files and state
- Join workspace and login to Terraform Cloud before deploying
- Never commit AWS credentials to the repository
- Use
terraform workspace show
to verify your current workspace