<spanid="using-main"></span><h1>Using Reticulum on Your System<aclass="headerlink"href="#using-reticulum-on-your-system"title="Permalink to this headline">¶</a></h1>
<p>Reticulum is not installed as a driver or kernel module, as one might expect
of a networking stack. Instead, Reticulum is distributed as a Python module.
This means that no special privileges are required to install or use it.
Any program or application that uses Reticulum will automatically load and
initialise Reticulum when it starts.</p>
<p>In many cases, this approach is sufficient. When any program needs to use
Reticulum, it is loaded, initialised, interfaces are brought up, and the
program can now communicate over Reticulum. If another program starts up
and also wants access to the same Reticulum network, the instance is simply
shared. This works for any number of programs running concurrently, and is
very easy to use, but depending on your use case, there are other options.</p>
<h2>Included Utility Programs<aclass="headerlink"href="#included-utility-programs"title="Permalink to this headline">¶</a></h2>
<p>If you often use Reticulum from several different programs, or simply want
Reticulum to stay available all the time, for example if you are hosting
a transport node, you might want to run Reticulum as a separate service that
other programs, applications and services can utilise.</p>
<divclass="section"id="the-rnsd-utility">
<h3>The rnsd Utility<aclass="headerlink"href="#the-rnsd-utility"title="Permalink to this headline">¶</a></h3>
<p>To do so is very easy. Simply run the included <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code> command. When <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code>
is running, it will keep all configured interfaces open, handle transport if
it is enabled, and allow any other programs to immediately utilise the
Reticulum network it is configured for.</p>
<p>You can even run multiple instances of rnsd with different configurations on
--config CONFIG path to alternative Reticulum config directory
-v, --verbose
-q, --quiet
--version show program's version number and exit
</pre></div>
</div>
</div>
<divclass="section"id="the-rnstatus-utility">
<h3>The rnstatus Utility<aclass="headerlink"href="#the-rnstatus-utility"title="Permalink to this headline">¶</a></h3>
<p>Using the <codeclass="docutils literal notranslate"><spanclass="pre">rnstatus</span></code> utility, you can view the status of configured Reticulum
interfaces, similar to the <codeclass="docutils literal notranslate"><spanclass="pre">ifconfig</span></code> program.</p>
<divclass="highlight-text notranslate"><divclass="highlight"><pre><span></span># Run rnstatus
--config CONFIG path to alternative Reticulum config directory
-v, --verbose
-q, --quiet
--version show program's version number and exit
</pre></div>
</div>
</div>
<divclass="section"id="the-rnpath-utility">
<h3>The rnpath Utility<aclass="headerlink"href="#the-rnpath-utility"title="Permalink to this headline">¶</a></h3>
<p>With the <codeclass="docutils literal notranslate"><spanclass="pre">rnpath</span></code> utility, you can look up and view paths for
destinations on the Reticulum network.</p>
<divclass="highlight-text notranslate"><divclass="highlight"><pre><span></span># Run rnpath
rnpath eca6f4e4dc26ae329e61
# Example output
Path found, destination <eca6f4e4dc26ae329e61> is 4 hops away via <56b115c30cd386cad69c> on TCPInterface[Testnet/frankfurt.rns.unsigned.io:4965]
<h3>Run Reticulum as a Service<aclass="headerlink"href="#run-reticulum-as-a-service"title="Permalink to this headline">¶</a></h3>
<p>Instead of starting Reticulum manually, you can install <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code> as a system
service and have it start automatically at boot.</p>
<p>If you installed Reticulum with <codeclass="docutils literal notranslate"><spanclass="pre">pip</span></code>, the <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code> program will most likely
be located in a user-local installation path only, which means <codeclass="docutils literal notranslate"><spanclass="pre">systemd</span></code> will not
be able to execute it. In this case, you can simply symlink the <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code> program
<p>You can then create the service file <codeclass="docutils literal notranslate"><spanclass="pre">/etc/systemd/system/rnsd.service</span></code> with the
<p>Be sure to replace <codeclass="docutils literal notranslate"><spanclass="pre">USERNAMEHERE</span></code> with the user you want to run <codeclass="docutils literal notranslate"><spanclass="pre">rnsd</span></code> as.</p>