In some case, you have to build your own controller without any connection to public planets. I have built an container based zerotier controller with zero-ui web interface. You can clone github.com/sbilly/docker-zerotier-controller, modify config/planets.json
in the repo, then build you own private zerotier controller.
1. Customize controller planets settings
Modify patch/planets.json as you needed, then build the docker image.
{
"planets": [
{
"Location": "Somewhere", // Where this planet located
"Identity": "a4de2130c2:0:ab5257bb05cd2fb8044fe26483f6d27b57124ca7b350fb3e0f07d405c68c4416094dbc836bf62ed483072501aa3384dff3c74ac50050c1bfbb1dc657001ef6a1", // The planet's public key
"Endpoints": ["127.0.0.1/9993"] // The list of endpoints in 'ip/port' format. IPv6 is supportted
}
]
}
2. Build docker image
Build docker image in the repo.
docker build --force-rm . -t sbilly/zerotier-controller:latest
3. Run you own controller
You can run your own controller. Here are some examples.
# Run with default settings
docker run --rm -ti -p 4000:4000 -p 9993:9993 -p 9993:9993/udp sbilly/zerotier-controller:latest
# Run with custom envirments settings
docker run --rm -ti -e ZU_SECURE_HEADERS=false -e ZU_CONTROLLER_ENDPOINT=http://127.0.0.1:9993/ -e ZU_DEFAULT_USERNAME=admin -e ZU_DEFAULT_PASSWORD=zero-ui -p 4000:4000 -p 3000:3000 -p 9993:9993 -p 9993:9993/udp sbilly/zerotier-controller:latest
# Run with docker volumes
docker run --rm -ti -v `pwd`/config/identity.public:/app/config/identity.public -v `pwd`/config/identity.secret:/app/config/identity.secret -v `pwd`/config/authtoken.secret:/app/config/authtoken.secret -p 3000:3000 -p 4000:4000 -p 9993:9993 -p 9993:9993/udp sbilly/zerotier-controller:latest
- The default username/password (
admin
/zero-ui
) is defined byZU_DEFAULT_USERNAME
andZU_DEFAULT_PASSWORD
. - The environment variable
ZT_PRIMARY_PORT
is ZeroTierOne’sprimaryPort
inlocal.conf
. - Other environment variables please check zero-ui