Author SHA1 Message Date
Key Networks 74b551c250 fix-relay-status: jquery 3.4.1 -> 3.6.0 2022-01-08 13:56:03 +08:00
Key Networks f034fa4105 fix-relay-status: Version bump 2022-01-08 13:49:22 +08:00
lideming d0f9a45e8d fix "relay" status not showing 2022-01-08 00:20:13 +08:00
6 changed files with 35 additions and 35 deletions
+22 -12
View File
@@ -10,7 +10,7 @@ Follow us on [![alt @key_networks on Twitter](https://i.imgur.com/wWzX9uB.png)](
Instructions for installing on Linux from RPM or DEB packges are available at [key-networks.com/ztncui](https://key-networks.com/ztncui). Instructions for installing on Linux from RPM or DEB packges are available at [key-networks.com/ztncui](https://key-networks.com/ztncui).
## Docker Container Image ## Docker Container Image
See [https://github.com/key-networks/ztncui-aio](https://github.com/key-networks/ztncui-aio) See [github.com/key-networks/ztncui-containerized](https://github.com/key-networks/ztncui-containerized)
## Getting Started ## Getting Started
@@ -45,9 +45,21 @@ npm install
##### 3. authtoken.secret ##### 3. authtoken.secret
The app needs to know the zerotier-one authtoken.secret. The app needs to know the zerotier-one authtoken.secret. There are two options:
###### Make a .env file ###### A: Allow access to /var/lib/zerotier-one/authtoken.secret
The user running the ztncui app needs read access to authtoken.secret. This can be achieved with:
```shell
sudo usermod -aG zerotier-one username
sudo chmod g+r /var/lib/zerotier-one/authtoken.secret
```
Where:
* username is the user running the ztncui app
Note that you need to log out and in again to apply the new group membership.
###### OR
###### B: Make a .env file
In the root of the ztncui directory, create a `.env` file with the content: In the root of the ztncui directory, create a `.env` file with the content:
``` ```
ZT_TOKEN=######################## ZT_TOKEN=########################
@@ -55,19 +67,17 @@ ZT_TOKEN=########################
Where: Where:
* ######################## is the token string. * ######################## is the token string.
After all edits to the `.env file` (see other options below), make the `.env` readable by the user running ztncui only: You can also specify in the `.env` file a different address for the zerotier-one API (which defaults to localhost:9993):
```shell
chmod 400 .env
chown ztncui.ztncui .env
```
##### 4. Zerotier-one API port
You can specify in the `.env` file a different address for the zerotier-one API (which defaults to localhost:9993):
``` ```
ZT_ADDR=localhost:9995 ZT_ADDR=localhost:9995
``` ```
Make `.env` readable by the user running ztncui only:
```shell
chmod 600 .env
```
The `.env` file should make it easier to run ztncui on a non-Linux platform.
##### 4. Run in production mode ##### 4. Run in production mode
To run the server in production mode, add the following to the `.env` file (see 3B above): To run the server in production mode, add the following to the `.env` file (see 3B above):
-8
View File
@@ -1,8 +0,0 @@
getent passwd ztncui || useradd --system --home-dir /opt/key-networks/ztncui --shell /bin/false ztncui
if [ $(getent group zerotier-one) ]; then
echo "Adding user ztncui to group zerotier-one..."
usermod -a -G zerotier-one ztncui
chmod g+r /var/lib/zerotier-one/authtoken.secret
else
echo "Could not add user ztncui to group zerotier-one... is zerotier-one installed?"
fi
+1 -1
View File
@@ -4,7 +4,7 @@
], ],
"cflags+": ["-Wno-cast-function-type"], "cflags+": ["-Wno-cast-function-type"],
"include_dirs+": ["<!(node -e \"require('nan')\")"], "include_dirs+": ["<!(node -e \"require('nan')\")"],
+ "libraries": ["/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.a"], + "libraries": ["/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a"],
"dependencies": ["libargon2"], "dependencies": ["libargon2"],
"configurations": { "configurations": {
"Debug": { "Debug": {
+1 -1
View File
@@ -26,7 +26,7 @@ BINDINGGYP='node_modules/argon2/binding.gyp'
NODE_VER='v16' NODE_VER='v16'
if [ ! -f /usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.a ]; then if [ ! -f /usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a ]; then
echo "You must install libstdc++-static" echo "You must install libstdc++-static"
exit 1 exit 1
fi fi
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "ztncui", "name": "ztncui",
"version": "0.8.14", "version": "0.8.7",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node ./bin/www", "start": "node ./bin/www",
@@ -19,7 +19,7 @@
"got": "^7.1.0", "got": "^7.1.0",
"helmet": "^3.23.0", "helmet": "^3.23.0",
"ip-address": "^5.8.9", "ip-address": "^5.8.9",
"jquery": "^3.6.1", "jquery": "~3.6.0",
"morgan": "~1.9.1", "morgan": "~1.9.1",
"node-persist": "^2.1.0", "node-persist": "^2.1.0",
"pug": "^3.0.2", "pug": "^3.0.2",
+9 -11
View File
@@ -1,6 +1,6 @@
//- //-
ztncui - ZeroTier network controller UI ztncui - ZeroTier network controller UI
Copyright (C) 2017-2023 Key Networks (https://key-networks.com) Copyright (C) 2017-2021 Key Networks (https://key-networks.com)
Licensed under GPLv3 - see LICENSE for details. Licensed under GPLv3 - see LICENSE for details.
extends network_layout extends network_layout
@@ -121,7 +121,7 @@ block net_content
a(href=nwurl + '/member/' + member.id + '/ipAssignments') a(href=nwurl + '/member/' + member.id + '/ipAssignments')
| IP assignment | IP assignment
td td
if (peer && peer.latency != -1 && peer.versionMajor != -1) if (peer && (peer.latency != -1 || peer.versionMajor != -1))
if (peer.latency != -1) if (peer.latency != -1)
span(style='color: green;') span(style='color: green;')
| ONLINE (v#{peer.version}) | ONLINE (v#{peer.version})
@@ -135,15 +135,13 @@ block net_content
td td
if (peer) if (peer)
each path in peer.paths each path in peer.paths
if (path.preferred == true) - const [ip, port] = path.address.split('/');
- const [ip, port] = path.address.split('/'); = ip
= ip span(style='color: gray;') /#{port}
span(style='color: gray;') /#{port} = ' '
= ' ' if (peer.latency != -1)
if (peer.latency != -1) br
br | (#{peer.latency} ms)
| (#{peer.latency} ms)
- break
else else
.alert.alert-info .alert.alert-info
strong There are no members on this network - invite users to join #{network.nwid} strong There are no members on this network - invite users to join #{network.nwid}