Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonascarpay/iplz
Demo project for building, provisioning, and deploying a web service with a single command, using Terraform and Nix.
https://github.com/jonascarpay/iplz
docker icanhazip nix template terraform tutorial
Last synced: 24 days ago
JSON representation
Demo project for building, provisioning, and deploying a web service with a single command, using Terraform and Nix.
- Host: GitHub
- URL: https://github.com/jonascarpay/iplz
- Owner: jonascarpay
- Created: 2022-08-19T14:38:43.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-11-24T08:54:04.000Z (almost 2 years ago)
- Last Synced: 2023-02-27T04:41:24.194Z (over 1 year ago)
- Topics: docker, icanhazip, nix, template, terraform, tutorial
- Language: HCL
- Homepage:
- Size: 8.79 KB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# iplz: End-to-End Declarative Deployment Demo
_End-to-end declarative deployment_ means having a set of files describing the desired end state of the entire production pipeline, in such a way that we can materialize it with _a single command_.
In this case, that pipeline consists of building, provisioning, and deploying a simple web service to Amazon EC2.I describe the ideas and methods in detail in the [accompanying tutorial blog post](https://jonascarpay.com/posts/2022-09-19-declarative-deployment.html).
The `iplz` application itself is a simple [`icanhazip.com`](http://icanhazip.com/) clone, it echoes the client's IP address back at them.
It serves as a stand-in for a larger application, see the [binplz.dev repo](https://github.com/binplz/binplz.dev) for how the ideas presented here work in a more complex situation.### Usage
#### Setup
1. [Configure Terraform with your AWS credentials](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#authentication-and-configuration)
2. Run `nix run .#terraform -- init` to create Terraform lock files
#### Building and Deploying
1. `nix run .#terraform -- apply`
There is no step 2.