SmechVisor spk-visor
spk-visor is now retired and fully merged into
the unified spk v2.0 binary. All SmechVisor management operations
— OTA updates, network deploy, and the deploy shim receiver — are now part of
spk. The old spk-visor commands still work as aliases
during the transition period, but all new scripts should use spk directly.
spk-visor binary is no longer maintained separately.
Use spk for everything. The command mapping is shown below.
Command migration table
| Old (spk-visor) | New (spk v2) |
|---|---|
spk-visor entire-system-upgrade | spk system-upgrade |
spk-visor deploy-system-img-copy <code> | spk deploy-system-img-copy <code> |
spk-visor receive-deploy | spk receive-deploy |
spk-visor system-install <pkg> | spk install <pkg> |
spk-visor help | spk help |
spk-visor about | spk about |
spk-visor version | spk version |
Commands (unified spk)
spk system-upgradesmechvisor-daemon and smechvisor-base packages from
GitHub Releases. On SmechVisor, the daemon binary is swapped live (no reboot
required for daemon updates); base system changes flag for reboot.
spk system-upgrade
spk deploy-system-img-copy <code>spk deploy-system-img-copy e13gts2
spk receive-deploy/mnt/target, and reboots.
spk install <pkg>/. Use this to add packages to a
running SmechVisor node without a full system upgrade.
spk install smechvisor-daemon
spk install firmware
spk help / spk about / spk versionOTA Updates
SmechVisor is designed for zero-downtime server operation.
spk-visor entire-system-upgrade handles two classes of update
differently:
| Package | Update method | Reboot needed? |
|---|---|---|
smechvisor-daemon |
Stop smechvisord → swap binary → restart immediately |
No — live swap, <3 seconds downtime |
smechvisor-base |
Write to disk, stage for next boot | Yes — scheduled, at operator's discretion |
How it works
spk system-upgradefetchessmechvisor-daemon.tar.xzandsmechvisor-base.tar.xzfrom the GitHub Release URL usingcurl.- Packages are extracted to a staging directory.
- The daemon package:
rc-service smechvisord stop→ copy binary →rc-service smechvisord start. - The base package: extracted to
/directly. Running system processes are unaffected. A reboot activates the new kernel or base libraries. - If the daemon fails to restart, the old binary is restored from a backup taken in step 2.
cloud-hypervisor
processes run independently and continue operating while smechvisord
restarts. The dashboard goes dark for under 3 seconds.
Network Deploy
Network deploy lets you provision a new bare-metal machine with SmechVisor without a USB drive, using an existing running SmechVisor node as the donor.
Prerequisites
- A running SmechVisor node (the donor) with
spkv2.0 - A target machine booted from the Deploy Shim ISO
- Both machines on the same network (LAN/VLAN — UDP broadcast must reach both)
Workflow
- Boot the target machine from the Deploy Shim ISO. Walk through: disk selection → auto-partition → network setup.
- The shim displays a 7-character code — for example
e13gts2. It also broadcasts this code on UDP port 9191 on the LAN. - On the donor node, run:
spk deploy-system-img-copy e13gts2 spklistens on UDP port 9191 for the broadcast containingSMECHVISOR_SHIM:e13gts2, gets the sender's IP, connects back on TCP port 9192, and streams all packages.- The shim receives the packages, extracts them to the partitioned disk, installs GRUB, and reboots into SmechVisor.
Wire protocol
UDP discovery (port 9191):
SMECHVISOR_SHIM:{code}
# example: SMECHVISOR_SHIM:e13gts2
TCP package stream (port 9192):
[4 bytes big-endian: name length]
[name bytes: package name]
[8 bytes big-endian: data length]
[data bytes: raw .tar.xz contents]
... (repeat for each package)
[4 bytes: 0x00000000] -- stream terminator
Deploy Shim ISO
The Deploy Shim is a minimal bootable ISO that transforms any bare-metal machine into a SmechVisor receiver. It boots into a Rust + Newt TUI wizard with no desktop environment, no live OS — just the installer flow.
Shim TUI flow
- Disk selection — lists all detected block devices. Select the target disk.
- Auto-partition — the shim creates a GPT partition table with three partitions automatically:
Partition Size Type Mount Part 1 512 MB EFI System /boot/efiPart 2 2 GB Linux swap swapPart 3 Remaining Linux filesystem / - Network type — choose Ethernet or Wi-Fi.
- Ethernet: choose DHCP (auto) or static IP.
- Wi-Fi: select SSID from scan, enter password.
- Code display — a screen shows the 7-character deploy code. On another machine, run
spk deploy-system-img-copy <code>. - Receive & install — packages stream in over TCP, progress is displayed. GRUB is installed to the EFI partition. System reboots into SmechVisor.
Shim ISO details
| Property | Value |
|---|---|
| Volume label | SMECHVISOR_SHIM |
| Boot | BIOS (GRUB i386-pc) + EFI (GRUB x86_64-efi) |
| Init | Minimal shell wrapper — mounts /proc /sys /dev, runs dhcpcd, launches spk receive-deploy |
| Network | dhcpcd on all detected interfaces |
| DNS | 1.1.1.1 (Cloudflare) written to /etc/resolv.conf |
| Binary | smechvisor-shim Rust binary (Newt TUI) + spk v2.0 |
Download
The Deploy Shim ISO is distributed alongside the Install ISO on the SmechVisor downloads page.
| File | Size | SHA-256 |
|---|---|---|
| smechvisor-deploy-shim-20260702.iso | 20 MB | 1d0ac83deafae5f7e331e1b9815ce18b9810bfcd6bb30cfa4b381682e8b8cca7 |
sha256sum smechvisor-deploy-shim-20260702.iso
# expected: 1d0ac83deafae5f7e331e1b9815ce18b9810bfcd6bb30cfa4b381682e8b8cca7