I've been having a great time using an Uubntu VM as my ZeroTier controller. I've installed ztncui which provides a nice web UI to manage my ZeroTier network. One unforseen challenge moving from ZeroTier's own controller to my own was that I would no longer have the flow rules engine and instead would need to use their rules syntax. This on it's own isn't that big of a deal, especially since one can simply create a dummy network on ZeroTier's site, configure their flow rules, and then simply copy the rules syntax output. The real challenge was how the rules are stored in a .json config file located within ZeroTier's files, and these are root protected.
To get around this, I've created a very simple bash script. Now, fair warning...this was my first time ever creating something in Bash! You have been warned! That said...it works pretty well! You simply point it to a rules file, point it to your network's .json file, and it will handle the rest.
#!/bin/bash