Log in to leave a comment
No posts yet
We are all too familiar with the stress caused by changing random URLs when using free tunneling tools. With services like ngrok, the URL changes every time you restart, forcing you to dive into Stripe or GitHub settings pages to re-enter the endpoint. It is a simple, repetitive task, but doing it just three or four times a day easily eats up 20 minutes. Over a year, a single developer wastes roughly 80 hours just copying and pasting webhook addresses.
zrok solves this tedious process in one go. First, claim your own unique hostname with the command zrok reserve public localhost:8080. Then, simply map that reserved name when you run the share command. Now, even if you toggle the terminal or reboot your computer, the webhook address registered in external services remains unchanged. With one setup, you can completely eliminate time spent modifying addresses.
Keeping multiple terminals open—one for the server and one to manually run a tunneling tool—is a recipe for mistakes. It is incredibly frustrating when the server is running but you forgot the tunnel, causing external API responses to be lost. Since zrok uses the OpenZiti network overlay, it integrates seamlessly with container environments.
The cleanest way is to include the zrok service directly in your docker-compose.yml file. Just use the openziti/zrok image and put your issued token in a .env file. With this configuration, a single docker compose up command brings up both the backend server and the external communication tunnel simultaneously. Team members can share the exact same development environment without installing or configuring separate tools. It is the most reliable way to structurally block human errors stemming from manual configurations.
When you need to show a colleague an API you are working on locally, generating a public URL can feel risky for security. Anyone who knows the address could potentially mess with your local database. zrok supports a "private share" feature that allows for secure communication without a public URL.
The principle is simple. When you run zrok share private http://localhost:8080, a unique token is generated. When you share this token with a colleague, they enter zrok access private [token] in their own terminal. Now, your colleague can access your local server via localhost:9191 on their own machine. It creates a virtual passage that works only for you, without being exposed to the public internet. You can instantly create a collaboration space with end-to-end encryption without building a separate VPN server.
As data traffic increases, free plans of commercial services quickly hit their limits. Speeds slow down or bandwidth limits are reached, often interrupting tests. Since zrok is open-source, you can build your own controller on an internal corporate server or a budget VPS.
By running your own hosting, you replace the nearly $100 annual cost of a paid plan with server maintenance costs of around $5 per month. It is not just about saving money. Using a dedicated server allows you to enable the QUIC protocol, which significantly improves network performance compared to SaaS. With reduced latency, API testing involving large-scale data becomes much smoother. Instead of developing within the constraints of a tool, you gain a tool optimized for your own environment.