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/creationix/nvm/v0.33.11/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 14
nvm use 14
nvm alias default 14
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.
ENiGMA BBS
git clone https://github.com/NuSkooler/enigma-bbs.git
Install Node Packages
cd enigma-bbs
npm install # yarn also works
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!