<metaname="description"content="For Linux environments it’s recommended you run the install script. If you like to do things manually, read on…"/>
<metaproperty="og:description"content="For Linux environments it’s recommended you run the install script. If you like to do things manually, read on…"/>
{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/manual.html"},"description":"For Linux environments it’s recommended you run the install script. If you like to do things manually, read on…","url":"/enigma-bbs/installation/manual.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Manual Installation","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"}</script>
<ahref="https://nodejs.org/">Node.js</a> version <strong>v14.x LTS or higher</strong>. Versions under v14 are known not to work due to language level changes.
<imgclass="emoji"title=":bulb:"alt=":bulb:"src="https://github.githubassets.com/images/icons/emoji/unicode/1f4a1.png"height="20"width="20"> It is <strong>highly</strong> recommended to use <ahref="https://github.com/creationix/nvm">Node Version Manager (NVM)</a> to manage your Node.js installation if you’re on a Linux/Unix environment.</li>
</ul>
</li>
<li>
<p><ahref="https://www.python.org/downloads/">Python</a> for compiling Node.js packages with native extensions via <codeclass="language-plaintext highlighter-rouge">node-gyp</code>.</p>
</li>
<li>
<p>A compiler such as Clang or GCC for Linux/UNIX systems or a recent copy of Visual Studio
(<ahref="https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx">Visual Studio Express</a> editions
are OK) for Windows users. Note that you <strong>should only need the Visual C++ component</strong>.</p>
</li>
<li>
<ahref="https://git-scm.com/downloads">Git</a> to check out the ENiGMA source code.</li>
</ul>
<h2id="nodejs">Node.js</h2>
<h3id="with-nvm">With NVM</h3>
<p>Node Version Manager (NVM) is an excellent way to install and manage Node.js versions on most UNIX-like environments. <ahref="https://github.com/creationix/nvm">Get the latest version here</a>. The nvm install may look <em>something</em> like this:</p>
<p><imgclass="emoji"title=":information_source:"alt=":information_source:"src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png"height="20"width="20"> Do not cut+paste the above command! Visit the <ahref="https://github.com/creationix/nvm">NVM</a> page and run the latest version!</p>
<p>If the above steps completed without errors, you should now have <codeclass="language-plaintext highlighter-rouge">nvm</code>, <codeclass="language-plaintext highlighter-rouge">node</code>, and <codeclass="language-plaintext highlighter-rouge">npm</code> installed and in your environment.</p>
<p>For Windows nvm-like systems exist (<ahref="https://github.com/coreybutler/nvm-windows">nvm-windows</a>, …) or <ahref="https://nodejs.org/en/download/">just download the installer</a>.</p>
<p>ENiGMA BBS makes use of a few packages for archive and legacy protocol support. They’re not pre-requisites for running ENiGMA, but without them you’ll miss certain functionality. Once installed, they should be made available on your systems <codeclass="language-plaintext highlighter-rouge">PATH</code>.</p>
<p><imgclass="emoji"title=":information_source:"alt=":information_source:"src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png"height="20"width="20"> Please see <ahref="/enigma-bbs/configuration/external-binaries.html">External Binaries</a> for information on setting these up.</p>
<p><imgclass="emoji"title=":information_source:"alt=":information_source:"src="https://github.githubassets.com/images/icons/emoji/unicode/2139.png"height="20"width="20"> Additional information in <ahref="/enigma-bbs/configuration/archivers.html">Archivers</a> and <ahref="/enigma-bbs/configuration/file-transfer-protocols.html">File Transfer Protocols</a></p>
<p>You’ll need a basic configuration to get started. The main system configuration is handled via <codeclass="language-plaintext highlighter-rouge">config/config.hjson</code>. This is an <ahref="http://hjson.org/">HJSON</a> file (compliant JSON is also OK). See <ahref="/enigma-bbs/configuration/hjson.html">Configuration</a> for more information.</p>
<p>Use <codeclass="language-plaintext highlighter-rouge">oputil.js</code> to generate your <strong>initial</strong> configuration:</p>
<divclass="language-bash highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>./oputil.js config new