# plug_cloudflare
Inspired by [mod_cloudflare](https://github.com/cloudflare/mod_cloudflare), this [Elixir](http://elixir-lang.org/) [plug](https://github.com/elixir-lang/plug) parses [CloudFlare](https://www.cloudflare.com/)'s `CF-Connecting-IP` HTTP request header into [Plug.Conn](http://hexdocs.pm/plug/Plug.Conn.html)'s `remote_ip` field.
[![Hex.pm Version](http://img.shields.io/hexpm/v/plug_cloudflare.svg)](https://hex.pm/packages/plug_cloudflare)
[![Build Status](https://travis-ci.org/c-rack/plug_cloudflare.png?branch=master)](https://travis-ci.org/c-rack/plug_cloudflare)
## Setup
To use plug_cloudflare in your projects, edit your `mix.exs` file and add plug_cloudflare as a dependency:
```elixir
defp deps do
[
{:plug_cloudflare, ">= 1.2.0"}
]
end
```
## Usage
This plug should be one of the first ones in your pipeline.
It is therefore recommended to put it in the endpoint instead of a pipeline.
```elixir
defmodule MyApp.Endpoint do
use Phoenix.Endpoint, otp_app: my_app
plug Plug.CloudFlare
# Other plugs omitted for clarity
end
```
## Contribution Process
This project uses the [C4.1 process](http://rfc.zeromq.org/spec:22) for all code changes.
> "Everyone, without distinction or discrimination, SHALL have an equal right to become a Contributor under the
terms of this contract."
## License
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)