Exploring ideas for a proxy service

Hi, I’m exploring how to create a proxy service. My use case is this: I have a Next.js + Puppeteer application on Vercel, which works fine but I’d like to have static outbound IPs so my clients can add them to their allowlists. I could sign up for a Fixie account, but it could be a bit pricey due to the high volume of requests.

As Render offers static outbound IPs, I’d like to explore creating a simple proxy service (ideally using Elixir) that I could host in Render. It’s something like having my own Fixie service.

Has anyone experience in this field? What are your recommendations? A forward, transparent HTTPS proxy is enough, but SOCKS support would be better.

I’d recommend mitmproxy, no need to reinvent the wheel.

1 Like

Thanks, I’ve been playing with mitmproxy in my dev machine and it looks like just what I need.

But, I’ve been unable to host it on Render with the provided Docker image as it tries to start in interactive mode:

==> Starting service...
usermod: no changes
Error: mitmproxy's console interface requires a tty. Please run mitmproxy in an interactive shell environment.
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/mitmproxy/master.py", line 80, in run
    await self.running()
  File "/usr/local/lib/python3.11/site-packages/mitmproxy/tools/console/master.py", line 207, in running
    sys.exit(1)
SystemExit: 1

deleted

If you are able to, in the container, run it through systemd.