Upstash Documentation

Local Tunnel

2 min read

QStash requires a publicly available API to send messages to. The recommended approach is to run a development server locally and use it for development purposes.

Alternatively, you can set up a local tunnel to expose your API, enabling QStash to send requests directly to your application during development.

localtunnel.me#

localtunnel.me is a free service to provide a public endpoint for your local development.

It's as simple as running

replacing 3000 with the port your application is running on.

This will give you a public URL like https://good-months-leave.loca.lt which can be used as your QStash URL.

If you run into issues, you may need to set the Upstash-Forward-bypass-tunnel-reminder header to any value to bypass the reminder message.

ngrok#

ngrok is a free service, that provides you with a public endpoint and forwards all traffic to your localhost.

Sign up#

Create a new account on dashboard.ngrok.com/signup and follow the instructions to download the ngrok CLI and connect your account:

Start the tunnel#

Choose the port where your application is running. Here I'm forwarding to port 3000, because Next.js is using it.

Publish a message#

Now copy the Forwarding url and use it as destination in QStash. Make sure to add the path of your API at the end. (/api/webhooks in this case)

Debug#

In case messages are not delivered or something else doesn't work as expected, you can go to http://127.0.0.1:4040 to see what ngrok is doing.