2018-01-31 23:35:54 +00:00
---
layout: page
title: Manual Installation
---
2020-06-13 12:07:19 +00:00
For Linux environments it's recommended you run the [install script ](install-script.md ). If you like to
2018-01-31 23:35:54 +00:00
do things manually, read on...
## Prerequisites
2018-11-06 05:49:27 +00:00
* [Node.js ](https://nodejs.org/ ) version **v10.x LTS or higher** (Note that 8.x LTS *probably* works but is unsupported).
2020-06-13 12:07:19 +00:00
* :information_source: It is **highly** recommended to use [nvm ](https://github.com/creationix/nvm ) to manage your
2018-01-31 23:35:54 +00:00
Node.js installation if you're on a Linux/Unix environment.
2020-06-13 12:07:19 +00:00
2018-01-31 23:35:54 +00:00
* [Python ](https://www.python.org/downloads/ ) 2.7.x for compiling Node.js packages with native extensions.
2020-06-13 12:07:19 +00:00
* A compiler such as Clang or GCC for Linux/UNIX systems or a recent copy of Visual Studio
([Visual Studio Express](https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx) editions
2018-01-31 23:35:54 +00:00
are OK) for Windows users. Note that you **should only need the Visual C++ component** .
* [git ](https://git-scm.com/downloads ) to check out the ENiGMA source code.
2020-06-13 12:07:19 +00:00
2018-01-31 23:35:54 +00:00
## Node.js
2018-11-23 18:05:51 +00:00
### With NVM
2018-12-11 05:29:28 +00:00
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 ](https://github.com/creationix/nvm ). The nvm install may look _something_ like this:
2018-01-31 23:35:54 +00:00
```bash
2018-11-23 18:05:51 +00:00
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
2018-01-31 23:35:54 +00:00
```
2018-12-11 05:29:28 +00:00
:information_source: Do not cut+paste the above command! Visit the [NVM ](https://github.com/creationix/nvm ) page and run the latest version!
2018-01-31 23:35:54 +00:00
2018-11-23 18:05:51 +00:00
Next, install Node.js with NVM:
```bash
nvm install 10
nvm use 10
nvm alias default 10
```
If the above steps completed without errors, you should now have `nvm` , `node` , and `npm` installed and in your environment.
2018-01-31 23:35:54 +00:00
For Windows nvm-like systems exist ([nvm-windows](https://github.com/coreybutler/nvm-windows), ...) or [just download the installer ](https://nodejs.org/en/download/ ).
2020-06-13 12:07:19 +00:00
2018-01-31 23:35:54 +00:00
## ENiGMA BBS
```bash
git clone https://github.com/NuSkooler/enigma-bbs.git
```
## Install Node Packages
```bash
cd enigma-bbs
2018-11-23 18:05:51 +00:00
npm install # yarn also works
2018-01-31 23:35:54 +00:00
```
## Other Recommended Packages
2018-11-23 18:05:51 +00:00
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 system path.
2018-01-31 23:35:54 +00:00
2018-11-23 18:05:51 +00:00
| Package | Description | Debian/Ubuntu Package (APT/DEP) | Red Hat Package (YUM/RPM) | Windows Package |
2018-01-31 23:35:54 +00:00
|------------|-----------------------------------|--------------------------------------------|---------------------------------------------------|------------------------------------------------------------------|
| arj | Unpacking arj archives | `arj` | n/a, binaries [here ](http://arj.sourceforge.net/ ) | [ARJ ](http://arj.sourceforge.net/ ) |
2018-02-03 04:58:17 +00:00
| 7zip | Unpacking zip, rar, archives | `p7zip-full` | `p7zip-full` | [7-zip ](http://www.7-zip.org/ ) |
2020-06-13 12:07:19 +00:00
| lha | Unpacking lha archives | `lhasa` | n/a, source [here ](https://web.archive.org/web/20200301124852/http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm ) | Unknown |
2018-02-03 04:58:17 +00:00
| Rar | Unpacking rar archives | `unrar` | n/a, binaries [here ](https://www.rarlab.com/download.htm ) | Unknown |
2020-06-13 12:07:19 +00:00
| lrzsz | sz/rz: X/Y/Z protocol support | `lrzsz` | `lrzsz` | Unknown |
2018-11-23 18:05:51 +00:00
| sexyz | SexyZ protocol support | [sexyz ](https://l33t.codes/outgoing/sexyz ) | [sexyz ](https://l33t.codes/outgoing/sexyz ) | Available with [Synchronet ](http://wiki.synchro.net/install:win ) |
2018-06-02 22:06:04 +00:00
| exiftool | [ExifTool ](https://www.sno.phy.queensu.ca/~phil/exiftool/ ) | libimage-exiftool-perl | perl-Image-ExifTool | Unknown
| xdms | Unpack/view Amiga DMS | [xdms ](http://manpages.ubuntu.com/manpages/trusty/man1/xdms.1.html ) | xdms | Unknown
2018-01-31 23:35:54 +00:00
## Config Files
2018-11-23 18:05:51 +00:00
You'll need a basic configuration to get started. The main system configuration is handled via `config/config.hjson` . This is an [HJSON ](http://hjson.org/ ) file (compiliant JSON is also OK). See [Configuration ](../configuration/ ) for more information.
2018-01-31 23:35:54 +00:00
2020-06-13 12:07:19 +00:00
Use `oputil.js` to generate your **initial** configuration:
2018-01-31 23:35:54 +00:00
```bash
./oputil.js config new
```
Follow the prompts!