From 1f29905f3081ae14f5eca7b5714a35d3d4d8b93c Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Sat, 3 Feb 2018 23:03:50 -0700 Subject: [PATCH 1/8] Documentation updates + Add File Transfer Protocols section * Minor updates --- docs/_includes/nav.md | 1 + docs/configuration/file-transfer-protocols.md | 49 +++++++++++++++++++ docs/filebase/first-file-area.md | 9 ++-- 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 docs/configuration/file-transfer-protocols.md diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index c8af1abc..f5a7f319 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -19,6 +19,7 @@ - prompt.hjson - [Directory Structure]({{ site.baseurl }}{% link configuration/directory-structure.md %}) - [Archivers]({{ site.baseurl }}{% link configuration/archivers.md %}) + - [File Transfer Protocols]({{ site.baseurl }}{% link configuration/file-transfer-protocols.md %}) - Scheduled jobs - SMTP diff --git a/docs/configuration/file-transfer-protocols.md b/docs/configuration/file-transfer-protocols.md new file mode 100644 index 00000000..da5697c7 --- /dev/null +++ b/docs/configuration/file-transfer-protocols.md @@ -0,0 +1,49 @@ +--- +layout: page +title: File Transfer Protocols +--- +ENiGMA½ currently relies on external executables for "legacy" file transfer protocols such as X, Y, and ZModem. The `fileTransferProtocols` section of `config.hjson` is used to override defaults, add new handlers, etc. Remember that ENiGMA½ also support modern web (HTTP/HTTPS) downloads! + +## File Transfer Protocols +File transfer protocols are managed via the `fileTransferProtocols` configuration block of `config.hjson`. Each entry defines an **external** protocol that can be used for uploads (recv), downloads (send), or both. Depending on the protocol and handler, batch receiving of files (uploads) may also be available. + +### Predefined File Transfer Protocols +The following file transfer protocols are pre-configured in ENiGMA½ as of this writing. System operators may override or extend this list. PRs are welcome for pre-configured additions! + +#### SEXYZ +[SEXYZ from Synchronet](http://wiki.synchro.net/util:sexyz) offers a nice X, Y, and ZModem implementation including ZModem-8k & works under *nix and Windows based systems. As of this writing, ENiGMA½ is pre-configured to support ZModem-8k, XModem, and YModem using SEXYZ. An x86_64 Linux binary, and hopefully more in the future, [can be downloaded here](http://132.0.0.249/bbs-linux-binaries/). + +#### sz/rz +ZModem-8k is configured using the standard Linux [sz(1)](https://linux.die.net/man/1/sz) and [rz(1)](https://linux.die.net/man/1/rz) binaries. Note that these binaries also support XModem and YModem, and as such adding the configurations to your system should be fairly straight forward. + +Generally available as `lrzsz` under Apt or Yum type packaging. + +### File Transfer Protocol Configuration +The following top-level members are available to an external protocol configuration: +* `name`: Required; Display name of the protocol +* `type`: Required; Currently must be `external`. This will be expanded upon in the future with built in protocols. +* `sort`: Optional; Sort key. If not provided, `name` will be used for sorting. + +For protocols of type `external` the following members may be defined: +* `sendCmd`: Required for protocols that can send (allow user downloads); The command/binary to execute. +* `sendArgs`: Required if using `sendCmd`; An array of arguments. A placeholder of `{fileListPath}` may be used to supply a path to a **file containing** a list of files to send, or `{filePaths}` to supply *1:n* individual file paths to send. +* `recvCmd`: Required for protocols that can receive (allow user uploads); The command/binary to execute. +* `recvArgs`: Required if using `recvCmd` and supporting **batch** uploads; An array of arguments. A placeholder of `{uploadDir}` may be used to supply the system provided upload directory. If `{uploadDir}` is not present, the system expects uploaded files to be placed in CWD which will be set to the upload directory. +* `recvArgsNonBatch`: Required if using `recvCmd` and supporting non-batch (single file) uploads; A placeholder of `{fileName}` may be supplied to indicate to the protocol what the uploaded file should be named (this will be collected from the user before the upload starts). +* `escapeTelnet`: Optional; If set to `true`, escape all internal Telnet related codes such as IAC's. This option is required for external protocol handlers such as `sz` and `rz` that do not escape themselves. + +#### Example File Transfer Protocol Configuration +``` +zmodem8kSexyz : { + name : 'ZModem 8k (SEXYZ)', + type : 'external', + sort : 1, + external : { + sendCmd : 'sexyz', + sendArgs : [ '-telnet', '-8', 'sz', '@{fileListPath}' ], + recvCmd : 'sexyz', + recvArgs : [ '-telnet', '-8', 'rz', '{uploadDir}' ], + recvArgsNonBatch : [ '-telnet', '-8', 'rz', '{fileName}' ], + } +} +``` \ No newline at end of file diff --git a/docs/filebase/first-file-area.md b/docs/filebase/first-file-area.md index 58d4a5c1..5e83e8d7 100644 --- a/docs/filebase/first-file-area.md +++ b/docs/filebase/first-file-area.md @@ -3,13 +3,13 @@ layout: page title: Configuring a File Base --- ## ENiGMA½ File Base Key Concepts -Like many things in ENiGMA½, configuration of file base(s) is handled via `config.hjson` -- specifically -in the `fileBase` section. First, there are a couple of concepts you should understand. +Like many things in ENiGMA½, configuration of file base(s) is handled via `config.hjson` — specifically +in the `fileBase` section. First, there are a couple of concepts you should understand: ### Storage tags -**Storage Tags** define paths to a physical (file) storage locations that are referenced in a +**Storage Tags** define paths to physical (file) storage locations that are referenced in a file *Area* entry. Each entry may be either a fully qualified path or a relative path. Relative paths are relative to the value set by the `areaStoragePrefix` key (defaults to ` Date: Sun, 4 Feb 2018 23:05:44 +0000 Subject: [PATCH 2/8] Email config docs --- docs/_includes/nav.md | 2 +- docs/configuration/email.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 docs/configuration/email.md diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index f5a7f319..93685df4 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -20,8 +20,8 @@ - [Directory Structure]({{ site.baseurl }}{% link configuration/directory-structure.md %}) - [Archivers]({{ site.baseurl }}{% link configuration/archivers.md %}) - [File Transfer Protocols]({{ site.baseurl }}{% link configuration/file-transfer-protocols.md %}) + - [Email]({{ site.baseurl }}{% link configuration/email.md %}) - Scheduled jobs - - SMTP - File Base - [About]({{ site.baseurl }}{% link filebase/index.md %}) diff --git a/docs/configuration/email.md b/docs/configuration/email.md new file mode 100644 index 00000000..3815210b --- /dev/null +++ b/docs/configuration/email.md @@ -0,0 +1,30 @@ +--- +layout: page +title: Email +--- +ENiGMA½ uses email to send password reset information to users. For it to work, you need to provide valid SMTP +config in your [config.hjson]({{ site.baseurl }}{% link configuration/config-hjson.md %}) + +## SMTP Services + +If you don't have an SMTP server to send from, [Sendgrid](https://sendgrid.com/) provide a reliable free +service. + +## Example SMTP Configuration + +```hjson +email: { + defaultFrom: sysop@bbs.force9.org + + transport: { + host: smtp.awesomeserver.com + port: 587 + secure: false + auth: { + user: leisuresuitlarry + pass: sierra123 + } + } + } +} +``` \ No newline at end of file From 9b24d1498d1b63e5d5a15221780497fff6df1c48 Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sun, 4 Feb 2018 23:08:32 +0000 Subject: [PATCH 3/8] better change those docs off my own email :D --- docs/configuration/email.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/configuration/email.md b/docs/configuration/email.md index 3815210b..1677eb11 100644 --- a/docs/configuration/email.md +++ b/docs/configuration/email.md @@ -14,7 +14,7 @@ service. ```hjson email: { - defaultFrom: sysop@bbs.force9.org + defaultFrom: sysop@bbs.awesome.com transport: { host: smtp.awesomeserver.com From 6287bdf39600c4d87d0d459bed9e1e4fa55751aa Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Mon, 5 Feb 2018 20:35:56 -0700 Subject: [PATCH 4/8] Add Network Mounts & Symlinks initial docs --- docs/_includes/nav.md | 2 +- docs/filebase/network-mounts-and-symlinks.md | 24 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 docs/filebase/network-mounts-and-symlinks.md diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index 93685df4..f3e6267f 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -31,7 +31,7 @@ - [Web Access]({{ site.baseurl }}{% link filebase/web-access.md %}) - [TIC Support]({{ site.baseurl }}{% link filebase/tic-support.md %}) (Importing from FTN networks) - Tips and tricks - - Network mounts and symlinks + - [Network mounts and symlinks]({{ site.baseurl }}{% link filebase/network-mounts-and-symlinks.md %}) - Message Areas - [Configuring a Message Area]({{ site.baseurl }}{% link messageareas/configuring-a-message-area.md %}) diff --git a/docs/filebase/network-mounts-and-symlinks.md b/docs/filebase/network-mounts-and-symlinks.md new file mode 100644 index 00000000..1ab8895a --- /dev/null +++ b/docs/filebase/network-mounts-and-symlinks.md @@ -0,0 +1,24 @@ +--- +layout: page +title: Network Mounts & Symlinks +--- +## Network Mounts & Symlinks +With many Bulletin Board Systems running on small headless boxes such as Raspberry Pis, it may not be practical to have all files you would like to make available in your file base. One solution to this is to utilize network mounts. Add in symbolic links to make things even easier! + +### A Practical Example +The scenario: A Windows box containing a lot of files you'd like in your systems file base. The BBS itself is running on a Raspberry Pi with very limited space. + +To solve this problem, we can perform the following steps: + 1. Create a network mount in `/mnt/windows_box_share`. + 2. Next, we can create a local file base area such as `/home/enigma/file_base` + 3. Within the file base directory above, create some symbolic links to areas within our share: + ``` + cd /home/enigma/file_base + ln -s /mnt/windows_box_share/some/long/annoying/path area1 + ``` + +What we've done here is make `/home/enigma/file_base/area1` point to the Windows share within some nested directories. Of course we could have just pointed directly to the `/mnt/windows_box_share` area, but using symbolic links has some advantages: + * We can now set `/home/enigma/file_base` as our `areaStoragePrefix`. That is, the base path of all of our file base + * Since we have `areaStoragePrefix` set, we can now make storage tags relative to that path. For example, `leet_files1: "area1/leet_files" + +There are **many** ways one can achieve the mounts between various operating systems. See your distros documentation. \ No newline at end of file From d89030ec5338894873701b8283e80bfb329124d7 Mon Sep 17 00:00:00 2001 From: David Stephens Date: Tue, 6 Feb 2018 10:14:25 +0000 Subject: [PATCH 5/8] Add notepad++ as an hjson editor --- docs/configuration/editing-hjson.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/configuration/editing-hjson.md b/docs/configuration/editing-hjson.md index fde61290..0a752178 100644 --- a/docs/configuration/editing-hjson.md +++ b/docs/configuration/editing-hjson.md @@ -14,3 +14,7 @@ You can find more info at the [Hjson.org website](http://hjson.org/). within the IDE. It provides syntax highlighting to make it clear when you've made a syntax mistake within a config file. +### Notepad++ + +[Notepad++](https://notepad-plus-plus.org) has an Hjson plugin that provides syntax highlighting and other +usual text editor features. The plugin can be found [here](https://github.com/laktak/npp-hjson). \ No newline at end of file From 889170caf1292579e019d0e3272a081e66d2394a Mon Sep 17 00:00:00 2001 From: David Stephens Date: Tue, 6 Feb 2018 10:20:17 +0000 Subject: [PATCH 6/8] OCD docs tidy-up --- README.md | 2 +- docs/{ => assets}/images/enigma-bbs.png | Bin docs/{ => assets}/images/vtxclient.png | Bin docs/index.md | 2 +- docs/servers/websocket.md | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename docs/{ => assets}/images/enigma-bbs.png (100%) rename docs/{ => assets}/images/vtxclient.png (100%) diff --git a/README.md b/README.md index 3a2cc7c3..7c1870ce 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ENiGMA½ BBS Software -![ENiGMA½ BBS](docs/images/enigma-bbs.png "ENiGMA½ BBS") +![ENiGMA½ BBS](docs/assets/images/enigma-bbs.png "ENiGMA½ BBS") ENiGMA½ is a modern BBS software with a nostalgic flair! diff --git a/docs/images/enigma-bbs.png b/docs/assets/images/enigma-bbs.png similarity index 100% rename from docs/images/enigma-bbs.png rename to docs/assets/images/enigma-bbs.png diff --git a/docs/images/vtxclient.png b/docs/assets/images/vtxclient.png similarity index 100% rename from docs/images/vtxclient.png rename to docs/assets/images/vtxclient.png diff --git a/docs/index.md b/docs/index.md index 5cbe5670..a49f8ab1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,7 +2,7 @@ layout: default title: Home --- -![ENiGMA½ BBS](images/enigma-bbs.png "ENiGMA½ BBS") +![ENiGMA½ BBS](assets/images/enigma-bbs.png "ENiGMA½ BBS") ENiGMA½ is a modern BBS software with a nostalgic flair! diff --git a/docs/servers/websocket.md b/docs/servers/websocket.md index 30614006..62df02d7 100644 --- a/docs/servers/websocket.md +++ b/docs/servers/websocket.md @@ -86,6 +86,6 @@ webserver, and unpack it to a temporary directory. otherwise. 9. If you navigate to http://your-hostname.here/vtx.html, you should see a splash screen like the following: - ![VTXClient](../images/vtxclient.png "VTXClient") + ![VTXClient](../assets/images/vtxclient.png "VTXClient") \ No newline at end of file From 409423c6bda13ef631fa4c60ebe52ba3afbac4cf Mon Sep 17 00:00:00 2001 From: David Stephens Date: Tue, 6 Feb 2018 10:50:19 +0000 Subject: [PATCH 7/8] Create colour codes docs. Create empty prompt.hjson doc page pending it being written. --- docs/_includes/nav.md | 4 +++- docs/assets/images/colour-codes.png | Bin 0 -> 15677 bytes docs/configuration/colour-codes.md | 25 +++++++++++++++++++++++++ docs/configuration/prompt-hjson.md | 6 ++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 docs/assets/images/colour-codes.png create mode 100644 docs/configuration/colour-codes.md create mode 100644 docs/configuration/prompt-hjson.md diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index f3e6267f..66453598 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -16,13 +16,15 @@ - [Editing hjson]({{ site.baseurl }}{% link configuration/editing-hjson.md %}) - [config.hjson]({{ site.baseurl }}{% link configuration/config-hjson.md %}) - [menu.hjson]({{ site.baseurl }}{% link configuration/menu-hjson.md %}) - - prompt.hjson + - [prompt.hjson]({{ site.baseurl }}{% link configuration/prompt-hjson.md %}) - [Directory Structure]({{ site.baseurl }}{% link configuration/directory-structure.md %}) - [Archivers]({{ site.baseurl }}{% link configuration/archivers.md %}) - [File Transfer Protocols]({{ site.baseurl }}{% link configuration/file-transfer-protocols.md %}) - [Email]({{ site.baseurl }}{% link configuration/email.md %}) + - [Colour Codes]({{ site.baseurl }}{% link configuration/colour-codes.md %}) - Scheduled jobs + - File Base - [About]({{ site.baseurl }}{% link filebase/index.md %}) - [Configuring a File Area]({{ site.baseurl }}{% link filebase/first-file-area.md %}) diff --git a/docs/assets/images/colour-codes.png b/docs/assets/images/colour-codes.png new file mode 100644 index 0000000000000000000000000000000000000000..83267a62ae6a56850095671553909fa60f62bcae GIT binary patch literal 15677 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 Zy}f$pT-*{Y{WbY--yRQV((flO{T~a2Wn};W literal 0 HcmV?d00001 diff --git a/docs/configuration/colour-codes.md b/docs/configuration/colour-codes.md new file mode 100644 index 00000000..9ad9abdd --- /dev/null +++ b/docs/configuration/colour-codes.md @@ -0,0 +1,25 @@ +--- +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, +full screen editor etc. + +## Usage +When ENiGMA½ encounters colour codes in strings, they'll be processed in order and combined where possible. + +For example: + +`|15|17Example` - white text on a blue background + +`|10|23Example` - light green text on a light grey background + + +## Colour Code Reference + +: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/configuration/prompt-hjson.md b/docs/configuration/prompt-hjson.md new file mode 100644 index 00000000..7b7a3ab5 --- /dev/null +++ b/docs/configuration/prompt-hjson.md @@ -0,0 +1,6 @@ +--- +layout: page +title: prompt.hjson +--- +:zap: This page is to describe general information the `prompt.hjson` file. It +needs fleshing out, please submit a PR if you'd like to help! \ No newline at end of file From c82dafa0e2f3151a715786aef01da52fbedf1b50 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Tue, 6 Feb 2018 21:05:22 -0700 Subject: [PATCH 8/8] Add initial ACS docs --- docs/_includes/nav.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index 66453598..168e1cf5 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -22,6 +22,7 @@ - [File Transfer Protocols]({{ site.baseurl }}{% link configuration/file-transfer-protocols.md %}) - [Email]({{ site.baseurl }}{% link configuration/email.md %}) - [Colour Codes]({{ site.baseurl }}{% link configuration/colour-codes.md %}) + - [Access Condition System (ACS)]({{ site.baseurl }}{% link configuration/acs.md %}) - Scheduled jobs