<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Building NAGAHITAM.MY: A Go-Based Remote Shell and Server Management Platform]]></title><description><![CDATA[Building NAGAHITAM.MY: A Go-Based Remote Shell and Server Management Platform]]></description><link>https://bd-netcat.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>Building NAGAHITAM.MY: A Go-Based Remote Shell and Server Management Platform</title><link>https://bd-netcat.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 23:56:44 GMT</lastBuildDate><atom:link href="https://bd-netcat.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Building NAGAHITAM.MY: A Go-Based Remote Shell and Server Management Platform]]></title><description><![CDATA[Managing multiple servers can become complicated quickly. As the number of machines grows, administrators need a reliable way to monitor nodes, manage connections, and access authorized systems withou]]></description><link>https://bd-netcat.hashnode.dev/building-nagahitam-my-a-go-based-remote-shell-and-server-management-platform</link><guid isPermaLink="true">https://bd-netcat.hashnode.dev/building-nagahitam-my-a-go-based-remote-shell-and-server-management-platform</guid><category><![CDATA[bd-netcat]]></category><category><![CDATA[#RemoteShell]]></category><category><![CDATA[monitoring]]></category><category><![CDATA[blackdragon]]></category><dc:creator><![CDATA[Black Dragon]]></dc:creator><pubDate>Mon, 07 Sep 2026 23:49:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a9f4b14988b71f020f1bd46/76d174b1-ee8b-49fb-bc94-09ade6b60c8d.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Managing multiple servers can become complicated quickly. As the number of machines grows, administrators need a reliable way to monitor nodes, manage connections, and access authorized systems without constantly switching between different tools.</p>
<p>This led me to build <a href="http://NAGAHITAM.MY"><strong>NAGAHITAM.MY</strong></a>, a remote shell and server management platform developed primarily with Go.</p>
<p>The project is powered by a lightweight client called <strong>BD-NETCAT</strong>, which is designed to establish authenticated connections between managed server nodes and the management platform.</p>
<h2>Why I Built It</h2>
<p>There are already many tools available for remote server administration. However, I wanted to experiment with building a platform where remote shell access, node management, monitoring, and session management could work together as a single system.</p>
<p>The main goals were:</p>
<ul>
<li><p>Keep the client lightweight.</p>
</li>
<li><p>Use Go for performance and portability.</p>
</li>
<li><p>Provide centralized node management.</p>
</li>
<li><p>Support authenticated connections.</p>
</li>
<li><p>Provide basic system monitoring.</p>
</li>
<li><p>Make remote administration straightforward for authorized infrastructure.</p>
</li>
</ul>
<p>The project is also an opportunity to explore how a modern remote-management architecture can be designed from the ground up.</p>
<h2>The Architecture</h2>
<p>At a high level, <a href="http://NAGAHITAM.MY">NAGAHITAM.MY</a> consists of three major components:</p>
<pre><code class="language-plaintext">             Management Interface
                     │
                     ▼
              Platform Server
                     │
          Authenticated Connection
                     │
                     ▼
                 BD-NETCAT
                     │
                     ▼
              Managed Server
</code></pre>
<p>The management interface communicates with the platform server, while BD-NETCAT runs on an authorized server node.</p>
<p>The platform is responsible for authentication, node management, session coordination, and monitoring information.</p>
<h2>BD-NETCAT</h2>
<p>BD-NETCAT is the client component of the platform.</p>
<p>The objective is to keep the command-line experience simple while still providing authenticated communication with the management environment.</p>
<p>A typical command looks like:</p>
<pre><code class="language-plaintext">bd-netcat -s "&lt;NODE_TOKEN&gt;" -i
</code></pre>
<p>The actual authentication token should always remain private and should never be committed to a public repository.</p>
<h2>Built With Go</h2>
<p>One of the main technical decisions behind the project was using <strong>Go</strong>.</p>
<p>Go is particularly interesting for this type of software because it provides:</p>
<ul>
<li><p>Fast compilation</p>
</li>
<li><p>Low runtime overhead</p>
</li>
<li><p>Straightforward concurrency</p>
</li>
<li><p>Native networking capabilities</p>
</li>
<li><p>Easy distribution as a single binary</p>
</li>
<li><p>Support for multiple operating systems</p>
</li>
</ul>
<p>For a lightweight server-management client, being able to distribute a relatively small executable is especially useful.</p>
<h2>Node Management</h2>
<p>A central part of <a href="http://NAGAHITAM.MY">NAGAHITAM.MY</a> is the concept of managed nodes.</p>
<p>Administrators can use the platform to keep track of authorized servers and their connection status.</p>
<p>The management layer can provide information such as:</p>
<ul>
<li><p>Node availability</p>
</li>
<li><p>Connection status</p>
</li>
<li><p>CPU usage</p>
</li>
<li><p>Memory usage</p>
</li>
<li><p>Disk information</p>
</li>
<li><p>Active sessions</p>
</li>
<li><p>Authentication status</p>
</li>
</ul>
<p>This gives administrators a centralized view instead of requiring them to manually check every server.</p>
<h2>Remote Sessions</h2>
<p>Another major component is interactive remote shell access.</p>
<p>The goal is to provide administrators with a convenient interface for accessing systems they are authorized to manage.</p>
<p>A typical workflow is:</p>
<pre><code class="language-plaintext">Administrator
      │
      ▼
