Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is zrok by NetFoundry?
zrok is an open-source tunneling and ingress tool from NetFoundry for exposing applications and other resources securely, either privately to specific users or publicly. It is built on OpenZiti, NetFoundry's open-source Zero Trust networking platform, and is offered both as a hosted SaaS service (zrok.io, run by NetFoundry) and as software you can self-host. Its pitch is speed of setup: the page describes a three-step flow of zrok2 invite, zrok2 enable, and zrok2 share to get a resource shared "in minutes."
What it does beyond a typical tunnel
Most tunneling tools are essentially HTTP reverse proxies. zrok's page positions it more broadly:
- Private sharing: resources can be shared only with other zrok users, without exposing them on public endpoints, with traffic carried between zrok clients over the OpenZiti overlay.
- Public ingress: applications can also be exposed publicly when that's the goal.
- Non-HTTP resources: the page highlights sharing files and web content, and describes a framework intended to extend to other kinds of decentralized, peer-to-peer resource sharing.
Who it suits
| Reader | Why it fits | Trade-off to weigh |
|---|---|---|
| Developer demoing a local app | Quick share step, no infrastructure to stand up on the SaaS instance | You depend on NetFoundry's hosted service |
| Team needing private access to internal tools | Private mode avoids public exposure; Zero Trust overlay handles transport | Requires onboarding other users to zrok |
| Operator with compliance or air-gap needs | Self-hosted option; the page says a single binary plus a Ziti network is enough, scaling down to a Raspberry Pi | You run and maintain the Ziti network yourself |
| Someone sharing files rather than web apps | Built-in file/content sharing rather than proxy-only | Peer-to-peer sharing is described as extensible, so check current capabilities for your use case |
The main decision is hosted versus self-hosted: the hosted instance minimizes setup, while self-hosting trades that convenience for control and independence from a third party. If you want to evaluate it, start by installing the binary and running the three commands against the public instance with a throwaway local service, then repeat the exercise self-hosted if private or regulated traffic is your real target. Related open-source projects in this space include OpenZiti and localhost.run.
How does zrok differ from a traditional HTTP reverse proxy or tunneling tool?
zrok is a zero-trust, peer-to-peer sharing platform built on OpenZiti, not just a tunnel that forwards HTTP traffic through a public relay. The key difference is that private shares are not exposed to public endpoints at all: communication is transported directly between zrok clients over an overlay network. A traditional reverse proxy or tunneling tool typically terminates traffic at a public hostname, so anyone who can reach that endpoint can attempt to connect; access control is bolted on separately.
Where the difference shows up
- Private sharing. With zrok, other zrok users reach your resource through the overlay; the page states private resources are not exposed to public endpoints. A traditional tunnel usually gives you a public URL that is reachable by anyone unless you add authentication yourself.
- Beyond HTTP. zrok is designed to share files, web content, repositories and video, and to be extended to other decentralized resource-sharing types. Most tunneling tools are built around proxying HTTP or TCP endpoints only.
- Deployment choice. The same codebase runs as the public zrok.io service operated by NetFoundry or as a self-hosted instance. Self-hosting is described as small enough for a Raspberry Pi with a single binary plus a Ziti network. Traditional tools vary widely here, but many are SaaS-only or require more moving parts to self-host.
- Trust model. Zero trust is baked in via OpenZiti rather than added as a layer. A conventional reverse proxy assumes the network perimeter does part of the work.
A practical scenario
A developer wants to give two remote teammates access to a local repository and a staging web app without publishing either to the internet. With a classic tunnel, the web app gets a public URL and the repository needs a separate mechanism. With zrok, both can be shared privately to those users through the overlay, and the public-exposure question disappears.
Decision criterion
Choose zrok when private-by-default access, non-HTTP resources, or self-hosting on modest hardware matter. A traditional reverse proxy remains the simpler fit when you genuinely need a public, anonymous endpoint, or when your existing infrastructure and TLS tooling already handle access control.
To evaluate it, start with the three-step flow shown on the site (zrok2 invite, zrok2 enable, zrok2 share) on a non-critical resource, then compare the access model against your current proxy setup. The project is documented at zrok by NetFoundry, and its underlying platform at OpenZiti.
How do I set up my own self-hosted zrok instance on a Raspberry Pi or small server?
Self-hosting zrok means running your own zrok service instance backed by an OpenZiti network, rather than using NetFoundry's public zrok.io service. The page describes the single zrok binary as containing "everything you need to operate zrok environments and host your own service instances," and says a full setup can run on a Raspberry Pi: "Just add a Ziti network and you're up and running." So the practical shape of the job is: stand up OpenZiti first, then layer zrok on top.
What the setup involves
- An OpenZiti network. zrok's zero-trust transport comes from OpenZiti, so a self-hosted instance needs a Ziti network behind it. On a Pi or small VPS this is the part that consumes the most resources and attention; plan the network (controllers, routers) before touching zrok.
- The zrok binary and service instance. The same code base runs both zrok.io and self-hosted deployments, and the page notes it is designed to "scale down to support extremely small deployments" as well as up to very large ones. One binary covers operating the environment and hosting the service instance.
- Client onboarding. Users join an instance with
zrok2 invite, activate their shell withzrok2 enable, and share withzrok2 share. On your own instance you'll be issuing those invites yourself rather than using the public service's flow.
Choosing between a Pi and a small server
| Consideration | Raspberry Pi | Small cloud/VPS server |
|---|---|---|
| Cost and power | Low purchase and running cost; sits on your own network | Recurring monthly fee |
| Network reachability | Depends on your home connection and any NAT/firewall in front of it | Usually a public IP and simpler inbound networking |
| Suitability | Fine for personal or lab use; the page explicitly cites the Pi case | Better if others outside your network will rely on it |
| Failure modes | SD card wear, home power/ISP outages | Provider outages, but generally more predictable uptime |
The Pi is a good fit for learning the stack and sharing with a handful of people you know. If the instance will serve a team or anything semi-production, a small server with a stable address removes a class of networking problems before you start.
A sensible order of work
- Read the zrok documentation for the self-hosting path, since the exact Ziti configuration steps are version-specific and the page only sketches them.
- Build the OpenZiti network first and confirm it works on its own.
- Install the zrok binary, create the service instance, and issue yourself a first invite.
- Test both sharing modes: private sharing (resources not exposed to public endpoints, traffic carried between zrok clients) and public ingress.
- Only then invite other users.
As a concrete example: someone who wants to reach a home-lab dashboard and a file share from a laptop while travelling could run Ziti plus zrok on a Pi, keep the dashboard in private mode so it never touches a public endpoint, and use public sharing only for a demo site they actually want strangers to see.
For background on the underlying network, the OpenZiti project is at OpenZiti, and the zrok docs and download links are on zrok by NetFoundry.
Is zrok free to use, and what do the SaaS and self-hosted pricing options include?
zrok is open-source software, and its public SaaS instance is operated by NetFoundry on the same code base that is available for self-hosting. The site points to a dedicated pricing page, but the supplied page content does not list plan tiers or what each paid option includes, so specific SaaS pricing and self-hosted support terms can't be confirmed from this material alone. What is clear is the structural choice: you can use the hosted service or run your own instance.
What each option means in practice
| Option | What the page indicates | Practical fit |
|---|---|---|
| Public SaaS instance (zrok.io) | A service instance run by NetFoundry using the same code as self-hosted deployments | Teams that want to start sharing quickly without operating the service themselves |
| Self-hosted | The single zrok binary contains what you need to run your own service instance; you add an OpenZiti network | Organizations with data-residency, compliance or network-control requirements, or very small deployments such as a Raspberry Pi |
The page also describes private sharing between zrok users, where resources are not exposed to public endpoints, and sharing of files and web content beyond HTTP proxying. Those capabilities matter when comparing options: a self-hosted deployment gives you control over the underlying OpenZiti network, while the SaaS route trades that control for operational simplicity.
Next step
Open the pricing page at zrok by NetFoundry and check two things before deciding: whether the SaaS tier you need covers private sharing and non-HTTP resource sharing, and what support or hosting obligations come with self-hosting. If your team must keep traffic inside its own Zero Trust network, self-hosting is the more direct path; if you mainly need to expose a development service or share files quickly, start with the hosted instance and move later, since both use the same code base.
How does zrok use OpenZiti to keep shared resources private with zero trust?
zrok uses OpenZiti as its underlying zero-trust overlay network: shared resources are reached through that overlay rather than exposed on a public endpoint. In private sharing, traffic between zrok clients is carried inside the OpenZiti network, and access is granted to identified zrok users instead of to anyone who finds an address. Public sharing is a separate mode; the privacy benefit described on the page applies to private shares.
What that means in practice
- Private shares: a resource stays off public endpoints, and only invited or authorized zrok users can reach it. This suits internal dashboards, admin tools, databases and file shares that should not face the open internet.
- Public shares: useful for demos, webhooks or showing a site to someone outside your account, but the resource is intentionally reachable more broadly.
- Beyond HTTP: the same model extends to files, repositories and video, not just web endpoints.
- Deployment choice: the hosted service and self-hosted installs use the same code base, and self-hosting layers zrok on an OpenZiti network you operate.
A practical test before choosing a mode: ask whether a stranger with the URL should be able to connect. If not, use a private share and manage access through zrok identities; if yes, a public share is the simpler fit. For teams already running OpenZiti, self-hosting keeps identity and policy under your control; for quick trials, the hosted instance removes that setup work.
Can zrok share files and other non-HTTP resources peer-to-peer, and how does that work?
Yes. zrok is not limited to proxying HTTP endpoints. Its own description says it can share files and web content, and that the framework is meant to be extended to other kinds of decentralized, peer-to-peer resource sharing. The transport sits on an OpenZiti Zero Trust overlay, so traffic between zrok clients stays private rather than being exposed on a public endpoint.
How the sharing model differs
| Mode | What is exposed | Typical use |
|---|---|---|
| Public share | A reachable endpoint for anyone with the address | Quick demos, webhooks, temporary access |
| Private share | Nothing public; only other zrok users on the overlay | Files, internal apps, repos shared with colleagues |
For non-HTTP resources, the private path is the one that matters. Because the connection is between zrok clients over the overlay, a recipient does not need inbound ports opened or a public IP on your machine; they need to be a zrok user in the same sharing arrangement. That is what makes "peer-to-peer" meaningful here: the resource stays on your side and the overlay brokers the private path.
A concrete scenario
A developer on a home network wants to hand a large build artifact and a private Git repository to two teammates without uploading to a third-party host or exposing a port forward. They run the share command for the resource, invite the teammates as zrok users, and each teammate connects through their own zrok client. Nothing appears on the public internet.
Decision criteria
- Choose zrok when you want self-hosting or a managed instance from the same codebase, and when private, identity-based access matters more than anonymous public links. The project notes it scales from a Raspberry Pi deployment up to very large instances, with a single binary containing what you need plus a Ziti network.
- Look elsewhere if your recipients cannot install a client and you need purely anonymous public file links, or if you want a mature GUI-first file-sharing product rather than a CLI-driven tunnel.
Next step
Read the sharing documentation and try a private share of a small folder between two machines you control before involving others; that confirms the invite/enable flow works in your environment. For the underlying zero-trust layer, see OpenZiti; for the project itself, zrok by NetFoundry.
User reviews (0)