Skip to content
12 min read Projects

What's on your boat server?

Servers are more common on boats today than ever before. Having some sort of system to run SignalK, a dedicated alerting system, or some other service has become just as integral as having a chart plotter or VHF radio.

What's on your boat server?

Servers are more common on boats today than ever before. Having some sort of system to run SignalK, a dedicated alerting system, or some other service has become just as integral as having a chart plotter or VHF radio. Here are my servers, and what they run.

Hardware

Choosing server hardware is still a big decision – you have to factor in what you’ll be running, your power budget, and performance required.

For the longest time, I used Raspberry Pi boards on my sailboats because of their power efficiencies. Before that, I used Soekris systems, hand built systems, and many other derivations back into the 1990s.

Raspberry Pi was a great platform, but I found that the more things I wanted to do with my boat server, the more Pi’s I needed, as a single one was not capable of handling the load. In addition, I had multiple SD card failures both on the boat and on one of the 20+ other Pi’s I had running at home, at the family cabin, and elsewhere. While backups helped with those failures, it was irritating to have to deal with it to begin with. There are better SD cards now that seem to last longer, but nothing replaces an SSD or hard drive.

I use Intel NUCs now for all of my boat servers, home servers, and elsewhere, and have even written about them before in Using an Intel NUC as a powerful boat server. They have proven to be reliable, quiet, and powerful and can be run off of DC battery power directly without an inverter in the mix. The article above goes into more of the details around why I think the NUC is a good boat server hardware-wise.

Servers

I have two servers on Rendezvous – one Linux and one Windows.

Linux

The Linux system has the most services on it, but tends to operate at a pretty low utilization. It is running Ubuntu Linux 18.04 LTS which is my current favorite server operating system. Ubuntu is very popular, has lots of available packages, is easy to administer, and the LTS version is supported for a long time.

This server is headless and runs in my Internet Alcove, connected to the main switch for the entire local network via Ethernet.

This server is an i3 Intel NUC with the following specs:

I chose the i3 for power and heat savings, given this computer is installed in a cabinet and runs 24×7. This system is connected to my DC power system directly and does not require an AC inverter or wall wart.

Linux Services

SignalK

SignalK is a critical component of any boat I have both for displaying dashboards using Instrument Panel, but also translating data from various things and ensuring it is on all networks where it is needed. On Rendezvous, I use several plugins within SignalK that are important:

SignalK Instrument Panel display, which is often shown on the salon PC screen

AIS dispatcher

I am a mobile base station for a bunch of different AIS aggregators including Marine Traffic and  AIShub. I use aisdispatcher to connect to SignalK which has the signalk-n2kais-to-nmea0183 plugin configured. This allows me to grab AIS data from anything that happens to be on the NMEA 2000 network rather than pointing it at a specific device like my Vesper XB-8000, Digital Yachts, etc.

./aisdispatcher -t -h 192.168.3.10 -p 10110 -H marinetraffic.com, aishub.net -v -D60

aisdispatcher filters out non AIS data, scopes it down a bit so I’m not sending tons of data out my LTE link, and sends it on to the aggregators. I’ve been running this for a long time on board, and I like being able to contribute so that others can see AIS targets on those maps. It has also been very fun to see the data being reported when I visit more remote areas and still have LTE coverage.

Plex

My crew (and occasionally me!) like to relax in the evenings with a bit of TV. I have a significant Plex server at home with 10 terabytes of data and over 10,000 episodes of TV. I take a subset of this and replicate it to a 2TB hard drive that is attached to the local Plex server on Rendezvous.

While on board, we use a Roku or Apple TV to run the Plex client. Sometimes crew members will use a tablet and can access the on board Plex server as well.

This allows us to have various TV series on board without using up LTE or streaming data. Comes in handy for those rainy days at anchor when no one wants to go outside.

Zabbix

For general network monitoring, graphs, and alerting, I have used Zabbix for years, and it has proven to be reliable and scalable. I have a VPN back to my main Zabbix monitoring server, which connects in to the computer on the boat via a Zabbix proxy. The main server sends a list of what should be monitored, and the boat computer does the work, which is more efficient than monitoring things remotely.

I monitor all of the bandwidth, ports, services, processes, and devices on the boat that are supposed to be on all the time. I can see used bandwidth, port statistics, network latency, and much more. It is extremely helpful when testing new devices, and I have found many issues through when monitoring goes crazy.

The Zabbix agent is used to gather complete performance information on the server itself, and is helpful to see impacts of enabling more devices on the NMEA 2000 network, and what that does to SignalK, etc.

Docker + Venus-docker-grafana

Docker is a container technology which allows you to run an entire “system” of things easily without installing individual components. I am using Docker to run the venus-docker-grafana compose file which runs a customized version of SignalK, InfluxDB, and Grafana.

SignalK has been customized to work primarily with Venus GX-series devices, using the same plugins and configurations I listed above for my standalone SignalK server. It then uses another SignalK plugin to put the data into InfluxDB, and Grafana to visualize it in dashboards.

Grafana dashboard showing Venus data

This is a great way to monitor the performance of your Victron system without using their remote VRM platform. I still use that, but this has no impact on my LTE/internet bandwidth, works while I am out of coverage, and keeps a copy of all of the data locally so I can look through it in more detail.

