Setup
Four doors,
the same five minutes.
Siparu is a Signal K plugin. If your boat already runs Signal K it is one click in her AppStore and you are done. If she does not, you are putting Signal K on something first, and these are the three boxes boats end up on. Every door leads to the same five minutes at the end of this page.
Last checked 7 September 2026 against signalk-server 2.31.1
A. She already runs Signal K
Nothing to install on the machine itself. Siparu is pure JavaScript with no native modules, so it goes in from the AppStore the way any plugin does and there is nothing to compile.
- Open the Signal K admin on the boat, http://<boat-ip>:3000, and sign in.
- Appstore → Available. Search Siparu and press Install.
- Server → Restart. A minute or two.
- Webapps → Siparu. The dashboard is already reading her bridge, on the boat, over her own wifi. No account, no internet, nothing to pay.
- Security → Users. Signal K ships with its security switched off. Add an admin user before you pair: with security off, anyone on the boat's network can read her history, and Siparu keeps pairing and log edits locked until you close it.
- To watch her from ashore, open Pair in Siparu, type the code into your phone, and approve it on the boat's own screen.
Siparu runs on Signal K 2.18 and newer, on Node 20 and newer. That is the floor it supports, not what you should install today: a fresh Signal K asks for Node 22.
B. Raspberry Pi
The box most boats end up on. A Pi 3B+ or newer, 64-bit Raspberry Pi OS, and Lite is enough: Signal K has no use for a desktop. Give her a wired connection to the boat's network if you can, and a proper power supply. A Pi that browns out mid-write is the one fault that costs you a day of history.
Node first. The version in Raspberry Pi OS is older than Signal K accepts, so take it from NodeSource:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs node -v
Then Signal K itself:
sudo npm install -g signalk-server sudo signalk-server-setup
The setup tool asks what she should read and picks up a USB or network NMEA gateway there. It also writes a systemd service, which is what makes her come back on her own after a power cut. Say yes to that: a recorder that needs a person to start it is not a recorder.
Then follow door A. Nothing else is needed.
C. Mac mini
Plenty of boats already have one in the saloon running the AV, and it makes a good enough Signal K box. The install is the same as a Pi's, with one difference worth knowing before you start: nothing here makes her come back after a reboot on its own.
Node 22 or newer, from nodejs.org or from Homebrew:
brew install node@22 node -v
Then the server:
sudo npm install -g signalk-server sudo signalk-server-setup
The setup tool writes her settings and then quietly skips the part that matters most on a boat. It only knows how to install a systemd service, macOS has none, and it says nothing when it steps over that step. Start her by hand to check the install:
signalk-server
To have her start on her own, write a launch daemon at /Library/LaunchDaemons/app.siparu.signalk.plist. Check where the binary actually landed first, because the answer differs between an Apple silicon Mac and an Intel one:
which signalk-server # /opt/homebrew/bin/signalk-server (Apple silicon) # /usr/local/bin/signalk-server (Intel)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>app.siparu.signalk</string>
<key>ProgramArguments</key> <array>
<string>/opt/homebrew/bin/signalk-server</string>
</array>
<key>UserName</key> <string>YOUR-USER</string>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
</dict>
</plist>
sudo chown root:wheel /Library/LaunchDaemons/app.siparu.signalk.plist sudo launchctl load -w /Library/LaunchDaemons/app.siparu.signalk.plist
Two settings left, and both are about a machine that is meant to be unattended. A Mac that goes to sleep records nothing, and a Mac that stays off after a power cut records nothing either:
sudo pmset -a sleep 0 disksleep 0 sudo pmset -a autorestart 1
Then follow door A.
D. Victron Cerbo GX
Venus OS Large carries Signal K already, so there is nothing to install on the Cerbo beyond the right image. Siparu builds nothing native, and that is what lets it install on a Cerbo at all: a plugin that needs a compiler does not go on one.
- Settings → General → Firmware → Online updates. Set Image type to Large, then check for updates and install.
- Switch Signal K on in the GX settings. It sits under the Venus OS Large features, called Integrations on current firmware, and turning it on needs the Installer access level.
- Open the Signal K admin at http://<cerbo-ip>:3000.
- Then follow door A.
Victron's own warning is worth repeating: running Signal K and Node-RED at the same time can overload a GX device and make it unstable. A Cerbo handles it better than the older Venus GX, but if you already lean on Node-RED, watch the load before you add anything else.
Then the same five minutes
Whichever door you came through, the rest is identical, and none of it hands anyone a password, a network, or a device.
- Install from the AppStore. One click in Signal K.
- Restart the server. A minute or two.
- Open the dashboard. It is already running, on the boat, over her own wifi.
- Claim from your phone. Type the code her screen is showing.
- Approve on board. One tap on the boat's screen, and she is live ashore.
When it does not go
- Siparu is not in the AppStore list. The list is cached. Restart the server, then look again under Available rather than Installed.
- It installs but the webapp is not there. Signal K mounts webapps by package name: the address is /signalk-siparu/, not /siparu/.
- The dashboard is up but empty. Siparu reads what Signal K reports, so if Signal K itself has no data source connected, there is nothing to show yet. Check Server → Data Connections first.
- npm complains about the Node version. The current Signal K server asks for Node 22 or newer. Siparu itself runs on 20, but the server under it does not.
- Pairing is refused. Signal K security is still off. Add an admin user under Security → Users; Siparu keeps pairing locked until you do, and says so on screen.
Still stuck: write to us. A person answers, and an install that will not go is exactly the kind of thing worth writing about.