Zrok VPN - We added preview of VPN mode to zrok (Go-based open source p2p sharing platform)

Disclaimer: I work at the company that sponsors zrok and OpenZiti

A co-worker of mine added host-to-host VPN support to zrok in “a few hours” and blogged about it here: https://blog.openziti.io/zrok-vpn

If not familiar, zrok is an open-source peer-to-peer sharing app written in Go. It lets you expose various local services publicly or privately (using OpenZiti under the hood). Adding VPN support to zrok wasn’t an obvious thing to do, but if you already know/like the sharing experience of zrok you can get a VPN up and running very quickly.

Anyways - kinda cool thing done in an open-source Go project that I thought might interest this community. PR is here if you want to see how he added the VPN “backend mode”: https://github.com/openziti/zrok/pull/595/files And a video of a live stream where the author talks more about what he wrote: https://www.youtube.com/live/OG9z1_8FbDg?si=p9zxdeQFYgCUtla0

Hey, I think it was you that helped me when I was wondering why custom domains with the hosted service were in the advertising if not supported yet. Thanks for the help, and I look forward to using it soon even if the custom domain support doesn’t emerge.

To others: I watched the support discourse in email list mode for a week and I am impressed by employee involvement, expert support, and friendliness. I’d recommend them if you require good, expert support for your company.

This is very cool. Is there some documentation on how to set this up as an “always on” background service?

Can we turn this off?

I need to be able to detect my actual IP for my app to work.

Hey u/Adventurous_Order104 , I just wrote up these instructions. Will you try them out?

https://blog.openziti.io/zrok-vpn-linux-service

Can you provide more information about the issue you experience?

Will feedback when I get a few mins to try this out. Thanks!

This worked liked a charm, thank you!

Only bit of feedback; is there somewhere in the main docs - https://docs.zrok.io/ - that provides info about the service and/or the config options you can set in /opt/openziti/etc/zrok/zrok-share.env? I had a look and couldn’t find them? Would be awesome if they were in there too!

Thanks again for your help

Oh, good!

The zrok-share.env file installed by the Linux package has some hints as comments (I tried, anyway).

I’ve written up some guides like this that talk about the consistent environment variables used the zrok-enable.bash and zrok-share.bash scripts that are common to the Docker examples and Linux service.

If you familiarize yourself with either you’ll be an expert at both.

These env vars are like a thin wrapper for zrok CLI. They simplify sending arguments to zrok, but you can definitely use zrok directly and it’s a really clean experience. If you do use zrok directly to experiment it will be much easier to map out what the env vars are doing for you.

Sorry I don’t have exactly the unified reference you’re after. I’ll think about that.