Winter Proxy
Winter Proxy is a free and open source discord webhook proxy. It is designed for Roblox developers who want to use Discord webhooks, as Discord blocks all webhook requests that come from Roblox servers. Currently, Winter Proxy isn't hosted by us, you have to host it yourself, but it is something we are looking to do in the near future.
The difference between Winter Proxy and other proxies is that it is designed
for private use, you can host your own instance, and it has authentication
features built in that stop anyone from abusing it. If you would like to host a
public one, it's also fully possible to do that just by setting AUTH_ENABLED
to false inside your .env file.
Deployment
Vercel
The quickest way to deploy Winter Proxy is to use Vercel. Vercel offer a free Hobby tier for developers, which may be enough for you depending on how much you use it. You can deploy it by clicking the button below:
To generate your API_TOKEN, I reccomend using openssl. This will generate a 32
byte long random string for you to use.
openssl rand -base64 32
For more info about authentication, see the Authentication section.
Self hosted
Self hosting Winter Proxy is not too complicated, but you will require a decent amount of knowledge about Docker, NextJS, and whatever OS you're using (probably linux if on a server). Here are the rough steps you'll need to follow:
- Clone the repo
- Build the nextjs app (
pnpm run build) - Build the docker image (
docker build -t winter-proxy .) - Run the docker image (
docker run -p 3000:3000 -e AUTH_ENABLED=true -e API_TOKEN=<API_TOKEN> winter-proxy)
You can now access the web ui at http://localhost:3000/, and the API at http://localhost:3000/api/webhooks/<WEBHOOK_ID>/<WEBHOOK_TOKEN>
For more info about docker, see their docs.
Usage
To use Winter Proxy after deployment, copy your webhook url from discord, and replace
discord.com with the URL of your server. There is also a convenient web UI for
quickly converting URLs.
Authentication
If you have authentication enabled, you will need to add the winterapitoken key
to the body of your request. Set the value to the API key you set during deployment.
Here's an example json body:
{
"content": "Hello from Winter Proxy!",
"winterapitoken": "<API_TOKEN>"
}