Manual Installation
For Linux environments it’s recommended you run the install script. If you like to do things manually, read on…
Prerequisites
-
Node.js version v14.x LTS or higher. Versions under v14 are known not to work due to language level changes.
- It is highly recommended to use Node Version Manager (NVM) to manage your Node.js installation if you’re on a Linux/Unix environment.
-
Python for compiling Node.js packages with native extensions via
node-gyp
. -
A compiler such as Clang or GCC for Linux/UNIX systems or a recent copy of Visual Studio (Visual Studio Express editions are OK) for Windows users. Note that you should only need the Visual C++ component.
- Git to check out the ENiGMA source code.
Node.js
With NVM
Node Version Manager (NVM) is an excellent way to install and manage Node.js versions on most UNIX-like environments. Get the latest version here. The nvm install may look something like this:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
Do not cut+paste the above command! Visit the NVM page and run the latest version!
Next, install Node.js with NVM:
nvm install 18
nvm use 18
nvm alias default 18
If the above steps completed without errors, you should now have nvm
, node
, and npm
installed and in your environment.
For Windows nvm-like systems exist (nvm-windows, …) or just download the installer.
Please note that Node v18 is the latest release that is supported for ENiGMA BBS. Support for Node v20 is being worked on in this Github issue.
ENiGMA BBS
git clone https://github.com/NuSkooler/enigma-bbs.git
Install Node Packages
cd enigma-bbs
npm install # yarn also works
At the moment you might see a few warnings about packages being deprecated or replaced. This is a known issue that will be resolved in the future.
Other Recommended Packages
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 PATH
.
Please see External Binaries for information on setting these up.
Additional information in Archivers and File Transfer Protocols
Config Files
You’ll need a basic configuration to get started. The main system configuration is handled via config/config.hjson
. This is an HJSON file (compliant JSON is also OK). See Configuration for more information.
Use oputil.js
to generate your initial configuration:
./oputil.js config new
Follow the prompts!