Fixie Supabase
With Fixie static IP, your Supabase Edge Functions can send any (HTTP, HTTPS, Database, TCP, and more) outbound requests from a fixed set of static IP addresses. Fixie for Supabase is language- and framework-agnostic.
Supabase Edge Functions run on Supabase's own Deno-compatible edge runtime, which handles each invocation at whichever location is closest to the request. Because a different location can handle any given call, the outbound IP address a function call lands on isn't something you control and can change between invocations. This makes it difficult to integrate with external services, an API, a database, a corporate firewall, that only accept traffic from an allow-listed range. Supabase's own documentation confirms Edge Functions can't provide a static egress IP directly and recommends routing outbound requests through a proxy instead, exactly the role Fixie plays here. Fixie gives you both HTTP and SOCKS V5 proxies for your outbound traffic, so requests leave from the same pair of IP addresses every time.
Supabase Edge Functions are written in TypeScript/JavaScript on Deno, so Fixie's setup here uses our Deno and JavaScript documentation.
Unlike Heroku and Vercel where there are native integrations available, Supabase 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 Edge Function to use your Fixie proxy server. Edge Functions are written in TypeScript/JavaScript on Deno, so our Deno documentation covers the proxy setup directly; our JavaScript documentation also applies since Deno supports the same fetch-based APIs.
Store your Fixie credentials in a Supabase project secret rather than hardcoding them in source. Edge Function secrets are set with the Supabase CLI:
Or from the dashboard:
- Open your project's Edge Functions → Secrets page.
- Enter a Key (e.g.
FIXIE_URL) and your Fixie proxy URL as the Value. - Click Save.
We recommend the following naming conventions for your secrets so it's easier to follow along with our documentation:
FIXIE_URLfor your Fixie HTTP/S proxyFIXIE_SOCKS_HOSTfor your Fixie SOCKS proxy
Secrets you set this way are read inside your function the same way as any other environment variable, via Deno.env.get("FIXIE_URL"). Feel free to create different Fixie proxies for different Supabase projects (for example, a separate project for staging) to keep credentials and logs separate — it also makes debugging easier, since you can tell at a glance from the proxy's own request logs which Supabase project generated a given request, instead of digging through logs that mix every environment together.
Local setup
To use Fixie locally with the Supabase CLI, add your secrets to a .env file and pass it when serving functions locally:
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.
Is this guide useful?
Having issues? Please reach out to our team here.