Management Interface
      │
      ▼
Select Authorized Node
      │
      ▼
Create Session
      │
      ▼
BD-NETCAT
      │
      ▼
Remote Shell
</code></pre>
<p>Keeping the session layer separate from the management interface also makes it easier to think about authentication, authorization, auditing, and connection lifecycle management.</p>
<h2>Security Considerations</h2>
<p>Remote administration software needs to treat security as a core feature rather than an afterthought.</p>
<p><a href="http://NAGAHITAM.MY">NAGAHITAM.MY</a> is designed around authenticated node connections and authorized administration.</p>
<p>Some important practices include:</p>
<ul>
<li><p>Keep authentication tokens private.</p>
</li>
<li><p>Use encrypted connections in production.</p>
</li>
<li><p>Restrict management access.</p>
</li>
<li><p>Rotate compromised credentials.</p>
</li>
<li><p>Avoid storing secrets in source code.</p>
</li>
<li><p>Keep production configuration outside public repositories.</p>
</li>
<li><p>Maintain appropriate access controls.</p>
</li>
<li><p>Record relevant administrative activity where appropriate.</p>
</li>
</ul>
<p>Sensitive information such as production credentials, private keys, database passwords, internal endpoints, and deployment configuration should never be published in the public repository.</p>
<h2>Public vs Private Components</h2>
<p>The public repository is intended to contain documentation and publicly distributable components.</p>
<p>Private infrastructure information remains separate.</p>
<p>This distinction is important when developing infrastructure-related software because publishing source code does not mean publishing every part of the production environment.</p>
<p>A public repository should never contain:</p>
<pre><code class="language-plaintext">Production credentials
API secrets
Database passwords
Private keys
Authentication tokens
Internal infrastructure configuration
Private deployment files
Session secrets
</code></pre>
<p>Keeping these components separate makes the project easier to share publicly without exposing sensitive infrastructure.</p>
<h2>What's Next?</h2>
<p>There are several areas I would like to improve as development continues:</p>
<ul>
<li><p>Better system monitoring</p>
</li>
<li><p>More detailed node metrics</p>
</li>
<li><p>Improved session management</p>
</li>
<li><p>Additional authentication controls</p>
</li>
<li><p>Better auditing and logging</p>
</li>
<li><p>Improved administration interface</p>
</li>
<li><p>Additional operating system support</p>
</li>
<li><p>Performance improvements</p>
</li>
</ul>
<p>The roadmap will continue to evolve as the project develops and receives feedback.</p>
<h2>Final Thoughts</h2>
<p><a href="http://NAGAHITAM.MY">NAGAHITAM.MY</a> started as an experiment in building a modern remote server-management platform with Go.</p>
<p>The project combines several areas that I find interesting: networking, WebSocket communication, authentication, system monitoring, session management, and distributed client/server architecture.</p>
<p>The goal is not simply to create another remote-shell utility, but to build a complete management experience around authorized infrastructure.</p>
<p>If you are interested in Go, server management, networking, or infrastructure tooling, I would be interested in hearing your thoughts on the architecture and feature set.</p>
<p><strong>Project:</strong> <a href="http://NAGAHITAM.MY">NAGAHITAM.MY</a><br /><strong>Client:</strong> BD-NETCAT</p>
<p>Use the software only on systems you own or have explicit authorization to administer.</p>
]]></content:encoded></item></channel></rss>