signalk-server
Version:
An implementation of a [Signal K](http://signalk.org) server for boats.
97 lines (94 loc) • 16.9 kB
HTML
<html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Configuration | Signal K</title><meta name="description" content="Documentation for Signal K"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css?cache=1750891486567"/><link rel="stylesheet" href="assets/highlight.css?cache=1750891486567"/><script defer src="assets/main.js?cache=1750891486567"></script><script async src="assets/icons.js?cache=1750891486567" id="tsd-icons-script"></script><script async src="assets/search.js?cache=1750891486567" id="tsd-search-script"></script><script async src="assets/navigation.js?cache=1750891486567" id="tsd-nav-script"></script><script async src="assets/hierarchy.js?cache=1750891486567" id="tsd-hierarchy-script"></script><link rel="stylesheet" href="assets/theme.css"/></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title"><img src="assets/logo.svg" alt="Signal K"/></a><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg><span class="visible@s">Search</span></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><div id="tsd-toolbar-links"><a href="https://discord.gg/uuZrwz4dCS" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"></path></svg></a><a href="https://github.com/SignalK/signalk-server" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Configuration</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="configuring-signal-k-server" class="tsd-anchor-link">Configuring Signal K Server<a href="#configuring-signal-k-server" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Signal K Server provides an Admin UI to allow you to easily configure your installation.</p>
<p>Open the Admin UI using a web browser on the device where Signal K server is installed (if the defaults have not been changed) by navigating to <code>http://localhost:3000</code>.</p>
<h2 id="create-an-admin-account" class="tsd-anchor-link">Create an Admin account<a href="#create-an-admin-account" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>It is considered good practise to enable security and create an administrator account to controll access to your server and protect your data.</p>
<p>If you ran the <code>signalk-server-setup</code> script, security will be enabled and you will be presented with a login screen when accessing the Admin UI.</p>
<p>If the login screen is not displayed, click <code>Login</code> <em>(top right of screen)</em> to display the prompt to create a user and password.</p>
<p>Alternatively, from the menu select <em>Security -> Users</em> and then:</p>
<ol>
<li>Click <strong>Add</strong></li>
<li>Enter a <strong>user id</strong></li>
<li>Enter a <strong>password</strong> and confirm it</li>
<li>In <strong>Permissions</strong> select <strong>Admin</strong></li>
<li>Click <strong>Apply</strong>.</li>
</ol>
<p>After creating the account, the server needs to be restarted.</p>
<p>How you restart the server will depend on the installation type <em>(i.e. installed from NPM, embedded on a commercial device, etc)</em>. Power cycling the device that Signal K Server is always an option.</p>
<h2 id="set-up-data-connections" class="tsd-anchor-link">Set up data connections<a href="#set-up-data-connections" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>To get data into Signal K server you will need to configure one or more data connections via the <em>Server -> Data Connections</em> menu option.</p>
<p>From this screen you can add connections for various data types including:</p>
<ul>
<li>NMEA2000</li>
<li>NMEA0183</li>
<li>Signal K</li>
<li>SeaTalk</li>
<li>File Stream</li>
</ul>
<p>The options presented will vary based on the data type chosen.</p>
<p><strong><em>NMEA2000</em></strong>: The processing of NMEA2000 PGNs is done by <a href="https://github.com/SignalK/n2k-signalk">n2k-signalk</a> via <a href="https://github.com/canboat/canboatjs">canboatjs</a>.</p>
<p>Please refer to the <a href="https://canboat.github.io/canboat/canboat.html">Canboat PGN database</a> to see what PGNs are supported.</p>
<p><strong><em>NMEA0183</em></strong>: The processing of NMEA0183 sentences is done by <a href="https://github.com/SignalK/signalk-parser-nmea0183">nmea0183-signalk</a></p>
<h3 id="nmea-0183-options" class="tsd-anchor-link">NMEA 0183 Options<a href="#nmea-0183-options" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
<li>
<p><em>Suppress nmea0183 event</em> - All incoming NMEA0183 data is made available over TCP on port 10110 by default. This happens by incoming data being emitted as <em>nmea0183</em> events. Selecting this option will prevent data from this connection appearing on the NEMA0183 TCP service.</p>
</li>
<li>
<p><em>Input Event</em> - By default, data received on this connection will cause the nmea0183 event to be emitted. In order to distinguish input from this connection from other NMEA 0183 connections, enter an input event name which will be emitted (in addition to the nmea0183 event) when data is received on this connection.</p>
</li>
<li>
<p><em>Validate checksum</em> - Usually <a href="https://en.wikipedia.org/wiki/NMEA_0183">NMEA 0183 sentences</a> contain a checksum that can be used to check that the data is not garbled so that erroneous data is discarded. However some data sources do not include the checksum or it is simply wrong. Unchecking this option will disable validating the checksum.</p>
</li>
<li>
<p><em>Append Checksum</em> - See previous point. Some data sources do not include a checksum, but for example a mobile app you are using may require them. Activating this option will add checksums to the data.</p>
</li>
<li>
<p><em>Remove NULL characters</em> - Some data sources include superfluous NULL characters in the input data stream, making the data invalid for consumption. This option will remove the NULL characters. It causes additional processing, so not on by default.</p>
</li>
<li>
<p><em>Ignored Sentences</em> - NMEA0183 sentences to throw away from the input data. Sometimes you may want to ignore certain sentences from a connection, because the data is invalid or missing or just not needed.</p>
</li>
<li>
<p><em>Override timestamps</em> - NMEA0183 data may include timestamps in tag blocks. These may be off or when playing back captured data you may want to ignore the data and override them with current time when converting to Signal K.</p>
</li>
</ul>
<p><strong>Connection type "File Stream"</strong></p>
<p>Sample files are available which can be set up as input for the server.</p>
<p>Use below command to get the path to a NMEA 2000 file with navigation data and AIS targets.</p>
<pre><code><span class="hl-1">sudo find </span><span class="hl-5">/</span><span class="hl-1"> </span><span class="hl-5">-</span><span class="hl-1">name </span><span class="hl-2">"aava-n2k.data"</span>
</code><button>Copy</button></pre>
<p>Set up according to picture.</p>
<p><img src="media/SK_file_stream_N2K.png" alt="SK_N2K_file"></p>
<p>To get the path for the sample file, data type NMEA 0183, use below command.</p>
<pre><code><span class="hl-1">sudo find </span><span class="hl-5">/</span><span class="hl-1"> </span><span class="hl-5">-</span><span class="hl-1">name </span><span class="hl-2">"plaka.log"</span>
</code><button>Copy</button></pre>
<h2 id="install-plugins-and-webapps" class="tsd-anchor-link">Install Plugins and Webapps<a href="#install-plugins-and-webapps" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Signal K server functionality can be extended through the use of plugins and webapps.</p>
<p>Plugins typically extend data acquisition, data processing or enable operations (i.e. protocol conversion, etc).</p>
<p>Webapps provide a user interface to view / interact with data or perform operations enabling full featured solutions such as a Chartplotter.</p>
<p>To install, update or remove plugins and webapps select <em>Appstore</em> from the menu.</p>
<p>Select:</p>
<ul>
<li>
<p><code>Installed</code> to view a list of plugins and webapps currently installed.</p>
</li>
<li>
<p><code>Updates</code> to view a list of plugins and webapps that have updates available.</p>
</li>
<li>
<p><code>Available</code> to view a list of available plugins and webapps that can be filtered by categry.</p>
</li>
</ul>
<p>The entries displayed with a blue icon are webapps, those with a green icon are plugins and those with both blue and green icons are plugins with a webapp providing a user interface.</p>
<p><em>Note: An internet connection is required for Signal K Server to list, install and update AppStore listings.</em></p>
<p>To install, click the <code>download</code> icon on the right hand side of the entry.</p>
<p>To view a list of Plugins and Webapps directly from the NPM registry select the links below.</p>
<ul>
<li><a href="https://www.npmjs.com/search?q=keywords%3Asignalk-node-server-plugin">Plugins</a></li>
<li><a href="https://www.npmjs.com/search?q=keywords:signalk-webapp">Webapps</a></li>
</ul>
<p><strong><em>Note: A restart of the Signal K server is required after plugins or webapps have been installed or updated.</em></strong></p>
<p>Click the <em>Restart</em> button at the top right of the screen to restart the server.</p>
<p>After the server has restarted, the installed plugin(s) can be configued by selecting <em>Server -> Plugin Config</em> menu entry.</p>
<h2 id="trouble-shooting-and-the-server-log" class="tsd-anchor-link">Trouble shooting and the Server Log<a href="#trouble-shooting-and-the-server-log" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>If things are not working as expected after installing a plugin or webapp, select <em>Server -> Server Log</em> to view the server's log. If the errors logged there are not providing the information required, you can enable debugging for individual components and plugins by toggling the switch to activate them.</p>
<p>Enabling the <code>Remember debug setting</code> ensure your selections are remebered after a server restart.</p>
<h2 id="landing-page" class="tsd-anchor-link">Landing page<a href="#landing-page" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>When you access the Signal K server on a web browser you will be redirected to the Admin webapp as the default <code>landing page</code>. You can replace this default with your choice by adding the property <code>landingPage</code> in your <code>settings.json</code>. For example you can redirect the user to Kip or Freeboard.</p>
<h2 id="add-your-logo" class="tsd-anchor-link">Add your Logo<a href="#add-your-logo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>You can change the logo image displayed at the top left of the Admin UI screen.
To do this, add an SVG file named <code>logo.svg</code> in the settings directory <em>(default: $HOME/.signalk/)</em>.</p>
</div></div><div class="col-sidebar"><div class="page-menu"><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#create-an-admin-account"><span>Create an <wbr/>Admin account</span></a><a href="#set-up-data-connections"><span>Set up data connections</span></a><ul><li><a href="#nmea-0183-options"><span>NMEA 0183 <wbr/>Options</span></a></li></ul><a href="#install-plugins-and-webapps"><span>Install <wbr/>Plugins and <wbr/>Webapps</span></a><a href="#trouble-shooting-and-the-server-log"><span>Trouble shooting and the <wbr/>Server <wbr/>Log</span></a><a href="#landing-page"><span>Landing page</span></a><a href="#add-your-logo"><span>Add your <wbr/>Logo</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">Signal K</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>