Hi all. I have come over from Reddit based on some interaction with a couple of contributors.
I first saw this project a few months back and took a stab at it, to basically get nothing accomplished by it, so put it on the shelf for later.
I’ve seen a couple of people actively promoting this project as a solution to the old “How do I access my home lab resources without normal VPN (CGNAT) or relying on those other providers?”
So I wanted to express my experience, and issues I see.
I had a couple of hours last night to make an attempt at getting this solution configured, so I thought I would document that process and relay what worked vs what didn’t.
Debian 12 VPS - I’ve labeled it VPS-DAL-1
(2) CPU/ 4 GB RAM/ 60 GB SSD
I have this VPS (as all of my remote and local hosts are) configured to work with ZeroTier, Tailscale, and my own Wireguard tunnel.
So I started with the “Host Anywhere” documentation and followed it step by step.
It seemed to be working fine, until it got to a point of “waiting for https://vps-dal-1.<mytld>
:8441”, and that continued to spam the screen forever.
Eventually I guessed that something had crashed and went and looked at the log file:
/root/.ziti/quickstart/hostnameofserver/hostnameoofserver.log
Within that log I see:
[ 1.196] INFO edge/controller/server.NewController: edge controller instance id: cll4fxiiy0000hhn6nis1blr1
[ 1.196] INFO edge/controller/server.NewController: edge controller instance id: cll4fxiiy0000hhn6nis1blr1
[ 1.196] INFO edge/controller/server.(*Controller).Initialize: initializing edge
[ 1.196] INFO edge/controller/server.(*Controller).Initialize: initializing edge
[ 1.210] INFO storage/boltz.(*migrationManager).Migrate.func1: edge datastore is up to date at version 32
[ 1.210] INFO storage/boltz.(*migrationManager).Migrate.func1: edge datastore is up to date at version 32
[ 1.214] INFO edge/controller/internal/policy.NewSessionEnforcer: {sessionTimeout=[30m0s] frequency=[5s]} session enforcer configured
[ 1.214] INFO edge/controller/internal/policy.NewSessionEnforcer: {sessionTimeout=[30m0s] frequency=[5s]} session enforcer configured
[ 1.218] INFO edge/controller/server.(*Controller).Run: starting edge
[ 1.218] INFO edge/controller/server.(*Controller).Run: starting edge
[ 1.223] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {idleTime=[10s] maxQueueSize=[1] minWorkers=[1] maxWorkers=[16] poolType=[pool.listener.ctrl]} starting goroutine pool
[ 1.223] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {idleTime=[10s] maxQueueSize=[1] minWorkers=[1] maxWorkers=[16] poolType=[pool.listener.ctrl]} starting goroutine pool
panic: error parsing web configuration [web] at index [0]: error loading identity: open /root/.ziti/quickstart/vps-dal-1/pki/vps-dal-1-edge-controller-intermediate/keys/vps-dal-1-server.key: no such file or directory
goroutine 1 [running]:
github.com/openziti/fabric/controller.(*Controller).Runpanic: error parsing web configuration [web] at index [0]: error loading identity: open /root/.ziti/quickstart/vps-dal-1/pki/vps-dal-1-edge-controller-intermediate/keys/vps-dal-1-server.key: no such file or directory
goroutine 1 [running]:
github.com/openziti/fabric/controller.(*Controller).Run(0xc000b0e540)
github.com/openziti/fabric@v0.23.45/controller/controller.go:273 +0xb45
github.com/openziti/ziti/ziti/controller.run(0xc0004df200?, {0xc000ad0330, 0x1, 0x1?})
github.com/openziti/ziti/ziti/controller/run.go:94 +0xaa5
(0xc000b0e540)
github.com/openziti/fabric@v0.23.45/controller/controller.go:273 +0xb45
github.com/openziti/ziti/ziti/controller.run(0xc0004df200?, {0xc000ad0330, 0x1, 0x1?})
github.com/openziti/ziti/ziti/controller/run.go:94 +0xaa5
github.com/spf13/cobra.(*Command).execute(0xc0004df200, github.com/spf13/cobra.(*Command).execute(0xc0004df200, {0xc000ad0300, 0x1, 0x1})
{0xc000ad0300, 0x1, 0x1})
github.com/spf13/cobra@v1.7.0/command.go:944 + github.com/spf13/cobra@v1.7.0/command.go:944 +0x847
github.com/spf13/cobra.(*Command).ExecuteC(0x847
github.com/spf13/cobra.(*Command).ExecuteC(0x50b9f00)
github.com/spf13/cobra@v1.7.0/command.go:0x50b9f00)
github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.7.0/command.go:992
1068 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.7.0/command.go:992
github.com/openziti/ziti/ziti/cmd.Execute()
github.com/openziti/ziti/ziti/cmd/cmd.go:80 +0x38
github.com/openziti/ziti/ziti/cmd.Execute()
github.com/openziti/ziti/ziti/cmd/cmd.go:80 +0x38
main.main()
github.com/openziti/ziti/ziti/main.go:51 +0x17
main.main()
github.com/openziti/ziti/ziti/main.go:51 +0x17
So, OK. Let’s delete the directory and try that again.
Same issue.
I can’t seem to find any reference to this error anywhere else, so where does one go? Support is not really documented in this regard. It’s just kind of a “well it broke, I guess it doesn’t work” thing. Maybe a message to alert people where to get assistance with this kind of failure?
So, I thought, Let’s try this on a different VPS:
(2) CPU/ 1GB RAM/ 25 GB SSD
Debian 12 as well.
This time it worked fine. AWESOME. Now following the documentation I see, in the next steps:
- Now that you have your network in place, you probably want to try it out. Head to the services quickstart and start learning how to use OpenZiti.
- Install the Ziti Console (web UI)
OK. So I go off and start reading.
Next step: STARTING WITH SERVICES. Well, I’m not a developer (I may write code but I’m no developer), so I want Zero Trust Host Access.
So let’s see what this quickstart can do for me!
Wow. OK. There’s a lot of information that seems irrelevant in there for someone trying to just get a network overlay up and running…but…wait, the prerequisite says " You will need an OpenZiti overlay network in place before you can complete this guide. If you do not have an OpenZiti overlay network provisioned yet, follow a quickstart and get a network up and running."
So wait, is my overlay network already running and working now? How do I test? You know what, let me go back and install the Admin Console (Web GUI) so I can visualize what’s going on…
So after that painful process (I didn’t want nodejs installed on that VPS, but whatever), I’m back to “What now?”
So back to that Quickstart services…
Still trying to translate that information to what I really want…just a “vpn like network overlay, like I have with those other solutions”. Oh, at the bottom it says: " Optionally, you may install the ZAC to manage your network with a UI." OK cool, I can use the web GUI to accomplish what I need.
Log into the admin console and I’m right back at “So what now?”
Well, I know I need some identities, and I know I need some kind of tunneller out of my network at home, right?
Cool. Let’s enroll my phone app and get a tunneller stood up on an Ubuntu host running on a NUC.
Done.
Now what? Is my tunneller configured correctly?
I’ve tried to create some services, but don’t fully understand what it is I need to just expose a simple subnet.
I’ve tried service policies? to allow my identities to access those services?
I’m stuck.
For all the push that I see on Reddit for people to use this project, it doesn’t seem very straight forward.
So what am I missing? How is this pushed as an alternative to those other solutions so heavily when none of it is really user-friendly?
Please don’t mistake this as a dig at anyone or the project in general, as I am evaluating all zero trust options for my organization to move to in the future…I just feel like I am missing some important step and understanding. Either the documentation is too good and I can’t follow it, or it’s incomplete. I can’t determine which is which. This isn’t something I come across too often. I have been working with servers and networks for over 23 years. I can’t imagine someone with little experience in networking or server management would be able to get this up and running without issues. So is there a “newbie guide”?