diff --git a/docs/configuration/archivers.md b/docs/configuration/archivers.md
index 3f5d941e..c11b2747 100644
--- a/docs/configuration/archivers.md
+++ b/docs/configuration/archivers.md
@@ -24,12 +24,12 @@ The following archivers are pre-configured in ENiGMA½ as of this writing. Remem
#### Lha
* Formats: LHA files such as .lzh.
* Key: `Lha`
-* Homepage/package: `lhasa` on most UNIX-like environments. See also https://fragglet.github.io/lhasa/ and http://www2m.biglobe.ne.jp/~dolphin/lha/lha-unix.htm
+* Homepage/package: `lhasa` on most UNIX-like environments. See also https://fragglet.github.io/lhasa/ and https://web.archive.org/web/20191023045303/http://www2m.biglobe.ne.jp/~dolphin/lha/lha-unix.htm
#### Lzx
* Formats: Amiga LZX
* Key: `Lzx`
-* Homepage/package: `unlzx` under most UNIX-like platforms ([Debian/Ubuntu](https://launchpad.net/~rzr/+archive/ubuntu/ppa/+build/2486127), [RedHat](https://fedora.pkgs.org/28/rpm-sphere/unlzx-1.1-4.1.x86_64.rpm.html), [Source](http://xavprods.free.fr/lzx/))
+* Homepage/package: `unlzx` under most UNIX-like platforms ([Debian/Ubuntu](https://launchpad.net/~rzr/+archive/ubuntu/ppa/+build/2486127), [RedHat](https://fedora.pkgs.org/32/rpm-sphere-x86_64/unlzx-1.1-4.1.x86_64.rpm.html), [Source](http://xavprods.free.fr/lzx/))
#### Arj
* Formats: .arj
@@ -85,4 +85,4 @@ zip: {
handler: 7Zip /* points to a defined archiver */
desc: "ZIP Archive"
}
-```
\ No newline at end of file
+```
diff --git a/docs/configuration/colour-codes.md b/docs/configuration/colour-codes.md
index 9ad9abdd..57d04ee5 100644
--- a/docs/configuration/colour-codes.md
+++ b/docs/configuration/colour-codes.md
@@ -2,8 +2,8 @@
layout: page
title: Colour Codes
---
-ENiGMA½ supports Renegade-style pipe colour codes for formatting strings. You'll see them used in [`config.hjson`](config-hjson),
-[`prompt.hjson`](prompt-hjson), [`menu.hjson`](menu-hjson), and can also be used in places like the oneliner, rumour mod,
+ENiGMA½ supports Renegade-style pipe colour codes for formatting strings. You'll see them used in [`config.hjson`](config-hjson.md),
+[`prompt.hjson`](prompt-hjson.md), [`menu.hjson`](menu-hjson.md), and can also be used in places like the oneliner, rumour mod,
full screen editor etc.
## Usage
@@ -18,8 +18,7 @@ For example:
## Colour Code Reference
-:warning: Colour codes |24 to |31 are considered "blinking" or "iCE" colour codes. On terminals that support them they'll
+:warning: Colour codes |24 to |31 are considered "blinking" or "iCE" colour codes. On terminals that support them they'll
be shown as the correct colours - for terminals that don't, or are that are set to "blinking" mode - they'll blink!
![Regegade style colour codes](../assets/images/colour-codes.png "Colour Codes")
-
diff --git a/docs/filebase/tic-support.md b/docs/filebase/tic-support.md
index 4c128bab..0970ef5e 100644
--- a/docs/filebase/tic-support.md
+++ b/docs/filebase/tic-support.md
@@ -6,7 +6,7 @@ title: TIC Support
ENiGMA½ supports FidoNet-Style TIC file attachments by mapping TIC areas to local file areas.
Under a given node defined in the `ftn_bso` config section in `config.hjson` (see
-[BSO Import/Export](../messageareas/bso-import-export)), TIC configuration may be supplied:
+[BSO Import/Export](../messageareas/bso-import-export.md)), TIC configuration may be supplied:
```hjson
{
diff --git a/docs/filebase/uploads.md b/docs/filebase/uploads.md
index 795c0781..b6bceef2 100644
--- a/docs/filebase/uploads.md
+++ b/docs/filebase/uploads.md
@@ -21,5 +21,4 @@ uploads: {
:information_source: Remember that uploads in a particular area are stored **using the first storage tag defined in that area.**
-:information_source: Any ACS checks are allowed. See [ACS](/docs/acs.md)
-
+:information_source: Any ACS checks are allowed. See [ACS](../configuration/acs.md)
diff --git a/docs/filebase/web-access.md b/docs/filebase/web-access.md
index 714a801e..e0b9bd26 100644
--- a/docs/filebase/web-access.md
+++ b/docs/filebase/web-access.md
@@ -2,10 +2,10 @@
layout: page
title: Web Access
---
-Temporary web HTTP(S) URLs can be used to download files using the built in web server. Temporary links
-expire after `fileBase::web::expireMinutes` (default 24 hours). The full URL given to users is built
-using `contentServers::web::domain` and will default to HTTPS (https://) if enabled with a fallback to
-HTTP. The end result is users are given a temporary web link that may look something like this:
+Temporary web HTTP(S) URLs can be used to download files using the built in web server. Temporary links
+expire after `fileBase::web::expireMinutes` (default 24 hours). The full URL given to users is built
+using `contentServers::web::domain` and will default to HTTPS (https://) if enabled with a fallback to
+HTTP. The end result is users are given a temporary web link that may look something like this:
`https://xibalba.l33t.codes:44512/f/h7JK`
-See [Web Server](web_server.md) for more information.
\ No newline at end of file
+See [Web Server](../servers/web-server.md) for more information.
diff --git a/docs/index.md b/docs/index.md
index b19f1b7d..edeab5a6 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -10,8 +10,8 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
## Features Available Now
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
* Unlimited multi node support (for all those BBS "callers"!)
- * **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based [mods](docs/mods.md)
- * [MCI support](docs/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
+ * **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based [mods](modding/)
+ * [MCI support](art/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
* Telnet, **SSH**, and both secure and non-secure [WebSocket](https://en.wikipedia.org/wiki/WebSocket) access built in! Additional servers are easy to implement
* [CP437](http://www.ascii-codes.com/) and UTF-8 output
* [SyncTerm](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior
@@ -19,9 +19,9 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
* Renegade style pipe color codes
* [SQLite](http://sqlite.org/) storage of users, message areas, and so on
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption
- * [Door support](docs/doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), [Exodus](https://oddnetwork.org/exodus/) and [CombatNet](http://combatnet.us/) support!
+ * [Door support](modding/local-doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), [Exodus](https://oddnetwork.org/exodus/) and [CombatNet](http://combatnet.us/) support!
* [Bunyan](https://github.com/trentm/node-bunyan) logging
- * [Message networks](docs/msg_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
- * [Gazelle](https://github.com/WhatCD/Gazelle) inspired File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/web_server.md). Legacy X/Y/Z modem also supported!
+ * [Message networks](messageareas/message_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
+ * [Gazelle](https://github.com/WhatCD/Gazelle) inspired File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](servers/web-server.md). Legacy X/Y/Z modem also supported!
* Upload processor supporting [FILE_ID.DIZ](https://en.wikipedia.org/wiki/FILE_ID.DIZ) and [NFO](https://en.wikipedia.org/wiki/.nfo) extraction, year estimation, and more!
* ANSI support in the Full Screen Editor (FSE), file descriptions, and so on
diff --git a/docs/installation/manual.md b/docs/installation/manual.md
index 0a8a8f1d..0965a870 100644
--- a/docs/installation/manual.md
+++ b/docs/installation/manual.md
@@ -2,22 +2,22 @@
layout: page
title: Manual Installation
---
-For Linux environments it's recommended you run the [install script](install-script.md). If you like to
+For Linux environments it's recommended you run the [install script](install-script.md). If you like to
do things manually, read on...
## Prerequisites
* [Node.js](https://nodejs.org/) version **v10.x LTS or higher** (Note that 8.x LTS *probably* works but is unsupported).
- * :information_source: It is **highly** recommended to use [nvm](https://github.com/creationix/nvm) to manage your
+ * :information_source: It is **highly** recommended to use [nvm](https://github.com/creationix/nvm) to manage your
Node.js installation if you're on a Linux/Unix environment.
-
+
* [Python](https://www.python.org/downloads/) 2.7.x for compiling Node.js packages with native extensions.
-* 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
+* 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
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.
-
+
## 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](https://github.com/creationix/nvm). The nvm install may look _something_ like this:
@@ -38,7 +38,7 @@ If the above steps completed without errors, you should now have `nvm`, `node`,
For Windows nvm-like systems exist ([nvm-windows](https://github.com/coreybutler/nvm-windows), ...) or [just download the installer](https://nodejs.org/en/download/).
-
+
## ENiGMA BBS
```bash
git clone https://github.com/NuSkooler/enigma-bbs.git
@@ -57,9 +57,9 @@ ENiGMA BBS makes use of a few packages for archive and legacy protocol support.
|------------|-----------------------------------|--------------------------------------------|---------------------------------------------------|------------------------------------------------------------------|
| arj | Unpacking arj archives | `arj` | n/a, binaries [here](http://arj.sourceforge.net/) | [ARJ](http://arj.sourceforge.net/) |
| 7zip | Unpacking zip, rar, archives | `p7zip-full` | `p7zip-full` | [7-zip](http://www.7-zip.org/) |
-| lha | Unpacking lha archives | `lhasa` | n/a, source [here](http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm) | Unknown |
+| 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 |
| Rar | Unpacking rar archives | `unrar` | n/a, binaries [here](https://www.rarlab.com/download.htm) | Unknown |
-| lrzsz | sz/rz: X/Y/Z protocol support | `lrzsz` | `lrzsz` | Unknown |
+| lrzsz | sz/rz: X/Y/Z protocol support | `lrzsz` | `lrzsz` | Unknown |
| 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) |
| 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
@@ -67,7 +67,7 @@ ENiGMA BBS makes use of a few packages for archive and legacy protocol support.
## 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](http://hjson.org/) file (compiliant JSON is also OK). See [Configuration](../configuration/) for more information.
-Use `oputil.js` to generate your **initial** configuration:
+Use `oputil.js` to generate your **initial** configuration:
```bash
./oputil.js config new
diff --git a/docs/installation/production.md b/docs/installation/production.md
index 53641d41..df4dfe7b 100644
--- a/docs/installation/production.md
+++ b/docs/installation/production.md
@@ -2,11 +2,11 @@
layout: page
title: Production Installation
---
-If you've become convinced you would like a "production" BBS running ENiGMA½ a more advanced installation
-may be in order.
+If you've become convinced you would like a "production" BBS running ENiGMA½ a more advanced installation
+may be in order.
[PM2](https://github.com/Unitech/pm2) is an excellent choice for managing your running ENiGMA½ instances if
-you've installed via the [install script](install-script) or [manual installation](manual) method.
+you've installed via the [install script](install-script.md) or [manual installation](manual.md) method.
Additionally, it is suggested that you run as a specific more locked down user (e.g. 'enigma').
If you're running ENiGMA via Docker, then process management is already handled for you!
diff --git a/docs/installation/rpi.md b/docs/installation/rpi.md
index fb8ff235..17fd6b5d 100644
--- a/docs/installation/rpi.md
+++ b/docs/installation/rpi.md
@@ -3,7 +3,7 @@ layout: page
title: Raspberry Pi
---
-All Raspberry Pi models work great with ENiGMA½! Keep in mind compiling the dependencies with
+All Raspberry Pi models work great with ENiGMA½! Keep in mind compiling the dependencies with
`npm install` will take some time and *may* appear to hang. It's still working - just be patient and let it
complete.
@@ -19,9 +19,9 @@ to get it written to an SD card.
3. Expand the filesystem to use the entire SD card (option 7, option A1)
3. Update & upgrade all packages: `apt-get update && apt-get upgrade`
-
+
4. Install required packages: `sudo apt install lrzsz p7zip-full`
-5. Follow the [installation instructions](/installation) to install ENiGMA½.
+5. Follow the [installation instructions](../installation/) to install ENiGMA½.
6. Profit!
diff --git a/docs/installation/testing.md b/docs/installation/testing.md
index 576b28fd..2e5dbea1 100644
--- a/docs/installation/testing.md
+++ b/docs/installation/testing.md
@@ -1,16 +1,16 @@
---
layout: page
-title: Testing Your Installation
+title: Testing Your Installation
---
-Once you've completed your chosen installation method, it's time to test!
+Once you've completed your chosen installation method, it's time to test!
-_Note that if you've used the [Docker](docker) installation method, you've already done this._
+_Note that if you've used the [Docker](docker.md) installation method, you've already done this._
```bash
./main.js
```
-If everything went OK:
+If everything went OK:
```bash
ENiGMA½ Copyright (c) 2014-2020, Bryan Ashby
@@ -33,7 +33,7 @@ To shut down the server, press Ctrl-C.
## Points of Interest
* The default port for Telnet is 8888 and 8889 for SSH.
- * Note that on *nix systems port such as telnet/23 are privileged (e.g. require root). See
+ * Note that on *nix systems port such as telnet/23 are privileged (e.g. require root). See
[this SO article](http://stackoverflow.com/questions/16573668/best-practices-when-running-node-js-with-port-80-ubuntu-linode) for some tips on using these ports on your system if desired.
* The first user you create when logging in will be automatically be added to the `sysops` group.
@@ -44,6 +44,6 @@ If you don't have any telnet software, these are compatible with ENiGMA½:
* [SyncTERM](http://syncterm.bbsdev.net/)
* [EtherTerm](https://github.com/M-griffin/EtherTerm)
* [NetRunner](http://mysticbbs.com/downloads.html)
-* [MagiTerm](https://magickabbs.com/index.php/magiterm/)
+* [MagiTerm](https://magickabbs.com/utils/)
* [VTX](https://github.com/codewar65/VTX_ClientServer) (Browser based)
* [fTelnet](https://www.ftelnet.ca/) (Browser based)
diff --git a/docs/installation/windows.md b/docs/installation/windows.md
index a9fcf060..f2d9300e 100644
--- a/docs/installation/windows.md
+++ b/docs/installation/windows.md
@@ -22,7 +22,7 @@ ENiGMA½ will run on both 32bit and 64bit Windows. If you want to run 16bit door
npm-windows-upgrade
```
- Note: Do not run `npm i -g npm`. Instead use `npm-windows-upgrade` to update npm going forward.
+ Note: Do not run `npm i -g npm`. Instead use `npm-windows-upgrade` to update npm going forward.
Also if you run the NodeJS installer, it will replace the node version.
2. Install [windows-build-tools for npm](https://www.npmjs.com/package/windows-build-tools)
@@ -30,7 +30,7 @@ ENiGMA½ will run on both 32bit and 64bit Windows. If you want to run 16bit door
```Powershell
npm install --global --production windows-build-tools
```
-
+
2. Install [7zip](https://www.7-zip.org/download.html).
@@ -41,19 +41,19 @@ ENiGMA½ will run on both 32bit and 64bit Windows. If you want to run 16bit door
4. Click `New` and paste the path to 7zip
5. Close your console window and reopen. You can type `7z` to make sure it's working.
-(Please see [Archivers](/docs/archivers.md) for additional archive utilities!)
+(Please see [Archivers](../configuration/archivers.md) for additional archive utilities!)
-3. Install [Git](https://git-scm.com/downloads) and optionally [TortoiseGit](https://tortoisegit.org/download/).
+3. Install [Git](https://git-scm.com/downloads) and optionally [TortoiseGit](https://tortoisegit.org/download/).
-4. Clone ENiGMA½ - browse to the directory you want and run
+4. Clone ENiGMA½ - browse to the directory you want and run
```Powershell
git clone "https://github.com/NuSkooler/enigma-bbs.git"
```
Optionally use the TortoiseGit by right clicking the directory and selecting `Git Clone`.
-
+
5. Install ENiGMA½.
- 1. In the enigma directory run
+ 1. In the enigma directory run
```Powershell
npm install
```
@@ -66,6 +66,6 @@ ENiGMA½ will run on both 32bit and 64bit Windows. If you want to run 16bit door
```Powershell
node .\main.js
```
-
-6. Look at [Production Installation](/installation/production) for maintaining ENiGMA½ when you are ready to go live.
+
+6. Look at [Production Installation](production.md) for maintaining ENiGMA½ when you are ready to go live.
diff --git a/docs/messageareas/bso-import-export.md b/docs/messageareas/bso-import-export.md
index 6fc6298e..a7c49c10 100644
--- a/docs/messageareas/bso-import-export.md
+++ b/docs/messageareas/bso-import-export.md
@@ -30,7 +30,7 @@ A node entry starts with a [FTN address](http://ftsc.org/docs/old/fsp-1028.001)
| `packetType` | :-1: | `2`, `2.2`, or `2+`. Defaults to `2+` for modern mailer compatiability. |
| `packetPassword` | :-1: | Optional password for the packet |
| `encoding` | :-1: | Encoding to use for message bodies; Defaults to `utf-8`. |
-| `archiveType` | :-1: | Specifies the archive type (by extension or MIME type) for ArcMail bundles. This should be `zip` (or `application/zip`) for most setups. Other valid examples include `arc`, `arj`, `lhz`, `pak`, `sqz`, or `zoo`. See [Archivers](docs/configuration/archivers.md) for more information. |
+| `archiveType` | :-1: | Specifies the archive type (by extension or MIME type) for ArcMail bundles. This should be `zip` (or `application/zip`) for most setups. Other valid examples include `arc`, `arj`, `lhz`, `pak`, `sqz`, or `zoo`. See [Archivers](../configuration/archivers.md) for more information. |
**Example**:
```hjson
diff --git a/docs/modding/local-doors.md b/docs/modding/local-doors.md
index 2a4a1338..3e3e59ad 100644
--- a/docs/modding/local-doors.md
+++ b/docs/modding/local-doors.md
@@ -28,9 +28,9 @@ Dropfile types specified by `dropFileType`:
| Value | Description |
|-------|-------------|
-| `DOOR` | [DOOR.SYS](http://goldfndr.home.mindspring.com/dropfile/doorsys.htm)
+| `DOOR` | [DOOR.SYS](https://web.archive.org/web/20160325192739/http://goldfndr.home.mindspring.com/dropfile/doorsys.htm)
| `DOOR32` | [DOOR32.SYS](https://raw.githubusercontent.com/NuSkooler/ansi-bbs/master/docs/dropfile_formats/door32_sys.txt)
-| `DORINFO` | [DORINFOx.DEF](http://goldfndr.home.mindspring.com/dropfile/dorinfo.htm)
+| `DORINFO` | [DORINFOx.DEF](https://web.archive.org/web/20160321190038/http://goldfndr.home.mindspring.com/dropfile/dorinfo.htm)
#### Argument Variables
The following variables may be used in `args` entries:
diff --git a/docs/servers/web-server.md b/docs/servers/web-server.md
index 5675c4c6..fd9ac1b9 100644
--- a/docs/servers/web-server.md
+++ b/docs/servers/web-server.md
@@ -2,7 +2,7 @@
layout: page
title: Web Server
---
-ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](file_base.md) registers routes for file downloads, password reset email links are handled via the server, and static files can also be served for your BBS. Other features will likely come in the future or you can easily write your own!
+ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](../modding/file-base-web-download-manager.md) registers routes for file downloads, password reset email links are handled via the server, and static files can also be served for your BBS. Other features will likely come in the future or you can easily write your own!
# Configuration
By default the web server is not enabled. To enable it, you will need to at a minimum configure two keys in the `contentServers.web` section of `config.hjson`: