███╗ ███╗███████╗███████╗████████╗██╗
████╗ ████║██╔════╝██╔════╝╚══██╔══╝██║
██╔████╔██║█████╗ █████╗ ██║ ██║
██║╚██╔╝██║██╔══╝ ██╔══╝ ██║ ╚═╝
██║ ╚═╝ ██║███████╗███████╗ ██║ ██╗
╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝
First install Docker and Docker Compose. To work on infrastructure you must also install Terraform.
make # Print help
docker-compose build # Build the docker images
docker-compose up # Run the app in docker
make test # Run the tests
make lint # Run the linter
make repl # Start the interactive shell
The application is written in Ruby with the Sinatra web framework. It is
backed by a Postgresql database. In development the app and the database run
inside Docker containers managed by docker-compose
.
The infrastructure is managed using Terraform, which is a declaritive language for provisioning and managing infrastructure. The Terraform code lives in the repository so all infrastructure changes can be reviewed and repeatable across different environments, etc.