Fixie Heroku

The Fixie Heroku addon provides Heroku applications with a fixed set of static IP addresses for outbound requests. Fixie is language- and framework-agnostic.

Without Fixie, your Heroku application makes requests from an unpredictable and impermanent set of IP addresses. Because Heroku IPs are dynamic, it can be difficult to integrate Heroku applications with services that whitelist a fixed IP range, including certain APIs and services that operate behind a corporate firewall.

Fixie acts as a proxy for outbound traffic, tunneling your requests through a known IP address. Each Fixie subscriber is assigned a set of static IP addresses. These addresses can be used anywhere you need a fixed IP range: API providers, firewall configurations, etc.

Fixie provides customers with a standard HTTP proxy URL that can be used to make requests from any server-side language, including JavaScript, Ruby, Python, Java, Go, and PHP. Fixie can proxy both HTTP traffic and HTTPS traffic, and HTTPS traffic is encrypted end-to-end.

If you are looking to connect to a database or FTP server, we recommend using Fixie Socks (a SOCKS proxy) as it is generally a better fit for that use case and supports virtually any TCP connection.

Getting started

The Fixie addon can be attached to a Heroku application via the CLI.

$ heroku addons:create fixie
-----> Adding fixie to sharp-mountain-4005... done, v18 (free)

You can sign up through the add-on page by clicking Install Fixie.

Configure your application

Next, update your application to use your Fixie proxy server. We have documentation for many popular languages supported by Heroku:

Once the Fixie add-on has been installed, a FIXIE_URL environment variable will be available to your app and will contain the outbound proxy URL. This can be confirmed using the heroku config:get command.

$ heroku config:get FIXIE_URL
http://fixie:your-token@your-subdomain.usefixie.com:80

Getting your static IP addresses

You can retrieve your static IP addresses in the "Account" tab of the Fixie Dashboard. Your IP addresses are listed under "Account Details."

Your static IP addresses are also shown in the command line when you enable Fixie using the Heroku CLI:

$ heroku addons:create fixie
Adding fixie to sharp-mountain-4005… done, v18 (free)
Your static IP addresses are 54.174.229.200, 54.176.231.252

Dashboard

The Fixie dashboard can be used to monitor your Fixie usage, retrieve your Fixie URL, and retrieve your outbound static IPs.

The dashboard can be accessed by visiting the Heroku Dashboard and selecting the application in question. Select Fixie from the Add-ons menu.

The dashboard can also be accessed via the CLI:

$ heroku addons:open fixie
Opening fixie for sharp-mountain-4005…

Local setup

If you wish to use Fixie to proxy requests while developing locally, it is necessary to locally replicate the FIXIE_URL environment variable.

Though less portable, it is also possible to set local environment variables using export FIXIE_URL=value.

You can use Foreman to configure, run and manage process types specified in your app’s Procfile. Foreman reads configuration variables from an .env file. Use the following command to add the FIXIE_URL values retrieved from heroku config to .env.

$ heroku config -s | grep FIXIE_URL >> .env
$ more .env

Credentials and other sensitive configuration values should not be committed to source-control. In Git, exclude the .env file with: echo .env >> .gitignore.

Changine between plans

Use the heroku addons:upgrade command to migrate to a new plan. NOTE: Changing the plan won't affect your outbound IP address

$ heroku addons:upgrade fixie:newplan
-----> Upgrading fixie:newplan to sharp-mountain-4005... done, v18 ($/mo)
       Your plan has been updated to: fixie:newplan

Removing the add-on

Fixie Heroku can be removed via the CLI.

This will destroy all associated data and cannot be undone! If your application is configured to make requests through Fixie Heroku, those requests will fail after removing the add-on.

$ heroku addons:remove fixie
-----> Removing fixie from sharp-mountain-4005... done, v20 (free)

Support

All Fixie Heroku support and runtime issues should be submitted via one of the Heroku Support channels.

Having issues? Please reach out to our team here.