Zeus:

Contents

Video

Networking

I decided I don’t want to use NetworkManager, so I instead wrote my own /etc/network/interfaces file (no need for IPv4 on this node, so inet6 auto only):

auto eth0
iface eth0 inet6 auto

Then uninstalled network-managerand reboot. I get an IP based on the EUI64 which is the easiest way to do things and I don’t care about privacy extensions with my little IoT router here.

PBS Backups

I backup everything to Proxmox Backup Server, so I need to install the client to backup this host.

If you’re running on an ARM device you can get deb packages from https://github.com/wofferl/proxmox-backup-arm64

If you are running on x86 you can use Proxmox’s client-only repository. In any case, install PBS from packages.

Here’s my backup script (/etc/systemd/system/backup.service):

[Unit]
Description=Run Backup to Proxmox Backup Server
After=network-online.target

[Service]
#TLS fingerprint if cert is self-signed
Environment=PBS_FINGERPRINT=your_fingerptint
#Your API key here
Environment=PBS_PASSWORD=api_key_here
#Use your user @ realm ! api key name @ hostname : repository
Environment=PBS_REPOSITORY=user@pbs!apikey@localhost:backup
Type=oneshot
#Backup the root fs. This will not backup any other mount points, only the mount point which mounts /
#You can add more pxars if you want more mount points
#--change-detection-mode=metadata is optional, but I prefer it
ExecStart=proxmox-backup-client backup root.pxar:/ --change-detection-mode=metadata

[Install]
WantedBy=default.target

I also have a backup timer (/etc/systemd/system/backup.timer):

[Unit]
Description=Backup System Daily
RefuseManualStart=no
RefuseManualStop=no

[Timer]
#Run 540 seconds after boot for the first time
#OnBootSec=540
#Run at 7pm
OnCalendar=*-*-* 19:00:00
Unit=backup.service

[Install]
WantedBy=timers.target

Then a quick systemctl daemon-reload and sytemctl enable backup.timer is all you need.

Waveshare UPS Monitor

Previous Project Entry Here

I used my code from the last project. Here are the steps to install it:

#Install git to clone repo
sudo apt install git

#Clone repo
git clone https://github.com/apalrd/waveshare_ups_mqtt

#Cd into repo, run install script
cd waveshare_ups_mqtt
./install.sh

#Now edit the yaml (/etc/waveshare_ups.yaml) to add your broker and uname/password

#Then start the service
sudo systemctl start waveshare_ups

ZwaveJS UI

I previously used Snap packages but I really hated them so I am now using the NPN (nodeJS package manager) version combined with a systemd service script. Install:

#Node 22 (ZwaveJS is using 18 I think?
curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh
sudo -E bash nodesource_setup.sh

#Install it from packages
sudo apt install nodejs -y

#Since we used apt here, we can run `apt upgrade -y` to upgrade Node minor versions

#Install zwave js ui
sudo npm install -g zwave-js-ui

#Create directory
mkdir -p /var/zwavejs

Service:

[Unit]
Description=Z-Wave Network Manager
After=network-online.target

[Service]
#ZwaveJS binary
ExecStart=/usr/bin/zwave-js-ui
#Storage location
Environment=STORE_DIR=/var/zwavejs
#Config location
Environment=ZWAVEJS_EXTERNAL_CONFIG=/var/zwavehs/.config-db

[Install]
WantedBy=default.target

Then it’s just a systemctl daemon-reload and systemctl enable --now zwavejs