Create Ziti Admin Console problem

Hi everyone:

I am new using Openziti.
When I create ziti admin console and run following code, it shows some errors.
Could could please share some idea to solve it?

Thank you very much.

ln -s “${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_HOSTNAME}-intermediate/certs/${ZITI_EDGE_CONTROLLER_HOSTNAME}-server.chain.pem” “${ZITI_HOME}/ziti-console/server.chain.pem”
ln -s “${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_HOSTNAME}-intermediate/keys/${ZITI_EDGE_CONTROLLER_HOSTNAME}-server.key” “${ZITI_HOME}/ziti-console/server.key”
ln: failed to create symbolic link ‘/home/zhao2/.ziti/quickstart/zhao2/ziti-console/server.chain.pem’: No such file or directory
ln: failed to create symbolic link ‘/home/zhao2/.ziti/quickstart/zhao2/ziti-console/server.key’: No such file or directory

Hi @Nick, welcome to the forum and OpenZiti.

That looks to me like the quickstart didn’t succeed properly. Could you capture the output to a file and post it here or send it to Clint at OpenZiti.org and I’ll take a look.

Looks to me like maybe the controller didn’t come online, or some other problem during the quickstart running.

zhao2@zhao2:~$ source /dev/stdin <<< "$(wget -qO- https://get.openziti.io/quick/ziti-cli-functions.sh)"; expressInstall

                      _   _     _
                ____ (_) | |_  (_)
               |_  / | | | __| | |
                / /  | | | |_  | |
               /___| |_|  \__| |_|

This script will make it trivial to setup a very simple environment locally which will allow you to start
learning ziti. This environment is suitable for development work only and is not a decent representation of
a fully redundant production-caliber network.

Please note that this script will write files to your home directory into a directory named .ziti.
For you this location will be: /home/zhao2/.ziti/quickstart

Prerequisites confirmed
Let's get started creating your local development network!

--- It looks like you've run an express install in this shell already. ---
Would you like to clear existing Ziti variables and continue (y/N)? y

Clearing existing Ziti variables and continuing with express install
ERROR: you can only stop a router process that was started with startRouter
ERROR: you can only stop a controller process that was started with startController

