Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

poteto/reverse_proxy

Terraform demo - incrementally replace your API with Phoenix

poteto/reverse_proxy.json
{
"createdAt": "2016-08-07T00:53:21Z",
"defaultBranch": "master",
"description": "Terraform demo - incrementally replace your API with Phoenix",
"fullName": "poteto/reverse_proxy",
"homepage": "https://github.com/poteto/terraform",
"language": "JavaScript",
"name": "reverse_proxy",
"pushedAt": "2017-06-05T17:03:15Z",
"stargazersCount": 52,
"topics": [],
"updatedAt": "2025-11-05T10:03:07Z",
"url": "https://github.com/poteto/reverse_proxy"
}

Terraform is a simple Plug that intercepts requests to missing routes, and forwards them along to somewhere else of your choosing. The main use-case for this is to incrementally replace an API with Phoenix.

mix do deps.get, deps.compile
iex -S mix phoenix.server

Try to do a GET to localhost:4000/v1/{foo,bar,baz} – they should work as normal.

Then, try a GET to localhost:4000/v1/gifs/search?q=funny+cat&api_key=dc6zaTOxFJmzC – this should forward the request to Giphy’s public API and respond accordingly with funny cats.

You can also try a GET to localhost:4000/v1/hello-world, which is an example of directly matching a request by path.

To start your Phoenix app:

  • Install dependencies with mix deps.get
  • Start Phoenix endpoint with mix phoenix.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.