Zwave JS UI Server Build and upgrade without docker

These instructions assume that you know how to install and navigate your OS on your device.

Install Raspberry Raspbian with desktop either for the raspberry pi or desktop PC depending on your hardware.

Initial setup of Raspberry Raspbian is easier with monitor keyboard and mouse hooked up local to your device.
Enable SSH in configuration, once you have enabled SSH then remote configuring is preferred for below instructions.
You can copy and paste below commands into the terminal, these instructions assume you have knowledge on the ability to SSH into your device.
Copy and paste is the easiest, and PuTTY allows right click paste.
These steps use the default user of pi, so if using different then what is default make changes as needed.

(Note some stuff will not work fully until all the steps have been done IE shared folders won’t connect until that directory is made.)

This instruction will do the following:

  1. Will allow network shares of certain folders for editing and backing up your configuration of files and access to root directory.
    ((WARNING MESSING AROUND IN ROOT DIR CAN BREAK YOUR INSTALL))

  2. Will install Zwave-JS UI server onto your device.

  3. Will allow Zwave-JS Server to restart after a reboot.

“BELOW IS LINKS TO EITHER X86-64 INSTALL OR ARM INSTALL”

For X86-64 platforms select these links. (IE Desktop PC)

X86-64 Platform Install Link

X86-64 Platform Upgrade Link

For ARM platforms select these links. (IE Raspberry PI)

ARM Platform Install Link

ARM Platform Upgrade Link

Uhm, what does installing Samba have to do with running the zwave-js server ?

if you don’t want file sharing skip those steps

Choose your Platform carefully

Well, if you’re writing a guide about installing the zwave js server, then it should do that, not install other random stuff. I mean don’t get me wrong, it’s great to have a guide for the much less popular (but in my opinion much better) Docker-less install. But you should focus on the part of actually installing zwave-js and leave unrelated things out. Just my 2 Cents of course :slightly_smiling_face:

A service works well for that.

having access to files over the network for me is important

Running as a service is convenient

Typical basic structure looks like this, similar to what you had:

[Unit]
Description=ZWave-JS Server
After=multi-user.target

[Service]
Type=idle
ExecStart=/your/executable/or/bash/script/here

[Install]
WantedBy=multi-user.target

You might want to adapt things like service type or target if you need to start it in a specific order. Depending on how you manage your users and permissions, you might also have to change the invoking user or group.

not quite the configuration

Also note that the prepackaged binary your script above downloads will only work on x86-64 platforms. It will not work on ARM based systems like the Raspberry Pi, ODroid, etc.

Is there a specific reason you are using the Docker-less install method ? I think it might be easier for you to go with either the Docker only or the Supervised install method. If you use the official addon, that will take care of things like auto start for you.

Hopefully this helps others that rather not use docker

ARM and x86-64 has different service starts

You’re trying to run an x86-64 binary on a Pi.

I am running a VM on proxmox

the Zwave server I can start manually but it will not start as a service

What does the log say ?

and where would the log be?

Well you said the service failed to start the server, so the service logs.

journalctl -u your.service

ok I am done for the night will look into this more tomorrow

Hi all, per chance is there a repository compiled for arm/raspberry pi for this? Trying to avoid docker as my pi is running other stuff and really trying to avoid anything sapping performance performance

I found this alternative guide https://zwave-js.github.io/node-zwave-js/#/development/installing-from-github and followed it. Zwave-JS installs yet I cant seem to start the package: npm start throws an error:
npm ERR! missing script: start

Any idea what I’m doing wrong?