* Docs theme to match ENiGMA website
* New docs layout ready for github pages serving * Tonnes of new docs * Update gitignore * Probably other stuff too
This commit is contained in:
150
docs/index.md
150
docs/index.md
@@ -1,129 +1,27 @@
|
||||
# Introduction
|
||||
ENiGMA½ is a modern from scratch BBS package written in Node.js.
|
||||
---
|
||||
layout: default
|
||||
title: Home
|
||||
---
|
||||

|
||||
|
||||
# Quickstart
|
||||
Unless you have a compelling reason to do otherwise, please use **The Easy Way** below.
|
||||
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||
|
||||
## The Easy Way
|
||||
Under most Linux/UNIX like environments (Linux, BSD, OS X, ...) new users can simply execute the `install.sh` script to get everything up and running. Simply cut + paste the following into your terminal:
|
||||
|
||||
```
|
||||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
|
||||
```
|
||||
|
||||
For other environments such as Windows, see **The Manual Way** below.
|
||||
|
||||
## The Manual Way (aka Advanced)
|
||||
For Windows environments or if you simply like to do things manually, read on...
|
||||
|
||||
### Prerequisites
|
||||
* [Node.js](https://nodejs.org/) version **v6.x or higher**
|
||||
* :information_source: It is **highly** suggested to use [nvm](https://github.com/creationix/nvm) to manage your Node/io.js installs
|
||||
* [Python](https://www.python.org/downloads/) 2.7.x
|
||||
* 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 OK) for Windows users. Note that you **should only need the Visual C++ component**.
|
||||
|
||||
|
||||
### New to Node
|
||||
If you're new to Node.js and/or do not care about Node itself and just want to get ENiGMA½ running these steps should get you going on most \*nix type environments (Please consider the `install.sh` approach unless you really want to manually install!):
|
||||
|
||||
```bash
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
|
||||
nvm install 6
|
||||
nvm use 6
|
||||
```
|
||||
|
||||
If the above completed without errors, you should now have `nvm`, `node`, and `npm` installed and in your environment.
|
||||
|
||||
For Windows nvm-like systems exist ([nvm-windows](https://github.com/coreybutler/nvm-windows), ...) or [just download the installer](https://nodejs.org/en/download/).
|
||||
|
||||
|
||||
### Clone
|
||||
```bash
|
||||
git clone https://github.com/NuSkooler/enigma-bbs.git
|
||||
```
|
||||
|
||||
### Install Node Modules
|
||||
```bash
|
||||
cd enigma-bbs
|
||||
npm install
|
||||
```
|
||||
|
||||
## Generate a SSH Private Key
|
||||
To utilize the SSH server, a SSH Private Key will need generated. This step can be skipped if you do not wish to enable SSH access.
|
||||
```bash
|
||||
openssl genrsa -des3 -out ./config/ssh_private_key.pem 2048
|
||||
```
|
||||
|
||||
### Create a Minimal Config
|
||||
The main system configuration is handled via `/enigma-bbs-install-path/config/config.hjson`. This is a [HJSON](http://hjson.org/) file (compiliant JSON is also OK). See [Configuration](config.md) for more information.
|
||||
|
||||
#### Via oputil.js
|
||||
`oputil.js` can be utilized to generate your **initial** configuration. **This is the recommended way for all new users**:
|
||||
|
||||
```bash
|
||||
./oputil.js config new
|
||||
```
|
||||
|
||||
(You will be asked a series of basic questions)
|
||||
|
||||
#### Example Starting Configuration
|
||||
Below is an _example_ configuration. It is recommended that you at least **start with a generated configuration using oputil.js described above**.
|
||||
|
||||
```hjson
|
||||
{
|
||||
general: {
|
||||
boardName: Super Awesome BBS
|
||||
}
|
||||
|
||||
loginServers: {
|
||||
ssh: {
|
||||
privateKeyPass: YOUR_PK_PASS
|
||||
enabled: true /* set to false to disable the SSH server */
|
||||
}
|
||||
telnet: {
|
||||
port: 8888
|
||||
}
|
||||
}
|
||||
|
||||
messageConferences: {
|
||||
local_general: {
|
||||
name: Local
|
||||
desc: Local Discussions
|
||||
default: true
|
||||
areas: {
|
||||
local_music: {
|
||||
name: Music Discussion
|
||||
desc: Music, bands, etc.
|
||||
default: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Launch!
|
||||
```bash
|
||||
./main.js
|
||||
```
|
||||
|
||||
Read the Points of Interest below for more info. Also check-out all the other documentation files in the [docs](.) directory.
|
||||
|
||||
## Points of Interest
|
||||
* **The first user you create via register/applying (user ID = 1) will be automatically be added to the `sysops` group, and thus becomes SysOp.** (aka root)
|
||||
* Default port for Telnet is 8888 and for SSH 8889
|
||||
* 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.
|
||||
* All data is stored by default in Sqlite3 database files, within the `db` sub folder. Including user data, messages, system logs and file meta data.
|
||||
* You may want to tail the logfile with Bunyan. See Monitoring Logs below.
|
||||
|
||||
## Monitoring Logs
|
||||
Logs are produced by Bunyan which outputs each entry as a JSON object. To tail logs in a colorized and pretty pretty format, issue the following command:
|
||||
|
||||
tail -F /path/to/enigma-bbs/logs/enigma-bbs.log | /path/to/enigma-bbs/node_modules/bunyan/bin/bunyan
|
||||
|
||||
ENiGMA½ does not produce much to standard out. See below for tailing the log file to see what's going on.
|
||||
|
||||
# Advanced Installation
|
||||
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. Additionally, it is suggested that you run as a specific more locked down user (e.g. 'enigma').
|
||||
## 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
|
||||
* 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
|
||||
* Full [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support
|
||||
* 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!
|
||||
* [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) inspirted 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!
|
||||
* 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
|
||||
|
||||
Reference in New Issue
Block a user