Fixie Netlify
With Fixie static IP, your Netlify Functions can send any (HTTP, HTTPS, Database, TCP, and more) outbound requests from a fixed set of static IP addresses. Fixie for Netlify is language- and framework-agnostic.
Netlify Functions run on a regional, serverless model (Node.js by default, with Deno available through Edge Functions), so the outbound IP address a function call lands on is not something you control and can shift between invocations. This makes it difficult to integrate with external services that require a whitelisted IP range, including certain APIs and corporate firewalls. Fixie provides both HTTP and SOCKS V5 proxies for your outbound traffic, so requests from any function leave from the same two IPs every time, making your app compatible with services and firewalls that require an IP allow-list.
Netlify Functions officially supports JavaScript, TypeScript, and Go as function runtimes. If your backend is written in Ruby, Python, Java, Elixir, or PHP, it isn't a Netlify Functions runtime today. You can still reach Fixie from those languages if you're calling out from a different part of your stack, such as a background worker or a service hosted elsewhere, but the proxy setup below is written for the languages Netlify Functions actually runs.
Unlike Heroku and Vercel where there are native integrations available, Netlify support needs to be added manually at this time.
Getting Started
To get started, create a Fixie account, and create a new Proxy Application.
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 the languages Netlify Functions runs natively:
Netlify Edge Functions run on Deno instead, if you're using those rather than standard Functions. See the Deno documentation for that setup.
You also need to make sure Fixie credentials are accessible by your Netlify Functions. We recommend against hardcoding the values in the source code and instead adding your Proxy URL to Netlify's environment variables under Site settings → Build & deploy → Environment. We recommend the following naming conventions for Environment Variables so it's easier to follow along with our documentation:
FIXIE_URLfor your Fixie HTTP/S proxyFIXIE_SOCKS_HOSTfor your Fixie SOCKS proxy
Netlify environment variables carry a deploy context (production, Deploy Previews, branch deploys), so you can scope a different Fixie proxy to each context if you want separate credentials and logs for staging versus production. Feel free to create different Fixie proxies for different environments to keep them separate.
If you'd rather manage variables from the terminal, the Netlify CLI supports setting them directly:
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, or pull your site's variables with netlify env:list.
Keep sensitive configuration values, like credentials, out of source control. Exclude the
.envfile 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.
Related static IP guides
Step-by-step guides for routing outbound traffic from Netlify through a static IP:
See the full list of static IP guides for every supported language, platform, and destination.
Is this guide useful?
Having issues? Please reach out to our team here.