zrok


Keywords
zrok, file-sharing, golang, network, peer-to-peer, reverse-proxy, security, zero-trust
License
Apache-2.0
Install
pip install zrok==0.4.49

Documentation

zrok - Secure Internet Sharing Made Simple

zrok logo

Share anything, anywhere, instantly. Enterprise reliability. No firewall changes. No port forwarding. No hassle.

zrok lets you securely share web services, files, and network resources with anyoneโ€”whether they're across the internet or your private network. Built on zero-trust networking, it works through firewalls and NAT without requiring any network configuration changes.

Quick Start

Get sharing in under 2 minutes:

  1. Install zrok for your platform
  2. Get an account: zrok invite (use the free zrok.io service)
  3. Enable sharing: zrok enable

That's it! Now you can share anything:

# Share a web service publicly
$ zrok share public localhost:8080

# Share files as a network drive  
$ zrok share public --backend-mode drive ~/Documents

# Share privately with other zrok users
$ zrok share private localhost:3000

zrok Web Console

What You Can Share

๐ŸŒ Web Services

Instantly make local web apps accessible over the internet:

$ zrok share public localhost:8080

zrok share public

๐Ÿ“ Files & Directories

Turn any folder into a shareable network drive:

$ zrok share public --backend-mode drive ~/Repos/zrok

zrok share public -b drive mounted zrok drive

๐Ÿ”’ Private Resources

Share TCP/UDP services securely with other zrok usersโ€”no public internet exposure.

Key Features

  • Zero Configuration: Works through firewalls, NAT, and corporate networks
  • Secure by Default: End-to-end encryption with zero-trust architecture
  • Public & Private Sharing: Share with anyone or just specific users
  • Multiple Protocols: HTTP/HTTPS, TCP, UDP, and file sharing
  • Cross-Platform: Windows, macOS, Linux, and Raspberry Pi
  • Self-Hostable: Run your own zrok service instance

How It Works

zrok is built on OpenZiti, a programmable zero-trust network overlay. This means:

  • No inbound connectivity required: Works from behind firewalls and NAT
  • End-to-end encryption: All traffic is encrypted, even from zrok servers
  • Peer-to-peer connections: Direct connections between users when possible
  • Identity-based access: Share with specific users, not IP addresses

Developer SDK

Embed zrok sharing into your applications with our Go SDK:

// Create a share
shr, err := sdk.CreateShare(root, &sdk.ShareRequest{
    BackendMode: sdk.TcpTunnelBackendMode,
    ShareMode:   sdk.PrivateShareMode,
})

// Accept connections
listener, err := sdk.NewListener(shr.Token, root)

๐Ÿ“– Read the SDK guide for complete examples.

Self-Hosting

Run your own zrok serviceโ€”from Raspberry Pi to enterprise scale:

  • Single binary contains everything you need
  • Scales from small personal instances to large public services
  • Built on the same codebase as the public zrok.io service

๐Ÿ“‹ Self-Hosting Guide

Resources


Ready to start sharing? Get started with zrok โ†’