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.

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.