A serverless proxy for Render.com (or any Node.js platform) that allows you to proxy requests to any URL.
- Go to Render Dashboard
- Click "New +" and select "Web Service"
- Connect your GitHub repository
- Configure:
- Name: your-proxy-name
- Environment: Node
- Build Command:
npm install - Start Command:
npm start
- Click "Create Web Service"
This repository includes a render.yaml file for automatic deployment. Just push to GitHub and connect to Render.
This proxy can also be deployed to:
- Heroku:
git push heroku main - Railway: Connect GitHub repository
- Vercel: Deploy as Node.js project
- Fly.io:
fly launch
After deployment, you can access the proxy with this format:
https://your-app.onrender.com/[TARGET_URL]
Proxy a website:
https://your-app.onrender.com/https://example.com
Proxy an API:
https://your-app.onrender.com/https://api.github.com/users/github
With query parameters:
https://your-app.onrender.com/https://api.example.com/data?param=value&key=123
- ✅ Supports all HTTP methods (GET, POST, PUT, DELETE, etc.)
- ✅ Forwards headers and request body
- ✅ Supports query parameters
- ✅ CORS enabled by default
- ✅ Proper error handling
- ✅ Simple "Hello World" homepage
- ✅ Works on any Node.js platform
Run the server locally for testing:
# Install dependencies
npm install
# Run in development mode (with auto-reload)
npm run dev
# Or run in production mode
npm startThen access:
http://localhost:3000/https://example.com
This proxy is open and can access any URL. For production use:
- Consider adding authentication
- Implement rate limiting
- Create a whitelist of allowed domains
- Monitor usage to prevent abuse
- Use environment variables for sensitive data
GET Request:
curl https://your-app.onrender.com/https://api.github.com/zenPOST Request:
curl -X POST https://your-app.onrender.com/https://httpbin.org/post \
-H "Content-Type: application/json" \
-d '{\"key\":\"value\"}'You can modify index.js to:
- Add authentication middleware
- Restrict allowed domains
- Add caching with Redis
- Log requests to a database
- Implement rate limiting with express-rate-limit
- express - Fast, unopinionated web framework
- axios - Promise-based HTTP client
You can set these environment variables:
PORT- Port to run the server (default: 3000)
MIT