___________ ^
___ ___ ||| ___ ___ ___ ___ ___ | __ ,----\
| | | |||| | | | | | | | | | | | | |
\
|
| |
|||| |
| |
| |
| | O | O | | | | \
||| ===== EXPRESS ==== |
|
| | |
| )
|||
|____/
||| /--------
-----------'''---------------------------------------'

******** Setting Up Environment ********
using default ZITI_HOME: /home/zhao2/.ziti/quickstart/zhao2
ZITI HOME SET TO: /home/zhao2/.ziti/quickstart/zhao2
ZITI_BINARIES_VERSION: v0.27.2
Downloading https://github.com/openziti/ziti/releases/download/v0.27.2/ziti-linux-amd64-0.27.2.tar.gz to /home/zhao2/.ziti/quickstart/zhao2/ziti-bin/ziti-linux-amd64-0.27.2.tar.gz
UNZIPPING /home/zhao2/.ziti/quickstart/zhao2/ziti-bin/ziti-linux-amd64-0.27.2.tar.gz into: /home/zhao2/.ziti/quickstart/zhao2/ziti-bin/ziti-v0.27.2
Marking executables at /home/zhao2/.ziti/quickstart/zhao2/ziti-bin/ziti-v0.27.2 executable
Generating new network with name: zhao2
ZITI_NETWORK set to: zhao2
Do you want to keep the generated admin password 'qWg8MwCBrEMPNFBbdDtRTN6kP2ch_xW-'? (Y/n) Y
INFO: using ZITI_PWD=qWg8MwCBrEMPNFBbdDtRTN6kP2ch_xW-
env file written to: /home/zhao2/.ziti/quickstart/zhao2/zhao2.env
environment file sourced from: /home/zhao2/.ziti/quickstart/zhao2/zhao2.env
Checking if Controller's port (6262) is available
Checking if Edge Router's port (3022) is available
Checking if Edge Controller's port (1280) is available
Checking if Controller Management Plane's port (10000) is available

******** Setting Up Public Key Infrastructure ********
Generating PKI
Creating CA: zhao2-root-ca
Success

Creating CA: zhao2-root-ca
key exists

Creating CA: zhao2-signing-root-ca
Success

Creating intermediate: zhao2-root-ca zhao2-intermediate 1
Using CA name: zhao2-root-ca
Success

Creating intermediate: zhao2-root-ca zhao2-intermediate 1
key exists

Creating intermediate: zhao2-signing-root-ca zhao2-signing-intermediate_spurious_intermediate 2
Using CA name: zhao2-signing-root-ca
Success

Creating intermediate: zhao2-signing-intermediate_spurious_intermediate zhao2-signing-intermediate 1
Using CA name: zhao2-signing-intermediate_spurious_intermediate
Success

Creating server cert from ca: zhao2-intermediate for zhao2,localhost,zhao2,zhao2 / 127.0.0.1
Using CA name: zhao2-intermediate
Success
Creating client cert from ca: zhao2-intermediate for zhao2,localhost,zhao2,zhao2
Using CA name: zhao2-intermediate
Success

Creating server cert from ca: zhao2-intermediate for zhao2,localhost,zhao2,zhao2
key exists
Creating client cert from ca: zhao2-intermediate for zhao2,localhost,zhao2,zhao2
key exists

******** Setting Up Controller ********
wrote CA file to: /home/zhao2/.ziti/quickstart/zhao2/pki/cas.pem
This will overwrite the existing file, continue (y/N)? y
Controller configuration file written to: /home/zhao2/.ziti/quickstart/zhao2/zhao2.yaml
ziti-controller initialized. see /home/zhao2/.ziti/quickstart/zhao2/zhao2-init.log for details
[1] 5981
ziti-controller started as process id: 5981. log located at: /home/zhao2/.ziti/quickstart/zhao2/zhao2.log
waiting for the controller to come online to allow the edge router to enroll
waiting for https://zhao2:1280
Token: 27d9c130-135a-4d70-83a0-4c452cff428d
Saving identity 'default' to /home/zhao2/.ziti/quickstart/zhao2/ziti-cli.json

******** Setting Up Edge Routers ********
---------- Creating an edge router policy allowing all identities to connect to routers with a #public attribute
---------- Creating a service edge router policy allowing all services to use #public edge routers
USING ZITI_EDGE_ROUTER_RAWNAME: zhao2-edge-router
Creating server cert from ca: zhao2-intermediate for zhao2-edge-router,localhost,127.0.0.1,zhao2 / 127.0.0.1
Using CA name: zhao2-intermediate
Success
Creating client cert from ca: zhao2-intermediate for zhao2-edge-router,localhost,127.0.0.1,zhao2
Using CA name: zhao2-intermediate
Success

edge router configuration file written to: /home/zhao2/.ziti/quickstart/zhao2/zhao2-edge-router.yaml
---------- Creating edge-router zhao2-edge-router....
---------- Enrolling edge-router zhao2-edge-router....

Controller stopped.
Edge Router enrolled. Controller stopped.

Congratulations. Express setup complete!
Start your Ziti Controller by running the function: startController
Start your Ziti Edge Router by running : startRouter

zhao2@zhao2:~$ startController
[2] 6143
ziti-controller started as process id: 6143. log located at: /home/zhao2/.ziti/quickstart/zhao2/zhao2.log
[1] Done "${ZITI_BIN_DIR-}/ziti-controller" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" &> "${log_file}"
zhao2@zhao2:~$ $ echo $ZITI_EDGE_CTRL_ADVERTISED
My-Mac-mini.local.domain:1280
$: command not found
My-Mac-mini.local.domain:1280: command not found
zhao2@zhao2:~$ $ echo $ZITI_EDGE_CTRL_ADVERTISED
$: command not found
zhao2@zhao2:~$ echo $ZITI_EDGE_CTRL_ADVERTISED
zhao2:1280
zhao2@zhao2:~$ startRouter
[3] 6191
Express Edge Router started as process id: 6191. log located at: /home/zhao2/.ziti/quickstart/zhao2/zhao2-edge-router.log
zhao2@zhao2:~$ echo $ZITI_EDGE_CTRL_ADVERTISED
zhao2:1280
zhao2@zhao2:~$ stopRouter
stopController
INFO: stopped router
Controller stopped.
zhao2@zhao2:~$ zitiLogin
The connection to the server zhao2:1280 was refused - did you specify the right host or port?
[2]- Done "${ZITI_BIN_DIR-}/ziti-controller" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml" &> "${log_file}"
[3]+ Done "${ZITI_BIN_DIR}/ziti-router" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${log_file}" 2>&1

Does that controller log have any errors in it? It seems like the express install succeeded, but the controller isn’t starting

GNU nano 6.2 zhao2.log
“RerouteFraction”: 0.02,
“RerouteCap”: 4,
“MinCostDelta”: 15
},
“RouteTimeout”: 10000000000,
“CreateCircuitRetries”: 2,
“CtrlChanLatencyInterval”: 10000000000,
“PendingLinkTimeout”: 10000000000,
“MinRouterCost”: 10,
“RouterConnectChurnLimit”: 60000000000,
“InitialLinkLatency”: 65000000000,
“MetricsReportInterval”: 60000000000
}
[ 0.856] INFO fabric/controller.(*Controller).showOptions: ctrl = {
“OutQueueSize”: 4,
“MaxQueuedConnects”: 1,
“MaxOutstandingConnects”: 16,
“ConnectTimeout”: 1000000000,
“DelayRxStart”: false,
“WriteTimeout”: 0,
“NewListener”: null,
“AdvertiseAddress”: null
}
[ 1.571] INFO edge/controller/server.NewController: edge controller instance id: cldjfdodo000072elu0vuuepa
[ 1.571] INFO edge/controller/server.(*Controller).Initialize: initializing edge
[ 1.612] INFO storage/boltz.(*migrationManager).Migrate.func1: edge datastore is up to date at version 29
[ 1.649] INFO edge/controller/internal/policy.NewSessionEnforcer: {sessionTimeout=[30m0s] frequency=[5s]} session enforcer co>
[ 1.650] INFO edge/controller/server.(*Controller).Run: starting edge
[ 1.650] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {minWorkers=[1] maxQueueSize=[1] maxWorkers=[16] idleTime=>
[ 1.650] INFO channel/v2.(*UnderlayDispatcher).Run: started
[ 1.652] INFO edge/controller/server.(*Controller).checkEdgeInitialized: edge initialized
[ 1.655] INFO fabric/controller/network.(*Network).Run: started
[ 1.832] INFO xweb/v2.(*Server).Start: starting ApiConfig to listen and serve tls on 0.0.0.0:1280 for server client-managemen>
[ 13.918] INFO ziti/ziti/controller.waitForShutdown: shutting down ziti-controller
[ 13.918] INFO edge/controller/server.(*Controller).Shutdown: edge controller: shutting down…
[ 13.919] INFO edge/controller/server.(*Controller).Shutdown: edge controller: stopped
[ 13.919] INFO edge/controller/server.(*Controller).Shutdown: fabric controller: shutting down…
[ 13.919] INFO transport/v2/tls.(*acceptor).acceptLoop [classic/tls:0.0.0.0:6262]: {err=[accept tcp [::]:6262: use of closed n>
[ 13.919] INFO transport/v2/tls.(*acceptor).acceptLoop [classic/tls:0.0.0.0:6262]: exited
[ 13.919] ERROR channel/v2.(*UnderlayDispatcher).Run: {error=[closed]} error accepting connection
[ 13.919] WARNING channel/v2.(*UnderlayDispatcher).Run: exited
[ 13.919] INFO fabric/events.(*Dispatcher).eventLoop: event dispatcher: stopped
[ 13.919] INFO edge/controller/server.(*Controller).Shutdown: fabric controller: stopped
[ 13.919] INFO edge/controller/server.(*Controller).Shutdown: shutdown complete
[ 13.919] INFO fabric/controller/network.(*Network).Run: exited

above content is from:
~$ startRouter
[1] 6718
Express Edge Router started as process id: 6718. log located at: /home/zhao2/.ziti/quickstart/zhao2/zhao2-edge-router.log

AND,

I found [ 13.919] ERROR channel/v2.(*UnderlayDispatcher).Run: {error=[closed]} error accepting connection
[ 13.919] WARNING channel/v2.(*UnderlayDispatcher).Run: exited

What operating system are you running?

What happens if you run this command in the shell you just ran the expressInstall from? Does the controller stay running until you ctrl-c it?

"${ZITI_BIN_DIR-}/ziti-controller" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml"

I am using Ubuntu 22.04.1 LTS

In another log file it shows:

there is a warning:

[ 0.756] WARNING edge/router/internal/edgerouter.(*Config).LoadConfigFromMap: Invalid heartbeat interval [0] (min: 60, max: 10),>

GNU nano 6.2 zhao2-edge-router.log
[ 0.756] INFO ziti/ziti/router.run: {build-date=[2023-01-04T20:13:07Z] revision=[7de87562b20d] configFile=[/home/zhao2/.ziti/>
[ 0.756] INFO fabric/router/forwarder.(*Faulter).run: started
[ 0.756] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {minWorkers=[0] maxWorkers=[32] idleTime=[30s] maxQueueSiz>
[ 0.756] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {minWorkers=[0] maxQueueSize=[1000] maxWorkers=[128] idleT>
[ 0.756] INFO fabric/router/forwarder.(*Scanner).run: started
[ 0.756] WARNING edge/router/internal/edgerouter.(*Config).LoadConfigFromMap: Invalid heartbeat interval [0] (min: 60, max: 10),>
[ 0.757] INFO fabric/router.(*Router).showOptions: ctrl = {“OutQueueSize”:4,“MaxQueuedConnects”:1,“MaxOutstandingConnects”:16>
[ 0.757] INFO fabric/router.(*Router).showOptions: metrics = {“ReportInterval”:60000000000,“MessageQueueSize”:10}
[ 0.757] INFO fabric/router.(*Router).initializeHealthChecks: starting health check with ctrl ping initially after 15s, then >
[ 0.757] INFO fabric/router.(*Router).startXlinkDialers: started Xlink dialer with binding [transport]
[ 0.757] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {maxWorkers=[16] poolType=[pool.listener.link] minWorkers=>
[ 0.758] INFO fabric/router.(*Router).startXlinkListeners: started Xlink listener with binding [transport] advertising [tls:z>
[ 0.758] INFO edge/router/xgress_edge.(*listener).Listen: {address=[tls:0.0.0.0:3022]} starting channel listener
[ 0.758] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {poolType=[pool.listener.xgress_edge] minWorkers=[1] maxWo>
[ 0.758] INFO fabric/router.(*Router).startXgressListeners: created xgress listener [edge] at [tls:0.0.0.0:3022]
[ 0.758] INFO fabric/router.(*Router).startXgressListeners: created xgress listener [tunnel] at
[ 0.758] INFO edge/router/xgress_edge.(*Acceptor).Run: starting
[ 0.759] FATAL ziti/ziti/router.run: {error=[error connecting ctrl (dial tcp 127.0.1.1:6262: connect: connection refused)]} er>

Yes. That router input isn’t relevant yet. It’s just stating the controller isn’t able to be connected to.

Yes, I just run the code, and it will not stop, them I have to press ctrl + c to stop it.
The following is the output:

zhao2@zhao2:~$ “${ZITI_BIN_DIR-}/ziti-controller” run “${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml”
[ 0.800] INFO ziti/ziti/controller.run: {arch=[amd64] build-date=[2023-01-04T20:13:07Z] version=[v0.27.2] go-version=[go1.19.4] revision=[7de87562b20d] nodeId=[zhao2] os=[linux]} starting ziti-controller
[ 0.801] INFO fabric/events.(*Dispatcher).eventLoop: event dispatcher: started
[ 0.801] INFO storage/boltz.(*migrationManager).Migrate.func1: fabric datastore is up to date at version 5
[ 0.837] INFO fabric/controller/network.(*Network).showOptions: network = {
“CycleSeconds”: 60,
“Smart”: {
“RerouteFraction”: 0.02,
“RerouteCap”: 4,
“MinCostDelta”: 15
},
“RouteTimeout”: 10000000000,
“CreateCircuitRetries”: 2,
“CtrlChanLatencyInterval”: 10000000000,
“PendingLinkTimeout”: 10000000000,
“MinRouterCost”: 10,
“RouterConnectChurnLimit”: 60000000000,
“InitialLinkLatency”: 65000000000,
“MetricsReportInterval”: 60000000000
}
[ 0.837] INFO fabric/controller.(*Controller).showOptions: ctrl = {
“OutQueueSize”: 4,
“MaxQueuedConnects”: 1,
“MaxOutstandingConnects”: 16,
“ConnectTimeout”: 1000000000,
“DelayRxStart”: false,
“WriteTimeout”: 0,
“NewListener”: null,
“AdvertiseAddress”: null
}
[ 1.493] INFO edge/controller/server.NewController: edge controller instance id: cldjhk82b0000noelmnmz2pv4
[ 1.493] INFO edge/controller/server.(*Controller).Initialize: initializing edge
[ 1.544] INFO storage/boltz.(*migrationManager).Migrate.func1: edge datastore is up to date at version 29
[ 1.582] INFO edge/controller/internal/policy.NewSessionEnforcer: {sessionTimeout=[30m0s] frequency=[5s]} session enforcer configured
[ 1.582] INFO edge/controller/server.(*Controller).Run: starting edge
[ 1.582] INFO fabric/metrics.GoroutinesPoolMetricsConfigF.func1.1: {idleTime=[10s] poolType=[pool.listener.ctrl] minWorkers=[1] maxQueueSize=[1] maxWorkers=[16]} starting goroutine pool
[ 1.583] INFO channel/v2.(*UnderlayDispatcher).Run: started
[ 1.588] INFO fabric/controller/network.(*Network).Run: started
[ 1.591] INFO edge/controller/server.(*Controller).checkEdgeInitialized: edge initialized
[ 1.714] INFO xweb/v2.(*Server).Start: starting ApiConfig to listen and serve tls on 0.0.0.0:1280 for server client-management with APIs: [edge-management edge-client fabric]
^C[ 43.040] INFO ziti/ziti/controller.waitForShutdown: shutting down ziti-controller
[ 43.040] INFO edge/controller/server.(*Controller).Shutdown: edge controller: shutting down…
[ 43.040] ERROR agent.(*handler).listen: {error=[accept unix /tmp/gops-agent.12516.sock: use of closed network connection]} error accepting gops connection, closing gops listener
[ 43.040] ERROR agent.(*handler).listen.func1: {error=[close unix /tmp/gops-agent.12516.sock: use of closed network connection]} error closing gops listener
[ 43.040] INFO edge/controller/server.(*Controller).Shutdown: edge controller: stopped
[ 43.040] INFO edge/controller/server.(*Controller).Shutdown: fabric controller: shutting down…
[ 43.040] INFO transport/v2/tls.(*acceptor).acceptLoop [classic/tls:0.0.0.0:6262]: {err=[accept tcp [::]:6262: use of closed network connection]} listener closed, exiting
[ 43.040] INFO transport/v2/tls.(*acceptor).acceptLoop [classic/tls:0.0.0.0:6262]: exited
[ 43.040] ERROR channel/v2.(*UnderlayDispatcher).Run: {error=[closed]} error accepting connection
[ 43.040] WARNING channel/v2.(*UnderlayDispatcher).Run: exited
[ 43.040] INFO fabric/events.(*Dispatcher).eventLoop: event dispatcher: stopped
[ 43.040] INFO fabric/controller/network.(*Network).Run: exited
zhao2@zhao2:~$

That’s really strange then… That tells me everything was setup properly and it’s running correctly. I’ve not seen the expressInstall fail like this yet.

Will you, delete the .ziti folder in the users home directory, close the shell (it’s important to close the shell), open a new shell, run the expressInstall and report what happens? It should go through the full, clean, expressInstall again. After it’s complete, run the startController function and see if it succeeds.

Hi:

It still shows same problem, which is:

zhao@zhao:~$ zitiLogin
The connection to the server zhao:1280 was refused - did you specify the right host or port?
[2]+ Done “${ZITI_BIN_DIR-}/ziti-controller” run “${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_RAWNAME}.yaml” &> “${log_file}”

I have checked some possible problems:

  1. I use ufw to open basically all ports:

root@zhao:~# ufw status
Status: active

To Action From


1:65535/tcp ALLOW Anywhere
1:65535/udp ALLOW Anywhere
1:65535/tcp (v6) ALLOW Anywhere (v6)
1:65535/udp (v6) ALLOW Anywhere (v6)

root@zhao:~#

  1. I also checked /etc/hosts, and it’s content is:

127.0.0.1 localhost
127.0.1.1 zhao

The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

  1. I also reinstalled the desktop’s OS to Ubuntu 20.04.5 LTS, and reinstall openZITI.

Is there any idea to solve this?

Hi:

I just got a little progress.

I changed a desktop and it works for “zitiLogin”, the current desktop’s OS is Debian GNU/Linux 11 bullseye (x86-64), and the current desktop is a new machine purchased within three years.

The desktop I used yesterday is very old, which is at least 10 years old with second gen Intel Core CPU.

However, I just wondering, is OpenZiti installation and using related to hardware AND the different Linux distributions (for example Ubuntu and Debian )?

If you want to know, I can share all the hardware configuration with you.

Best regards

Hi @Nick. Glad to see you have a little progress. We only officially support operating systems which are still receiving security updates. The age of the computer shouldn’t be the problem, but the OS on it might be.

I just wrote up a bunch of steps for another user. They might be helpful for you. They were having issues with RedHat working.

Could you take a look at the video I recorded and the steps as I perform them and maybe see how that works for you?

Find that post, video, and steps here: Admin Console not connecting to Edge Controller - #41 by TheLumberjack

Thank you very much sir.

Another problem:

when I run following code:

klabzhao@klabzhao:~$ “${ZITI_BIN_DIR-}/ziti” edge tutorial first-service

$ ziti edge login --ignore-config
Enter controller host[:port] (default localhost:1280):
Untrusted certificate authority retrieved from server
Verified that server supplied certificates are trusted by server
Server supplied 7 certificates
Trust server provided certificate authority [Y/N]: Y
Server certificate chain written to /home/klabzhao/.ziti/quickstart/klabzhao/certs/localhost
Enter username: klabzhao
Enter password:
error: unable to authenticate to https://localhost:1280/edge/management/v1. Status code: 401 Unauthorized, Server returned: {
“error”: {
“code”: “INVALID_AUTH”,
“message”: “The authentication request failed”,
“requestId”: “0pQKdN-bE”
},
“meta”: {
“apiEnrollmentVersion”: “0.0.1”,
“apiVersion”: “0.0.1”
}
}
operation failed with err: exit status 1. Retry [Y/N] (default Y):

I am sure the password is correct.

Any idea ?

If you followed the instructions from the other post, your password would be “myziti”, right? It sure looks like the password is incorrect.

I would start by trying to specify the user and password on the command line. for example:

ziti edge login localhost:1280 -u admin -p myziti -y

Hi:

Thank you very much.
Now, I have finished the “local-no docker” express installation, And I am installing the ziti admin console with GUI.
However, I am facing following problem and error message:
In short, now the ziti-console.service cannot be activated by command “sudo systemctl status ziti-console --lines=0 --no-pager”.
AND in brower, no matter I input https://localhost:8443/ or https://klabzhao:8443/, it shows “We can’t connect to the server at ${ziti_edge_controller_hostname}.”
Now I am using “Debian GNU/Linux 11 bullseye (x86-64)”
Could please share some idea to solve this?
Thank you

klabzhao@klabzhao:~$ cd “${ZITI_HOME}/ziti-console”
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘io.netfoundry.zac@2.5.7’,
npm WARN EBADENGINE required: { node: ‘>=18.13.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@apidevtools/json-schema-ref-parser@10.0.1’,
npm WARN EBADENGINE required: { node: ‘>= 17’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘helmet@6.0.1’,
npm WARN EBADENGINE required: { node: ‘>=14.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm@9.4.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/arborist@6.2.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/config@6.1.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/disparity-colors@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/fs@3.1.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/git@4.0.3’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/installed-package-contents@2.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/map-workspaces@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/metavuln-calculator@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/node-gyp@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/package-json@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/promise-spawn@6.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/query@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘@npmcli/run-script@6.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘abbrev@2.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘are-we-there-yet@4.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘bin-links@4.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘cacache@17.0.3’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘cmd-shim@6.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘gauge@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘hosted-git-info@6.1.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘ignore-walk@6.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘init-package-json@4.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘json-parse-even-better-errors@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmaccess@7.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmdiff@5.0.8’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmexec@5.0.8’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmfund@4.0.8’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmhook@9.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmorg@5.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmpack@5.0.8’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmpublish@7.0.6’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmsearch@6.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmteam@5.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘libnpmversion@4.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘make-fetch-happen@11.0.2’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘minipass-fetch@3.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘nopt@7.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘normalize-package-data@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-audit-report@4.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-bundled@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-install-checks@6.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-normalize-package-bin@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-package-arg@10.1.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-packlist@7.0.4’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-pick-manifest@8.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-profile@7.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npm-registry-fetch@14.0.3’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘npmlog@7.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘pacote@15.0.7’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘parse-conflict-json@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘proc-log@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘read-cmd-shim@4.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘read-package-json@6.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘read-package-json-fast@3.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘ssri@10.0.1’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘treeverse@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘unique-filename@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘unique-slug@4.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘validate-npm-package-name@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘which@3.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘write-file-atomic@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }
npm WARN EBADENGINE }

removed 2 packages, and audited 373 packages in 847ms

22 packages are looking for funding
run npm fund for details

found 0 vulnerabilities
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ ln -s “${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_HOSTNAME}-intermediate/certs/${ZITI_EDGE_CONTROLLER_HOSTNAME}-server.chain.pem” “${ZITI_HOME}/ziti-console/server.chain.pem”
ln: failed to create symbolic link ‘/home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.chain.pem’: File exists
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ ln -s “${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_HOSTNAME}-intermediate/keys/${ZITI_EDGE_CONTROLLER_HOSTNAME}-server.key” “${ZITI_HOME}/ziti-console/server.key”
ln: failed to create symbolic link ‘/home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.key’: File exists
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ createZacSystemdFile
sudo cp “${ZITI_HOME}/ziti-console.service” /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable --now ziti-console
This will overwrite the existing file, continue (y/N)? y
ziti-console systemd file written to: /home/klabzhao/.ziti/quickstart/klabzhao/ziti-console.service
[sudo] password for klabzhao:
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ node “${ZITI_HOME}/ziti-console/server.js”
file:///home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.js:36
ziti = await loadModule(‘@openziti/ziti-sdk-nodejs’)
^^^^^

SyntaxError: Unexpected reserved word
at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
at async link (internal/modules/esm/module_job.js:42:21)
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ sudo systemctl status ziti-console --lines=0 --no-pager
● ziti-console.service - Ziti-Console
Loaded: loaded (/etc/systemd/system/ziti-console.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2023-02-01 10:06:37 PST; 1s ago
Process: 2391627 ExecStart=/usr/bin/node /home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.js (code=exited, status=1/FAILURE)
Main PID: 2391627 (code=exited, status=1/FAILURE)
CPU: 60ms
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ sudo systemctl status ziti-console --lines=0 --no-pager
● ziti-console.service - Ziti-Console
Loaded: loaded (/etc/systemd/system/ziti-console.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2023-02-01 10:06:49 PST; 1s ago
Process: 2391686 ExecStart=/usr/bin/node /home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.js (code=exited, status=1/FAILURE)
Main PID: 2391686 (code=exited, status=1/FAILURE)
CPU: 62ms
klabzhao@klabzhao:~/.ziti/quickstart/klabzhao/ziti-console$ node “${ZITI_HOME}/ziti-console/server.js”
Initializing TLS
TLS initialized on port: 8443
Ziti Server running on port 1408
file:///home/klabzhao/.ziti/quickstart/klabzhao/ziti-console/server.js:36
ziti = await loadModule(‘@openziti/ziti-sdk-nodejs’)
^^^^^

SyntaxError: Unexpected reserved word
at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
at async link (internal/modules/esm/module_job.js:42:21)
bash: Initializing: command not found
bash: TLS: command not found
bash: Ziti: command not found

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘write-file-atomic@5.0.0’,
npm WARN EBADENGINE required: { node: ‘^14.17.0 || ^16.13.0 || >=18.0.0’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘7.5.2’ }

make sure your node is 16+ and npm is 8+ and i bet it’ll work. you can run

npm version

to see what you have (it looks like node 12 and npm 7)