It appears the licensing changed on the self-hosted controller and it is no longer included in the binaries. So how do you run a self-hosted controller now? I am staying at 1.14.2 until there is a solution.
Same problem here. After upgrading to 1.16, the controller api does not work anymore.
I have the same problem.
From what I can understand, the controller part is now a part of a commercial license, so I doubt there will be a solution for pre-built binaries.
I’ll try to build from source with the ZT_NONFREE=1 tag as explained to see if it works.
I have to be honest: these licensing and packaging changes are going to hurt the community in the long run.
Yes, users can still rely on my.zerotier.com, but that only works if you’re fine with depending on ZeroTier’s hosted infrastructure. The real impact is on those of us who self-host controllers. By removing the controller from official releases and putting it under restrictive terms, you’re cutting off an important part of what made ZeroTier attractive: the ability to run it fully under our own control.
For now, people can stick with older versions or build from source themselves, but over time this creates a hard split: upstream ZeroTier moving forward, and the self-hosting community stuck behind. Instead of strengthening the ecosystem, this risks fragmenting it. Many of us started using ZeroTier because it was open, flexible, and community-friendly, these changes go directly against that spirit. In the end, this won’t just be an inconvenience; it will break the community and push people toward alternatives.
The controller should now be included in all the official binaries. There was a build issue on a few targets that is now fixed. Look for 1.16.0-2 for Debian Linux.
As far as licensing changes go: we have actually liberalized the license for the core engine and agent. The controller hasn’t changed much – it’s still free for non-commercial use.
I think moving the client to MPL is pretty huge personally. It’s going to open the door to a lot of integrations.