Mail / Postfix / Mailgun

This might seem sort of obvious, but having an email server on board that other devices can use is very important to ensure I am getting accurate notifications.

I use Postfix as it is a well supported mail server. Combine that with Mailgun’s delivery service and an SSL connection, I can be sure that mail is always delivered from on board devices like Maretron’s N2Kserver on my Windows box, Blue Guard’s BG-Link gateway, and many others.

Using Mailgun ensures it is delivered reliably, and not flagged as spam. Relying on a local SMTP server to deliver mail directly to various devices is not recommended in today’s DKIM/SPF/DMARC spam protected email world. Mailgun + Postfix + SASL and SSL help make this a reliable solution.

Monit & M/Monit

I’ve used monit for years to manage and monitor linux systems, and I use it on Rendezvous linux system as well. It keeps an eye on all of the critical services, and will restart them if they fail, notify me via email when things can’t be restarted, and more.

I also use M/Monit on a central server at home to see general status on a dashboard. I find it very useful to have this tool watching all of the critical services and restarting them even if I am not able to get into the system.

netdata

The final monitoring tool I use is netdata, which is a lot more real-time and granular than Zabbix. When I am testing new products or network changes, this allows me to see the immediate impact on CPU, memory and other areas of the system. It is also an extremely useful tool for debugging general system performance and capacity.

Windows

The Windows system runs Windows 10 Pro, and yes that is not a server-class operating system, but most of the programs I need to run require a desktop operating system, so that’s what I ended up having to use. This system also is my primary navigation PC at the salon helm station while underway and runs a number of client programs.

This system has a 22″ Planar touch-screen monitor on an arm with the server attached to the back for easy servicing and connectivity.

This system is an i7 NUC that is pre-built, which is unusual for me – I normally prefer to build my own from components. However, this one was so cost effective, and had high quality components and Windows 10 pre-loaded. Intel has some crazy part numbers for customer-facing systems, and this one is no exception – it is the NUC8I7BEKQA. It has the following hardware specs:

Windows Services

TimeZero

I use TimeZero as my primary lower helm station – it displays charts, cameras, and navigation data, controls my radar, runs courses through the NavPilot 300 autopilot and integrates with the Furuno network to fully sync the data.

The Windows system uses an Ethernet connection directly to my private Furuno network which allows it to exchange data with the MFDs, access the AXIS camera server, and control the DRS4D-NXT dopper radar.

In addition, it uses the Actisense NGT-1-USB USB-to-NMEA 2000 interface to get navigational data off of the N2K network such as the PG-700 heading sensor, depth, speed, etc.

Coastal Explorer

I have used Coastal Explorer since the early days, and love it as a navigation and planning tool. The last year or so I have spent more time using TimeZero because of its integration with the rest of my systems, but I still use Coastal while at anchor to display nearby AIS targets and general position info as it tends to be a bit more power efficient.

Coastal Explorer uses the Nemo Gateway to get all navigation and network data, and can run my NavPilot 300 autopilot on a course if needed, although it is not anywhere near as integrated as the TimeZero solution.

Maretron N2Kviewer/server

Maretron’s  N2Kview is the primary server-like program I run on the Windows system. It connects to a Maretron IPG-100 gateway which allows access to all of the NMEA 2000 data, and has a ton of features.

The entire program is touch based and has a number of pre-built screens showing data from the enviroment, DC/AC systems, engines, cameras, and a very feature-packed anchor system. I use it to monitor the engines and navigation data while underway, and the environment and anchor systems when at anchor.

It also has a very good alerting engine. Not only is is relatively easy to setup an alert, but you can have it flash a warning on the screen, sound an alarm or send an email / text. I also have an ALM100 alarm module that it can sound, waking even the deepest sleeper, and it automatically propagates the alarm to all of my DSM-series displays throughout the boat.

Out of all of the things I run on this system, the alerts and monitoring are the most critical both while on board, and remote in case of something serious happening.

Maretron N2KAnalyzer

This is one of the longest-running tools I’ve used to debug NMEA 2000 networks, and it only runs on Windows. I have a USB-100 Maretron USB-to-NMEA 2000 interface connected to the Windows machine, and use it constantly when testing new devices, setting unique and device instances, and analyzing PGNs being sent/received by the devices.

Actisense NMEAreader/Toolkit

Similar to the above tool from Maretron, I have an Actisense NGT-1-USB interface (used also for TimeZero) that I use very often to monitor the NMEA 2000 network, configure devices, debug issues, and more. Most recently it was used to log large portions of bus traffic searching for a bug that only happened every few hours.

In addition, I use the same NGT-1-USB interface and Actisense’s Toolkit to configure things like the EMU-1 engine monitor and manage other Actisense updates and firmware.

Airmar Weathercaster

I have an Airmar WX-220 that I use as a primary GPS and weather source. At times while at anchor, I run Weathercaster to display the data real-time, although I can’t say the software is very reliable or optimized. However it can be interesting to see the data here, although Maretron’s N2Kview does something very similar.

Wrap-up

Most modern geek boaters have some sort of server on board. I think it is becoming more and more popular to rely on software to provide services on board like Plex, SignalK conversions, and the like.

I’d love to hear from others in the comments on what services and programs you run on your server!

Comments