Fixie Fly.io

With Fixie static IP for Fly.io, your applications hosted on Fly.io can make outbound requests (HTTP, HTTPS, Database, TCP, and more) from a consistent set of static IP addresses. This integration is designed to be language- and framework-independent, ensuring broad compatibility across various development stacks.

Typically, Fly.io applications are assigned a dynamic range of IP addresses for outbound requests. This dynamic assignment can complicate interactions with external services that require a specific range of IP addresses for security reasons, such as some APIs and corporate firewalls. To mitigate these challenges, Fixie offers both HTTP and SOCKS V5 proxies for your application's outbound traffic, supporting HTTP/S requests, and database connections. This enhancement ensures your application remains compliant with external services and firewalls that necessitate an IP allow-list.

Fixie's versatility extends across multiple backend languages, offering support for JavaScript, Ruby, Python, Java, Go, and PHP.

Getting Started

To get started, create a Fixie account, and create a new Proxy Application.

In order to minimize latency, please select the closest region to the one where your Fly.io app is already deployed. To check the Fly.io region for your app, run fly status command and see the value(s) under REGION column.

After the proxy is created, go to Proxy’s Details page where you’ll see a couple of important values:

  • Proxy URL: Your Fixie HTTP/S or SOCKS proxy URL that includes your username, password and proxy server load-balancer to use.
  • Outbound IPs: Your pair of Fixie IP-addresses. These will never change, so feel free to allow-list them with firewalls or services

Configure your application

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

You also need to make sure Fixie credentials are accessible by your Fly.io app. We recommend against hardcoding the values in the source code and instead adding Proxy URL or HOST string to your Secrets. We do recommend the following naming conventions for Environment Variables so it’s easier to follow along with our documentation:

  • FIXIE_URL for your Fixie HTTP/S proxy
  • FIXIE_SOCKS_HOST for your Fixie SOCKS proxy

Now using fly ctl run the following command.

fly secrets set FIXIE_URL=... # This is where your Proxy URL from Fixie's dashboard goes
fly secrets set FIXIE_SOCKS_HOST=... # This is where your Proxy Host from Fixie's dashboard goes

Feel free to create different Fixie proxies for different environments (for example, development and production) to keep credentials and logs separate.

Local setup

To use Fixie locally, replicate the FIXIE_URL and/or FIXIE_SOCKS_HOST environment variables in your local environment. For example, you can add it to .env file locally

Keep sensitive configuration values, like credentials, out of source control. Exclude the .env file in Git with: echo '.env' >> .gitignore.

Changing plans

Use the Fixie dashboard to change your plan. To change the plan, click Change Plan button and select an appropriate plan.

NOTE: Changing the plan won't affect your outbound IP address

Deleting a proxy

To remove the proxies, go to the Fixie dashboard and select Delete for the desired proxy.

Having issues? Please reach out to our team here.