You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Key Networks c7e7dcaf72
Initial commit
7 years ago
bin Initial commit 7 years ago
controllers Initial commit 7 years ago
etc Initial commit 7 years ago
public Initial commit 7 years ago
routes Initial commit 7 years ago
views Initial commit 7 years ago
.gitignore Initial commit 7 years ago
LICENSE Initial commit 7 years ago
README.md Initial commit 7 years ago
app.js Initial commit 7 years ago
package-lock.json Initial commit 7 years ago
package.json Initial commit 7 years ago

README.md

ztncui - ZeroTier network controller UI

ztncui is a web UI for a standalone ZeroTier network controller.

Getting Started

Prerequisites

ztncui is a node.js Express application that requires node.js v8 or higher.

It requires ZeroTier One to be installed on the same machine. This will run as the network controller to establish ZeroTier networks.

ztncui has been developed on a Linux platform and expects the ZT home directory to be in /var/lib/zerotier-one. It should be easy to modify for other platforms - please feed back if this is required.

Installing

1. Clone the repository on a machine running ZeroTier One:
git clone https://github.com/key-networks/ztncui.git
2. Install the node.js packages:
cd ztncui
npm install
3. Start the app manually:
npm start
4. Test access on http://localhost:3000

If the machine has a GUI and GUI web browser, then use it to access the app, otherwise use a CLI web browser like Lynx or wget or curl:

curl http://localhost:3000

You should see the front page of the app (or the raw HTML with curl).

5. Remote access:

For security reasons (until this app is battle-hardened and has been scrutinized by the ZT community), it currently listens only on the looback interface. It can be reverse proxied by something like Nginx, but it would be best to access over an SSH tunnel at this stage.

SSH tunnel from Linux / Unix / macOS client

An SSH tunnel can be established with:

ssh -f user@network.controller.machine -L 3333:localhost:3000 -N

where:

  • network.controller.machine is the FQDN of the machine running the ZT network controller and ztncui, and
  • user is any user account that you have on that machine.

Once the SSH tunnel has been established, access the ztncui web interface in a web browser on your local machine at: http://localhost:3333

SSH tunnel from a Windows machine

On Windows you can install PuTTY

Open PuTTY and configure as follows:

  1. Go to Connection -> SSH -> Tunnels.
  2. Set Source port to 3333
  3. Set Destination to localhost:3000
  4. Click on the Add button.
  5. Go Session in the Category panel on the left.
  6. Set Host Name (or IP address) to the FQDN of the machine running the ZT network controller and ztncui.
  7. Enter a name for the configuration in Saved Sessions and click Save.
  8. Click the Open button and log into the network controller machine.

Once the SSH tunnel has been established, access the ztncui web interface in a web browser on your local machine at: http://localhost:3333

Usage

User accounts

Once you have access to the web UI of ztncui, log in as user admin with password password.

You will be prompted to change the default password.

It's a good idea to create your own username and delete the default admin account. You can do this by clicking on the Users tab and then the Create user tab. Note that you then have to log out and log in as the new user before you can delete the default admin account.

Networks

Click on the Home tab to get to the network controller home page. From there you can click on the Networks tab to see the existing networks configured on the network controller (probably none if you have just set it up).

Create a new network

Click on the Add network tab to create a new ZeroTier network that is controlled by the network controller. Give it a name and click Create Network. You will then be taken back to the Networks page that lists all the networks on the controller.

Delete a network

On the Networks page, click the trash can icon to delete a network. You will be warned that this action cannot be undone. Click the Delete button to confirm the action.

Change network name

On the Networks page, click the name of the network to rename it.

Easy network setup

On the Networks page, click easy setup for the network that you want to auto-configure. Click Generate network address to assign a random network address, or manually enter the network address in CIDR notation. The start and end of the IP assignment pool will be automatically calculated, but these can be manually adjusted. Click Submit to apply the configuration. You should then get a notice that the network setup succeeded.

Note that the easy setup only works for IPv4 at this stage. To set up IPv6, follow the detail link for a network from the Networks page and set up each property manually.

Join devices to the network

Invite users to join the network with:

sudo zerotier-cli join ################

where ################ is the 16-digit ZeroTier network ID.

Get the user to send you their 10-digit ZeroTier address, which they can get by running:

sudo zerotier-cli status

Authorize members on the network

On the Networks page, click members to see the devices which are trying to join the network. Use the ZeroTier address given to you by the user to identify them and name them appropriately under Member name.

Then check the Authorized checkbox to authorize the user on the network.

If the user's device is online and you click the Refresh button, you should see their IP assignment being populated.

Once two or more members are authorized on the network, they should be able to connect to each other via their assigned IP addresses.

Network detail

On the Networks page, click detail to see the detail of a network.

Note that certain properties can be set by clicking on them - e.g.:

  • ipAssignmentPools
  • name
  • routes
  • v4AssignMode
  • v6AssignMode

Note that editing of certain properties, such as rules and tags, has not been implemented yet. Please feed back on your requirements.

Member detail

On the network detail page and on the members page, if you click on the member ID, you will end up on the member detail page.

Certain properties for the member can be set by clicking on them - e.g.:

  • authorized
  • umm... nothing else at this stage - let us know what you need.

Feedback

Please give us your feedback... good, bad or ugly. Constructive criticism is welcomed. Please use the contact form at key-networks.com - Thanks :)

License

The ztncui code is open source code, licensed under the GNU GPLv3, and is free to use on those terms. If you are interested in commercial licensing, please contact us via the contact form at key-networks.com .