Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti.
Go to file
Kenneth Bingham b54337254a
Merge pull request #918 from openziti/homebrew-release-info
add missing brew audit, style commands to releaser's guide
2025-03-17 16:03:15 -04:00
.github hint homebrew formula update 2025-03-14 12:28:10 -04:00
agent updated openapi-generator-cli version to 7.12.0; hard remove generated outputs before generation 2025-03-04 09:45:47 -05:00
bin no wildcard 2025-03-05 10:14:24 -05:00
build v1.0.x series 2024-09-18 12:12:21 -04:00
canary canary iteration; public-proxy; private-proxy (#771) 2024-11-04 13:34:44 -05:00
cmd/zrok remove unused 'agent share' and 'agent access' commands 2025-03-10 10:29:21 -04:00
controller link to install guides 2025-03-05 12:14:13 -05:00
docker add the agent UI to local cross-compile script 2025-03-04 14:38:30 -05:00
docs doc tweak (#877) 2025-03-14 10:38:58 -04:00
drives fix: close file 2024-05-08 18:10:01 +08:00
endpoints Merge branch 'main' into v1_0_0 2024-10-24 11:45:49 -04:00
environment Merge branch 'v1_0_0' into api-v1 2025-02-26 13:15:43 -05:00
etc Merge branch 'main' into v1_0_0 2025-02-12 14:20:55 -05:00
google/api integrated openapi generation (#759) 2024-10-01 11:49:37 -04:00
nfpm api-v1 2025-02-26 12:04:51 -05:00
rest_client_zrok a round of iteration on improving the version management situation more (#881); update deps in ui/agentUi 2025-02-25 11:48:14 -05:00
rest_model_zrok frontend bind address data wiring (#834) 2025-02-05 11:14:00 -05:00
rest_server_zrok a round of iteration on improving the version management situation more (#881); update deps in ui/agentUi 2025-02-25 11:48:14 -05:00
sdk re-enable oauth and basic auth; logging lint (#893) 2025-03-05 11:26:00 -05:00
specs a round of iteration on improving the version management situation more (#881); update deps in ui/agentUi 2025-02-25 11:48:14 -05:00
tui seriousbusiness 2023-01-13 14:36:07 -05:00
ui missing <code/> 2025-03-06 14:17:32 -05:00
util '--auto' mode for 'zrok access private' (#780) 2024-11-07 13:36:09 -05:00
website docs 1.0 2025-03-05 11:59:08 -05:00
.flake8 lint the py sdk 2025-03-04 21:25:13 -05:00
.gitattributes feat: add .gitattributes to enforce lf line encoding 2024-02-12 21:04:33 +01:00
.gitignore lint and re-arm the flake8 test 2025-03-04 19:53:04 -05:00
.goreleaser-darwin.yml fix for goreleaser on darwin/arm64 2024-11-05 12:01:29 -05:00
.goreleaser-linux-amd64.yml add systemd user unit instance template 2025-01-07 11:57:30 -05:00
.goreleaser-linux-arm64.yml add systemd user unit instance template 2025-01-07 11:57:30 -05:00
.goreleaser-linux-armel.yml document and announce Linux user shares 2025-01-07 11:58:21 -05:00
.goreleaser-linux-armhf.yml add systemd user unit instance template 2025-01-07 11:57:30 -05:00
.goreleaser-release.yml use goreleaser config spec v2 2024-07-24 16:11:59 -04:00
.goreleaser-windows.yml use goreleaser config spec v2 2024-07-24 16:11:59 -04:00
.markdownlint.yaml initial code style guides 2023-12-15 13:17:21 -05:00
ACKNOWLEDGEMENTS.md acknowledgements (#558) 2024-02-08 14:08:03 -05:00
BUILD.md announce armhf, armel build fixes 2024-07-25 14:59:10 -04:00
CHANGELOG.md changelog (#893) 2025-03-05 17:05:12 -05:00
CODE_OF_CONDUCT.md add standard markdowns, start to fill them out 2023-01-27 08:28:50 -05:00
CONTRIBUTING.md refine style guide 2024-01-08 11:09:39 -05:00
go.mod upgrade golang.org/x/crypto due to a known vulnerability 2025-02-26 01:01:54 -05:00
go.sum upgrade golang.org/x/crypto due to a known vulnerability 2025-02-26 01:01:54 -05:00
LICENSE add LICENSE 2023-01-30 13:22:37 -05:00
openapitools.json updated openapi-generator-cli version to 7.12.0; hard remove generated outputs before generation 2025-03-04 09:45:47 -05:00
README.md docs (#812) 2025-03-14 10:35:37 -04:00
RELEASING.md add missing brew audit, style commands to releaser's guide 2025-03-17 12:40:00 -04:00
SECURITY.md Updating SECURITY.md to point to new security repository 2025-02-18 08:13:13 -05:00

zrok logo

Note: If you upgrade to v1.0.0 and you receive an error message like this:

[ERROR]: unable to create share (error getting zrok client: client version error accessing api endpoint 'https://api.zrok.io': [POST /clientVersionCheck] clientVersionCheck (status 404): {}: [POST /clientVersionCheck] clientVersionCheck (status 404): {})

Use the command zrok rebase apiEndpoint https://api-v1.zrok.io/ to update your environment for the v1.0.0 release.

Your Secure Internet Sharing Perimeter

zrok is a next-generation, peer-to-peer sharing platform built on top of OpenZiti, a programmable zero-trust network overlay. zrok is a Ziti Native Application.

zrok facilitates both public and private sharing. Public sharing allows you to share securely with non-zrok users over the public internet. Private sharing allows you to directly share peer-to-peer with other zrok users. No security or firewall changes are required for either type of sharing. No inbound connectivity is required. The OpenZiti overlay provides peer-to-peer connectivity without IP addresses, and employs end-to-end encryption for world-class security.

Like other offerings in this space, zrok allows users to create tunnels for HTTP, TCP and UDP network resources. zrok additionally allows users to easily and rapidly share files, web content, and custom resources in a peer-to-peer manner.

zrok Web Console

Frictionless

You can be up and sharing using the zrok.io service in minutes. Here is a synopsis of what's involved:

And then... sharing...

Easily share private network resources with public internet users, securely, without having to alter any of your local network configuration:

$ zrok share public localhost:8080

zrok share public

$ curl -s https://dslno640nct4.share.zrok.io | head
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <meta name="theme-color" content="#000000"/>
    <meta name="description" content="zrok ui"/>
    <link rel="preconnect" href="https://fonts.googleapis.com">

Share "network drives" with public and private users running on Windows, macOS, or Linux systems:

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

zrok share public -b drive

Mounting and working with shared drives is simple, and works with any applications on the end users' systems:

mounted zrok drive

See the Concepts and Getting Started Guide for a full overview.

The zrok SDK

zrok includes an SDK that allows you to embed zrok sharing capabilities into your own applications. If you're familiar with a golang net.Conn and net.Listener, you'll be right at home with our SDK.

A Simple zrok Sharing Service

// load enabled zrok environment
root, err := environment.LoadRoot()

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

// accept requests for your resource
listener, err := sdk.NewListener(shr.Token, root)

A Simple zrok Client

// load enabled zrok environment
root, err := environment.LoadRoot()

// request access to a shared zrok resource
acc, err := sdk.CreateAccess(root, &sdk.AccessRequest{ShareToken: shrToken})

// establish a connection to the resource directly
conn, err := sdk.NewDialer(shrToken, root)

This blog post provides more details for getting started with the zrok SDK.

Self-Hosting

zrok is designed to scale up to support extremely large service instances. zrok.io is a public service instance operated by NetFoundry using the same code base that is available to self-hosted environments.

zrok is also designed to scale down to support extremely small deployments. Run zrok and OpenZiti on a Raspberry Pi!

The single zrok binary contains everything you need to operate zrok environments and also host your own service instances. Just add an OpenZiti network and you're up and running.

See the Self-Hosting Guide for details on getting your own zrok service instance running.

zrok Office Hours

We maintain a growing playlist of videos focusing on various aspects of zrok. This includes the "office hours" series, which are longer-format videos digging into the implementation of zrok and showcasing some of the latest features and capabilities:

zrok Office Hours

Building

If you are interested in building zrok for yourself instead of using a released package, please refer to BUILD.md

Contributing

If you'd like to contribute back to zrok, that'd be great. Please see our CONTRIBUTING.md page and abide by the CODE_OF_CONDUCT.md.