From 2e7862043d74f53d908c019e639311e71b8b56b2 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Thu, 9 Feb 2017 20:48:44 -0700 Subject: [PATCH] More document updates --- README.md | 4 ++-- docs/about.md | 29 ++++++++++++++++------------- docs/config.md | 15 ++++++++++----- docs/menu_system.md | 4 +++- docs/web_server.md | 2 +- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 45b07420..2dd16223 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ ENiGMA½ is a modern BBS software with a nostalgic flair! * [Door support](docs/doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), and [DoorParty](http://forums.throwbackbbs.com/) 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. Legacy X/Y/Z modem also supported! + * [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! - + ## In the Works * More ES6+ usage, and **documentation**! * More ACS support coverage diff --git a/docs/about.md b/docs/about.md index 55d0a45f..50656011 100644 --- a/docs/about.md +++ b/docs/about.md @@ -1,16 +1,19 @@ # About ENiGMA½ ## High Level Feature Overview -* Multi platform: Anywhere Node.js runs likely works (tested under Linux and OS X) -* Multi node support -* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JS based mods -* MCI support for lightbars, toggles, input areas, and so on plus many other other bells and whistles -* Telnet & SSH access built in. Additional servers are easy to implement & plug in -* [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. -* [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support -* Renegade style pipe codes -* [SQLite](http://sqlite.org/) storage of users and message areas -* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password storage -* Door support including common dropfile formats and [DOSEMU](http://www.dosemu.org/) -* [Bunyan](https://github.com/trentm/node-bunyan) logging \ No newline at end of file + * 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 + * MCI support for lightbars, toggles, input areas, and so on plus many other other bells and whistles + * Telnet & **SSH** 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 + * [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](doors.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), and [DoorParty](http://forums.throwbackbbs.com/) support! + * [Bunyan](https://github.com/trentm/node-bunyan) logging + * [Message networks](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](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! \ No newline at end of file diff --git a/docs/config.md b/docs/config.md index 15496834..ecd2ed89 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,10 +1,10 @@ # Configuration Configuration files in ENiGMA½ are simple UTF-8 encoded [HJSON](http://hjson.org/) files. HJSON is just like JSON but simplified and much more resilient to human error. -## System Configuraiton +## System Configuration The main system configuration file, `config.hjson` both overrides defaults and provides additional configuration such as message areas. The default path is `~/.config/enigma-bbs/config.hjson` though you can override this with the `--config` parameter when invoking `main.js`. Values found in core/config.js may be overridden by simply providing the object members you wish replace. -**Windows note**: **~** resolves to *C:\Users\YOURLOGINNAME\* on modern installations, e.g. *C:\Users\NuSkooler\\.config\enigma-bbs\config.hjson* +**Windows note**: **~** resolves to *C:\Users\YOURLOGINNAME\* on modern Windows installations, e.g. `C:\Users\NuSkooler\\.config\enigma-bbs\config.hjson` ### oputil.js Please see `oputil.js config` for configuration generation options. @@ -24,13 +24,18 @@ general: { } ``` +(Note the very slightly different syntax. **You can use standard JSON if you wish**) + ### Specific Areas of Interest -* [Doors](doors.md) -* [MCI Codes](mci.md) * [Menu System](menu_system.md) * [Message Conferences](msg_conf_area.md) * [Message Networks](msg_networks.md) +* [File Base](file_base.md) * [File Archives & Archivers](archives.md) +* [Doors](doors.md) +* [MCI Codes](mci.md) +* [Web Server](web_server.md) +...and other stuff [in the /docs directory](./) ### A Sample Configuration @@ -121,4 +126,4 @@ Below is a **sample** `config.hjson` illustrating various (but certainly not all ``` ## Menus -TODO: Documentation on menu.hjson, etc. \ No newline at end of file +See [the menu system docs](menu_system.md) \ No newline at end of file diff --git a/docs/menu_system.md b/docs/menu_system.md index b8b02fc8..1dea637c 100644 --- a/docs/menu_system.md +++ b/docs/menu_system.md @@ -1,13 +1,14 @@ # Menu System ENiGMA½'s menu system is highly flexible and moddable. The possibilities are almost endless! By modifying your `menu.hjson` you will be able to create a custom look and feel unique to your board. -The default `menu.hjson` file lives within the `mods` directory. To specify another file, set the `menuFile` property in your `config.hjson` file: +The default `menu.hjson` file lives within the `mods` directory. It is **highly recommended** to specify another file by setting the `menuFile` property in your `config.hjson` file: ```hjson general: { /* Can also specify a full path */ menuFile: mybbs.hjson } ``` +(You can start by copying the default `menu.hjson` to `mybbs.hjson`) ## The Basics Like all configuration within ENiGMA½, menu configuration is done via a HJSON file. This file is located in the `mods` directory: `mods/menu.hjson`. @@ -37,6 +38,7 @@ Now let's look at `matrix`, the `next` entry from `telnetConnected`: ```hjson matrix: { art: matrix + desc: Login Matrix form: { 0: { VM: { diff --git a/docs/web_server.md b/docs/web_server.md index 5e28ea95..740515e9 100644 --- a/docs/web_server.md +++ b/docs/web_server.md @@ -1,5 +1,5 @@ # Web Server -ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](file_base.md) registeres routes for file downloads, 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](file_base.md) registers routes for file downloads, 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`: