diff --git a/README.md b/README.md index b41a0f7..e36bcbd 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,68 @@ # rails-reverse-proxy +Gives you the ability to reverse proxy within Rails. + ## Installation +You know the drill. In your Gemfile, have the line + +```ruby +gem 'rails-reverse-proxy' ``` -gem install rails-reverse-proxy + +Then (you guessed it!) + ``` +$ bundle +``` + +## Usage + +An example usage of this gem is hosting a WordPress site on a path within your Rails application, such as `/blog`. To do this, you'll need something like + +```ruby +class WordpressController < ApplicationController + include ReverseProxy::Controller + + def index + # Assuming the WordPress server is being hosted on port 8080 + reverse_proxy "http://localhost:8080" do |config| + # We got a 404! + config.on_missing do |code, response| + redirect_to root_url and return + end + + # There's also other callbacks: + # - on_set_cookies + # - on_response + # - on_set_cookies + # - on_success + # - on_redirect + # - on_missing + # - on_error + # - on_complete + end + end +end +``` + +Then in your `routes.rb` file, you should have something like + +```ruby +match 'blog/*path' => 'wordpress#index', via: [:get, :post, :put, :patch, :delete] +``` + +You can also pass options into `reverse_proxy` + +```ruby +reverse_proxy "http://localhost:8000", path: "custom-path", headers: { 'X-Foo' => "Bar" } +``` + +Sorry if these instructions are sparse. Feel free to reach out or read the source! + +## Contributing + +All pull requests will become first class citizens. ## Copyright