From 3972ce1e9fe587a6c6f20346e60ec73337fbdad6 Mon Sep 17 00:00:00 2001 From: NuSkooler Date: Tue, 9 Aug 2022 04:19:47 +0000 Subject: [PATCH] deploy: ad2d5e379a703f3ec151bcef0688078b333d90a0 --- admin/administration.html | 4 +- admin/oputil.html | 4 +- admin/updating.html | 4 +- art/general.html | 4 +- art/mci.html | 4 +- art/themes.html | 4 +- art/views/button_view.html | 4 +- art/views/edit_text_view.html | 4 +- art/views/full_menu_view.html | 4 +- art/views/horizontal_menu_view.html | 4 +- art/views/mask_edit_text_view.html | 4 +- art/views/multi_line_edit_text_view.html | 4 +- art/views/predefined_label_view.html | 4 +- art/views/spinner_menu_view.html | 4 +- art/views/text_view.html | 4 +- art/views/toggle_menu_view.html | 4 +- art/views/vertical_menu_view.html | 4 +- configuration/acs.html | 4 +- configuration/archivers.html | 4 +- configuration/colour-codes.html | 4 +- configuration/config-files.html | 4 +- configuration/config-hjson.html | 4 +- configuration/creating-config.html | 4 +- configuration/directory-structure.html | 4 +- configuration/email.html | 4 +- configuration/event-scheduler.html | 4 +- configuration/external-binaries.html | 4 +- configuration/file-transfer-protocols.html | 4 +- configuration/hjson.html | 4 +- configuration/menu-hjson.html | 4 +- configuration/security.html | 4 +- configuration/sysop-setup.html | 4 +- filebase/acs.html | 4 +- filebase/first-file-area.html | 4 +- filebase/index.html | 4 +- filebase/network-mounts-and-symlinks.html | 4 +- filebase/tic-support.html | 4 +- filebase/uploads.html | 4 +- filebase/web-access.html | 4 +- installation/docker.html | 4 +- installation/hardware/rpi.html | 4 +- installation/hardware/windows.html | 4 +- installation/install-script.html | 4 +- installation/installation-methods.html | 4 +- installation/manual.html | 4 +- installation/network.html | 4 +- installation/production.html | 4 +- installation/testing.html | 4 +- messageareas/bso-import-export.html | 4 +- messageareas/configuring-a-message-area.html | 4 +- messageareas/ftn.html | 4 +- messageareas/message-networks.html | 4 +- messageareas/netmail.html | 4 +- messageareas/qwk.html | 4 +- misc/user-interrupt.html | 4 +- modding/autosig-edit.html | 4 +- modding/bbs-list.html | 4 +- modding/door-servers.html | 4 +- modding/existing-mods.html | 4 +- modding/file-area-list.html | 4 +- modding/file-base-download-manager.html | 4 +- modding/file-base-web-download-manager.html | 4 +- modding/file-transfer-protocol-select.html | 4 +- modding/last-callers.html | 4 +- modding/local-doors.html | 4 +- modding/menu-modules.html | 78 ++++++++- modding/msg-area-list.html | 4 +- modding/msg-conf-list.html | 4 +- modding/node-msg.html | 4 +- modding/onelinerz.html | 4 +- modding/rumorz.html | 4 +- modding/set-newscan-date.html | 4 +- modding/show-art.html | 4 +- modding/telnet-bridge.html | 4 +- modding/top-x.html | 4 +- modding/user-2fa-otp-config.html | 4 +- modding/user-list.html | 4 +- modding/wfc.html | 4 +- modding/whos-online.html | 4 +- servers/contentservers/gopher.html | 4 +- servers/contentservers/nntp.html | 4 +- servers/contentservers/web-server.html | 4 +- servers/loginservers/ssh.html | 4 +- servers/loginservers/telnet.html | 4 +- servers/loginservers/websocket.html | 4 +- sitemap.xml | 172 +++++++++---------- troubleshooting/monitoring-logs.html | 4 +- 87 files changed, 329 insertions(+), 261 deletions(-) diff --git a/admin/administration.html b/admin/administration.html index 8c806154..ddda226d 100644 --- a/admin/administration.html +++ b/admin/administration.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/administration.html"},"description":"Administration","url":"/enigma-bbs/admin/administration.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Administration","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/admin/oputil.html b/admin/oputil.html index 3ecdf1db..48012717 100644 --- a/admin/oputil.html +++ b/admin/oputil.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/oputil.html"},"description":"The oputil CLI ENiGMA½ comes with oputil.js henceforth known as oputil, a command line interface (CLI) tool for sysops to perform general system and user administration. You likely used oputil to do the initial ENiGMA configuration.","url":"/enigma-bbs/admin/oputil.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"oputil","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/admin/updating.html b/admin/updating.html index c1ce6a26..0c1a012e 100644 --- a/admin/updating.html +++ b/admin/updating.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/updating.html"},"description":"Updating Keeping your system up to date ensures you have the latest fixes, features, and general improvements. Updating ENiGMA½ can be a bit of a learning curve compared to traditional binary-release systems you may be used to, especially when running from Git cloned source.","url":"/enigma-bbs/admin/updating.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Updating","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/general.html b/art/general.html index 102fb322..0a12fd9c 100644 --- a/art/general.html +++ b/art/general.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/general.html"},"description":"General Art Information One of the most basic elements of BBS customization is through it’s artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.","url":"/enigma-bbs/art/general.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"General Art Information","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/mci.html b/art/mci.html index 9a06c0e3..f50d6a9f 100644 --- a/art/mci.html +++ b/art/mci.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/mci.html"},"description":"MCI Codes ENiGMA½ supports a variety of MCI codes. Some predefined codes produce information about the current user, system, or other statistics while others are used to instantiate a View.","url":"/enigma-bbs/art/mci.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"MCI Codes","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/themes.html b/art/themes.html index d43e1f45..b309ecd5 100644 --- a/art/themes.html +++ b/art/themes.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/themes.html"},"description":"Themes ENiGMA½ comes with an advanced theming system allowing system operators to highly customize the look and feel of their boards. A given installation can have as many themes as you like for your users to choose from.","url":"/enigma-bbs/art/themes.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Themes","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/button_view.html b/art/views/button_view.html index 0d092e9a..17acf945 100644 --- a/art/views/button_view.html +++ b/art/views/button_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/button_view.html"},"description":"Button View A button view supports displaying a button on a screen.","url":"/enigma-bbs/art/views/button_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Button View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/edit_text_view.html b/art/views/edit_text_view.html index a1aa949a..85604217 100644 --- a/art/views/edit_text_view.html +++ b/art/views/edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/edit_text_view.html"},"description":"Edit Text View An edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values defined by the module.","url":"/enigma-bbs/art/views/edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Edit Text View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/full_menu_view.html b/art/views/full_menu_view.html index 8561d523..9ccf053e 100644 --- a/art/views/full_menu_view.html +++ b/art/views/full_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/full_menu_view.html"},"description":"Full Menu View A full menu view supports displaying a list of times on a screen in a very configurable manner. A full menu view supports either a single row or column of values, similar to Horizontal Menu (HM) and Vertical Menu (VM), or in multiple columns.","url":"/enigma-bbs/art/views/full_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Full Menu View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/horizontal_menu_view.html b/art/views/horizontal_menu_view.html index 6c12738a..ba3cf813 100644 --- a/art/views/horizontal_menu_view.html +++ b/art/views/horizontal_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/horizontal_menu_view.html"},"description":"Horizontal Menu View A horizontal menu view supports displaying a list of times on a screen horizontally (side to side, in a single row) similar to a lightbox.","url":"/enigma-bbs/art/views/horizontal_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Horizontal Menu View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/mask_edit_text_view.html b/art/views/mask_edit_text_view.html index 9396f794..3291fe6d 100644 --- a/art/views/mask_edit_text_view.html +++ b/art/views/mask_edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/mask_edit_text_view.html"},"description":"Mask Edit Text View A mask edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values. Unlike a edit text view, the mask edit text view uses a mask pattern to specify what format the values should be entered in.","url":"/enigma-bbs/art/views/mask_edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Mask Edit Text View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/multi_line_edit_text_view.html b/art/views/multi_line_edit_text_view.html index e46a3b4c..b4b1d257 100644 --- a/art/views/multi_line_edit_text_view.html +++ b/art/views/multi_line_edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/multi_line_edit_text_view.html"},"description":"Multi Line Edit Text View A text display / editor designed to edit or display a message.","url":"/enigma-bbs/art/views/multi_line_edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Multi Line Edit Text View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/predefined_label_view.html b/art/views/predefined_label_view.html index 90e99784..75b1bd79 100644 --- a/art/views/predefined_label_view.html +++ b/art/views/predefined_label_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/predefined_label_view.html"},"description":"Predefined Label View A predefined label view supports displaying a predefined MCI label on a screen.","url":"/enigma-bbs/art/views/predefined_label_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Predefined Label View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/spinner_menu_view.html b/art/views/spinner_menu_view.html index b1df7c90..2609dbe7 100644 --- a/art/views/spinner_menu_view.html +++ b/art/views/spinner_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/spinner_menu_view.html"},"description":"Spinner Menu View A spinner menu view supports displaying a set of times on a screen as a list, with one item displayed at a time. This is generally used to pick one option from a list. Some examples could include selecting from a list of states, themes, etc.","url":"/enigma-bbs/art/views/spinner_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Spinner Menu View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/text_view.html b/art/views/text_view.html index aab46801..87c57a72 100644 --- a/art/views/text_view.html +++ b/art/views/text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/text_view.html"},"description":"Text View A text label view supports displaying simple text on a screen.","url":"/enigma-bbs/art/views/text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Text View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/toggle_menu_view.html b/art/views/toggle_menu_view.html index 9ad21acb..2969f21d 100644 --- a/art/views/toggle_menu_view.html +++ b/art/views/toggle_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/toggle_menu_view.html"},"description":"Toggle Menu View A toggle menu view supports displaying a list of options on a screen horizontally (side to side, in a single row) similar to a Horizontal Menu. It is designed to present one of two choices easily.","url":"/enigma-bbs/art/views/toggle_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Toggle Menu View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/art/views/vertical_menu_view.html b/art/views/vertical_menu_view.html index 5f01c87e..b9ab82f6 100644 --- a/art/views/vertical_menu_view.html +++ b/art/views/vertical_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/vertical_menu_view.html"},"description":"Vertical Menu View A vertical menu view supports displaying a list of times on a screen vertically in a single column, similar to a lightbar. This type of control is often useful for lists of items or menu controls.","url":"/enigma-bbs/art/views/vertical_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Vertical Menu View","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/acs.html b/configuration/acs.html index d9984030..ac96cf3a 100644 --- a/configuration/acs.html +++ b/configuration/acs.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/acs.html"},"description":"Access Condition System (ACS) ENiGMA½ uses an Access Condition System (ACS) that is both familiar to oldschool BBS operators and has it’s own style. With ACS, SysOp’s are able to control access to various areas of the system based on various conditions such as group membership, connection type, etc. Various touch points in the system are configured to allow for acs checks. In some cases ACS is a simple boolean check while others (via ACS blocks) allow to define what conditions must be true for certain rights such as read and write (though others exist as well).","url":"/enigma-bbs/configuration/acs.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Access Condition System (ACS)","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/archivers.html b/configuration/archivers.html index b8497300..b118b029 100644 --- a/configuration/archivers.html +++ b/configuration/archivers.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/archivers.html"},"description":"Archivers ENiGMA½ can detect and process various archive formats such as zip and arj for a variety of tasks from file upload processing to EchoMail bundle compress/decompression. The archives section of config.hjson is used to override defaults, add new handlers, and so on.","url":"/enigma-bbs/configuration/archivers.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Archivers","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/colour-codes.html b/configuration/colour-codes.html index 3047ac8d..72c29178 100644 --- a/configuration/colour-codes.html +++ b/configuration/colour-codes.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/colour-codes.html"},"description":"ENiGMA½ supports Renegade-style pipe colour codes for formatting strings. You’ll see them used throughout your configuration, and can also be used in places like onelinerz, rumourz, full screen editor etc.","url":"/enigma-bbs/configuration/colour-codes.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Colour Codes","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/config-files.html b/configuration/config-files.html index 58224dd0..02bb72eb 100644 --- a/configuration/config-files.html +++ b/configuration/config-files.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/config-files.html"},"description":"General Information ENiGMA½ configuration files such as the system config, menus and themes are formatted in the HJSON format.","url":"/enigma-bbs/configuration/config-files.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Configuration Files","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/config-hjson.html b/configuration/config-hjson.html index 24ed94b7..18a96b19 100644 --- a/configuration/config-hjson.html +++ b/configuration/config-hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/config-hjson.html"},"description":"System Configuration The main system configuration file, config.hjson both overrides defaults and provides additional configuration such as message areas. Defaults lived in core/config_default.js.","url":"/enigma-bbs/configuration/config-hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"System Configuration","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/creating-config.html b/configuration/creating-config.html index 151bf6bb..39b2b407 100644 --- a/configuration/creating-config.html +++ b/configuration/creating-config.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/creating-config.html"},"description":"Configuration files in ENiGMA½ are simple UTF-8 encoded HJSON files. HJSON is just like JSON but simplified and much more resilient to human error.","url":"/enigma-bbs/configuration/creating-config.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Creating Initial Config Files","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/directory-structure.html b/configuration/directory-structure.html index ab72edbb..bc9f7484 100644 --- a/configuration/directory-structure.html +++ b/configuration/directory-structure.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/directory-structure.html"},"description":"All paths mentioned here are relative to the ENiGMA½ checkout directory.","url":"/enigma-bbs/configuration/directory-structure.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Directory Structure","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/email.html b/configuration/email.html index ad054d8d..92bbd641 100644 --- a/configuration/email.html +++ b/configuration/email.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/email.html"},"description":"Email Support ENiGMA½ uses email to send password reset information to users. For it to work, you need to provide valid Nodemailer compatible email block in your config.hjson. Nodemailer supports SMTP in addition to many pre-defined services for ease of use. The transport block within email must be Nodemailer compatible.","url":"/enigma-bbs/configuration/email.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Email","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/event-scheduler.html b/configuration/event-scheduler.html index c5244b41..5834cdcc 100644 --- a/configuration/event-scheduler.html +++ b/configuration/event-scheduler.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/event-scheduler.html"},"description":"Event Scheduler The ENiGMA½ scheduler allows system operators to configure arbitrary events that can can fire based on date and/or time, or by watching for changes in a file. Events can kick off internal handlers, custom modules, or binaries & scripts.","url":"/enigma-bbs/configuration/event-scheduler.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Event Scheduler","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/external-binaries.html b/configuration/external-binaries.html index 20a17e22..6e0e7120 100644 --- a/configuration/external-binaries.html +++ b/configuration/external-binaries.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/external-binaries.html"},"description":"External Support Binaries ENiGMA½ relies on various external binaries in order to perform common tasks such as processing file archives and extracting information from uploads/file imports, some legacy transfer protocols, etc.","url":"/enigma-bbs/configuration/external-binaries.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"External Support Binaries","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/file-transfer-protocols.html b/configuration/file-transfer-protocols.html index b62cc979..52f2c5e5 100644 --- a/configuration/file-transfer-protocols.html +++ b/configuration/file-transfer-protocols.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/file-transfer-protocols.html"},"description":"ENiGMA½ currently relies on external executable binaries for “legacy” file transfer protocols such as X, Y, and ZModem. Remember that ENiGMA½ also support modern web (HTTP/HTTPS) downloads!","url":"/enigma-bbs/configuration/file-transfer-protocols.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Transfer Protocols","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/hjson.html b/configuration/hjson.html index 28879e0c..f69346a9 100644 --- a/configuration/hjson.html +++ b/configuration/hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/hjson.html"},"description":"JSON for Humans! HJSON is the configuration file format used by ENiGMA½ for System Configuration, Menus, etc. HJSON is is JSON for humans!","url":"/enigma-bbs/configuration/hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"HJSON Config Files","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/menu-hjson.html b/configuration/menu-hjson.html index ef467770..65830edc 100644 --- a/configuration/menu-hjson.html +++ b/configuration/menu-hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/menu-hjson.html"},"description":"Menu HJSON The core of a ENiGMA½ based BBS is it’s menus driven by what will be referred to as menu.hjson. Throughout ENiGMA½ documentation, when menu.hjson is referenced, we’re actually talking about config/menus/yourboardname-*.hjson. These files determine the menus (or screens) a user can see, the order they come in, how they interact with each other, ACS configuration, and so on. Like all configuration within ENiGMA½, menu configuration is done in HJSON format.","url":"/enigma-bbs/configuration/menu-hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Menu HSJON","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/security.html b/configuration/security.html index 067cf1c2..422e4c5a 100644 --- a/configuration/security.html +++ b/configuration/security.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/security.html"},"description":"Security Unlike in the golden era of BBSing, modern Internet-connected systems are prone to hacking attempts, eavesdropping, etc. While plain-text passwords, insecure data over Plain Old Telephone Service (POTS), and so on was good enough then, modern systems must employ protections against attacks. ENiGMA½ comes with many security features that help keep the system and your users secure — not limited to: Passwords are never stored in plain-text, but instead are stored using Password-Based Key Derivation Function 2 (PBKDF2). Even the system operator can never know your password! Alternatives to insecure Telnet logins are built in: SSH and secure WebSockets for example. A built in web server with TLS support (aka HTTPS). Optional Two-Factor Authentication (2FA) via One-Time-Password (OTP) for users, supporting Google Authenticator, Time-Based One-Time Password Algorithm (TOTP, RFC-6238), and HMAC-Based One-Time Password Algorithm (HOTP, RFC-4266).","url":"/enigma-bbs/configuration/security.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Security","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/configuration/sysop-setup.html b/configuration/sysop-setup.html index b602cb13..72d87c3f 100644 --- a/configuration/sysop-setup.html +++ b/configuration/sysop-setup.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/sysop-setup.html"},"description":"SySop privileges will be granted to the first user to log into a fresh ENiGMA½ installation. +ops belong to the sysop user group by default.","url":"/enigma-bbs/configuration/sysop-setup.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"SysOp Setup","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/acs.html b/filebase/acs.html index 7959f0db..9c7be0f8 100644 --- a/filebase/acs.html +++ b/filebase/acs.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/acs.html"},"description":"File Base ACS ACS Codes may be used to control access to File Base areas by specifying an acs string in a file area’s definition. If no acs is supplied in a file area definition, the following defaults apply to an area: read : GM[users]: List/view the area and it’s contents. write : GM[sysops]: Upload. download : GM[users]: Download.","url":"/enigma-bbs/filebase/acs.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"ACS","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/first-file-area.html b/filebase/first-file-area.html index bfa752fd..8fa92e55 100644 --- a/filebase/first-file-area.html +++ b/filebase/first-file-area.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/first-file-area.html"},"description":"Configuring a File Base ENiGMA½ offers a powerful and flexible file base. Configuration of file the file base and areas is handled via the fileBase section of config.hjson.","url":"/enigma-bbs/filebase/first-file-area.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Configuring a File Base","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/index.html b/filebase/index.html index ac764077..b5f7142f 100644 --- a/filebase/index.html +++ b/filebase/index.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/"},"description":"About File Areas","url":"/enigma-bbs/filebase/","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"About File Areas","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/network-mounts-and-symlinks.html b/filebase/network-mounts-and-symlinks.html index 8491bcb1..32d5aa77 100644 --- a/filebase/network-mounts-and-symlinks.html +++ b/filebase/network-mounts-and-symlinks.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/network-mounts-and-symlinks.html"},"description":"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!","url":"/enigma-bbs/filebase/network-mounts-and-symlinks.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Network Mounts & Symlinks","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/tic-support.html b/filebase/tic-support.html index 963d5b3b..07a8f53e 100644 --- a/filebase/tic-support.html +++ b/filebase/tic-support.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/tic-support.html"},"description":"TIC Support ENiGMA½ supports FidoNet-Style TIC file attachments by mapping TIC areas to local file areas.","url":"/enigma-bbs/filebase/tic-support.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"TIC Support","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/uploads.html b/filebase/uploads.html index c22c94e4..800f03f2 100644 --- a/filebase/uploads.html +++ b/filebase/uploads.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/uploads.html"},"description":"Uploads The default ACS for file areas in ENiGMA½ is to allow regular users ‘read’ and sysops ‘read/write’. Read ACS includes listing and downloading while write allows for uploading. See File Base ACS for more information.","url":"/enigma-bbs/filebase/uploads.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Uploads","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/filebase/web-access.html b/filebase/web-access.html index c7be8a7d..ecdd0e1f 100644 --- a/filebase/web-access.html +++ b/filebase/web-access.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/filebase/web-access.html"},"description":"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","url":"/enigma-bbs/filebase/web-access.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Web Access","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/docker.html b/installation/docker.html index 9154adff..b9d8d929 100644 --- a/installation/docker.html +++ b/installation/docker.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/docker.html"},"description":"You’ll need Docker installed before going any further. How to do so are out of scope of these docs, but you can find full instructions for every operating system on the Docker website.","url":"/enigma-bbs/installation/docker.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Docker","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/hardware/rpi.html b/installation/hardware/rpi.html index 4741c21b..f786b0a3 100644 --- a/installation/hardware/rpi.html +++ b/installation/hardware/rpi.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/hardware/rpi.html"},"description":"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.","url":"/enigma-bbs/installation/hardware/rpi.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Raspberry Pi","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/hardware/windows.html b/installation/hardware/windows.html index 058b0aab..a549b221 100644 --- a/installation/hardware/windows.html +++ b/installation/hardware/windows.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/hardware/windows.html"},"description":"Installation Under Windows","url":"/enigma-bbs/installation/hardware/windows.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Installation Under Windows","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/install-script.html b/installation/install-script.html index c9009232..b6df2d32 100644 --- a/installation/install-script.html +++ b/installation/install-script.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/install-script.html"},"description":"Install Script 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. Cut + paste the following into your terminal:","url":"/enigma-bbs/installation/install-script.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Install Script","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/installation-methods.html b/installation/installation-methods.html index 0c67f48d..52b509be 100644 --- a/installation/installation-methods.html +++ b/installation/installation-methods.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/installation-methods.html"},"description":"Installation Methods There are multiple ways of installing ENiGMA BBS, depending on your level of experience and desire to do things manually versus have it automated for you.","url":"/enigma-bbs/installation/installation-methods.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Installation Methods","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/manual.html b/installation/manual.html index c2a395d4..b812885c 100644 --- a/installation/manual.html +++ b/installation/manual.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/manual.html"},"description":"For Linux environments it’s recommended you run the install script. If you like to do things manually, read on…","url":"/enigma-bbs/installation/manual.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Manual Installation","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/network.html b/installation/network.html index b6a9c0ed..2b202a40 100644 --- a/installation/network.html +++ b/installation/network.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/network.html"},"description":"Hosting an ENIGMA instance from your Home Network","url":"/enigma-bbs/installation/network.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Network Setup","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/production.html b/installation/production.html index 9daf483a..74647ca1 100644 --- a/installation/production.html +++ b/installation/production.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/production.html"},"description":"If you’ve become convinced you would like a “production” BBS running ENiGMA½ a more advanced installation may be in order.","url":"/enigma-bbs/installation/production.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Production Installation","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/installation/testing.html b/installation/testing.html index 9c108645..1fbe6df8 100644 --- a/installation/testing.html +++ b/installation/testing.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/installation/testing.html"},"description":"Once you’ve completed your chosen installation method, it’s time to test!","url":"/enigma-bbs/installation/testing.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Testing Your Installation","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/bso-import-export.html b/messageareas/bso-import-export.html index b3de6736..df0cc242 100644 --- a/messageareas/bso-import-export.html +++ b/messageareas/bso-import-export.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/bso-import-export.html"},"description":"BSO Import / Export The scanner/tosser module ftn_bso provides Binkley Style Outbound (BSO) import/toss and scan/export of messages EchoMail and NetMail messages. Configuration is supplied in config.hjson under scannerTossers.ftn_bso.","url":"/enigma-bbs/messageareas/bso-import-export.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"BSO Import / Export","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/configuring-a-message-area.html b/messageareas/configuring-a-message-area.html index a69fcb5a..c1b08040 100644 --- a/messageareas/configuring-a-message-area.html +++ b/messageareas/configuring-a-message-area.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/configuring-a-message-area.html"},"description":"General Information In ENiGMA½, a message base is divided into two logical grouping components: Message Conferences and Areas. Message conferences are top level containers while areas are for a specific topic. Messages are always stored internally with a area tag.","url":"/enigma-bbs/messageareas/configuring-a-message-area.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Message Base","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/ftn.html b/messageareas/ftn.html index ac909d5f..761421b0 100644 --- a/messageareas/ftn.html +++ b/messageareas/ftn.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/ftn.html"},"description":"FidoNet-Style Networks (FTN) FidoNet proper and other FidoNet-Style networks are supported by ENiGMA½. A bit of configuration and you’ll be up and running in no time!","url":"/enigma-bbs/messageareas/ftn.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"FidoNet-Style Networks (FTN)","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/message-networks.html b/messageareas/message-networks.html index fed4f336..7b386214 100644 --- a/messageareas/message-networks.html +++ b/messageareas/message-networks.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/message-networks.html"},"description":"Message Networks ENiGMA½ supports external networks such as FidoNet-Style (FTN) and QWK by the way of importing and exporting to/from it’s own internal format. This allows for a very flexible system that can easily be extended by creating new network modules.","url":"/enigma-bbs/messageareas/message-networks.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Message Networks","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/netmail.html b/messageareas/netmail.html index 1977d7eb..ea76b4a2 100644 --- a/messageareas/netmail.html +++ b/messageareas/netmail.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/netmail.html"},"description":"ENiGMA support import and export of Netmail from the Private Mail area. RiPuk @ 21:1/136 and RiPuk <21:1/136> ‘To’ address formats are supported.","url":"/enigma-bbs/messageareas/netmail.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Netmail","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/messageareas/qwk.html b/messageareas/qwk.html index f3d7070d..25126da9 100644 --- a/messageareas/qwk.html +++ b/messageareas/qwk.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/messageareas/qwk.html"},"description":"QWK and QWK-Net Style Networks As like all other networks such as FidoNet-Style (FTN) networks, ENiGMA½ considers QWK external to the system but can import and export the format.","url":"/enigma-bbs/messageareas/qwk.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"QWK Support","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/misc/user-interrupt.html b/misc/user-interrupt.html index 5f71554f..84b88ceb 100644 --- a/misc/user-interrupt.html +++ b/misc/user-interrupt.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/misc/user-interrupt.html"},"description":"User Interruptions ENiGMA½ provides functionality to “interrupt” a user for various purposes such as a node-to-node message. User interruptions can be queued and displayed at the next opportune time such as when switching to a new menu, or realtime if appropriate.","url":"/enigma-bbs/misc/user-interrupt.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"User Interruptions","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/autosig-edit.html b/modding/autosig-edit.html index c7a43f38..20b79619 100644 --- a/modding/autosig-edit.html +++ b/modding/autosig-edit.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/autosig-edit.html"},"description":"The Auto Signature Editor The built in autosig_edit module allows users to edit their auto signatures (AKA “autosig”).","url":"/enigma-bbs/modding/autosig-edit.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Auto Signature Editor","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/bbs-list.html b/modding/bbs-list.html index e5d8effa..b1f5f008 100644 --- a/modding/bbs-list.html +++ b/modding/bbs-list.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/bbs-list.html"},"description":"The BBS List Module The built in bbs_list module provides the ability for users to manage entries to other Bulletin Board Systems.","url":"/enigma-bbs/modding/bbs-list.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"BBS List","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/door-servers.html b/modding/door-servers.html index 83e8f257..d7208d48 100644 --- a/modding/door-servers.html +++ b/modding/door-servers.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/door-servers.html"},"description":"The bbs_link Module Native support for BBSLink doors is provided via the bbs_link module.","url":"/enigma-bbs/modding/door-servers.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Door Servers","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/existing-mods.html b/modding/existing-mods.html index 00af0f0d..12262883 100644 --- a/modding/existing-mods.html +++ b/modding/existing-mods.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/existing-mods.html"},"description":"Many “addon” modules exist and have been released. Below are a few:","url":"/enigma-bbs/modding/existing-mods.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Existing Mods","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/file-area-list.html b/modding/file-area-list.html index 2b084db3..b1d763d6 100644 --- a/modding/file-area-list.html +++ b/modding/file-area-list.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/file-area-list.html"},"description":"The File Area List Module The built in file_area_list module provides a very flexible file listing UI.","url":"/enigma-bbs/modding/file-area-list.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Area List","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/file-base-download-manager.html b/modding/file-base-download-manager.html index d6cb09cd..21e388db 100644 --- a/modding/file-base-download-manager.html +++ b/modding/file-base-download-manager.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/file-base-download-manager.html"},"description":"File Base Download Manager Module The file_base_download_manager module provides a download queue manager for “legacy” (X/Y/Z-Modem, etc.) downloads. Web (HTTP/HTTPS) download functionality can be optionally available when the web content server is enabled.","url":"/enigma-bbs/modding/file-base-download-manager.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Base Download Manager","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/file-base-web-download-manager.html b/modding/file-base-web-download-manager.html index bfb0d36f..f6a9b227 100644 --- a/modding/file-base-web-download-manager.html +++ b/modding/file-base-web-download-manager.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/file-base-web-download-manager.html"},"description":"File Base Web Download Manager Module The file_base_web_download_manager module provides a download queue manager for web (HTTP/HTTPS) based downloads. This module relies on having the web server enabled at a minimum.","url":"/enigma-bbs/modding/file-base-web-download-manager.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Base Web Download Manager","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/file-transfer-protocol-select.html b/modding/file-transfer-protocol-select.html index c1a5f9d3..957a0248 100644 --- a/modding/file-transfer-protocol-select.html +++ b/modding/file-transfer-protocol-select.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/file-transfer-protocol-select.html"},"description":"The Rumorz Module The built in file_transfer_protocol_select module provides a way to select a legacy file transfer protocol (X/Y/Z-Modem, etc.) for upload/downloads.","url":"/enigma-bbs/modding/file-transfer-protocol-select.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Transfer Protocol Select","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/last-callers.html b/modding/last-callers.html index 7f47a742..e7fd1c78 100644 --- a/modding/last-callers.html +++ b/modding/last-callers.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/last-callers.html"},"description":"The Last Callers Module The built in last_callers module provides flexible retro last callers mod.","url":"/enigma-bbs/modding/last-callers.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Last Callers","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/local-doors.html b/modding/local-doors.html index 87397d7c..2d282d0a 100644 --- a/modding/local-doors.html +++ b/modding/local-doors.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/local-doors.html"},"description":"Local Doors ENiGMA½ has many ways to add doors to your system. In addition to the many built in door server modules, local doors are of course also supported using the ! The abracadabra module!","url":"/enigma-bbs/modding/local-doors.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Local Doors","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} diff --git a/modding/menu-modules.html b/modding/menu-modules.html index 173d2f23..7bac0997 100644 --- a/modding/menu-modules.html +++ b/modding/menu-modules.html @@ -13,15 +13,15 @@ - - + + - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/modding/menu-modules.html"},"description":"Menu Modules From initial connection to the screens and mods your users interact with, the entire experience is made up of menu entries — And all menu entries found within menu.hjson are backed by Menu Modules. For basic menus, a standard handler is implemented requiring no code. However, if you would like to create a menu that has custom handling, you will very likely be inheriting from from MenuModule. More on this below.","url":"/enigma-bbs/modding/menu-modules.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Menu Modules","dateModified":"2022-08-09T04:19:44+00:00","datePublished":"2022-08-09T04:19:44+00:00","@context":"https://schema.org"} @@ -2305,12 +2305,16 @@

Menu Modules

-

All menu entries found within menu.hjson are backed by menu modules. Menus are any screen or sectionin within the system. A main menu, a door launcher, and MRC chat are all examples of menus. For basic menus, a standard handler is implemented requiring no code. However, if you would like to create a menu that has custom handling, simply inherit from MenuModule. More on this below.

+

From initial connection to the screens and mods your users interact with, the entire experience is made up of menu entries — And all menu entries found within menu.hjson are backed by Menu Modules. For basic menus, a standard handler is implemented requiring no code. However, if you would like to create a menu that has custom handling, you will very likely be inheriting from from MenuModule. More on this below.

:information_source: Remember that ENiGMA does not impose any stucture to your system! The “flow” of all menu.hjson entries is up to you!

+
+

:bulb: If the module entry is not present in a menu.hjson entry, the system automatically uses standard_menu.js.

+
+

Creating a New Module

At the highest level, to create a new custom menu or mod, inherit from MenuModule and expose it via the getModule exported method:

@@ -2322,6 +2326,37 @@ };
+

Next, override the appropriate methods to add some functionality! Below is an example fragment overriding just initSequence():

+ +
initSequence() {
+    async.series(
+        [
+            callback => {
+                // call base method
+                return this.beforeArt(callback);
+            },
+            callback => {
+                // a private method to display a main "page"
+                return this._displayMainPage(false, callback);
+            },
+        ],
+        () => {
+            this.finishedLoading();
+        }
+    );
+}
+
+ +

ModuleInfo

+

To register your module with the system, include a ModuleInfo declaration in your exports:

+ +
exports.ModuleInfo = {
+  name: 'Super Dope Mod',
+  desc: '...a super dope mod, duh.',
+  author: 'You!',
+};
+
+

Lifecycle

Below is a very high level diagram showing the basic lifecycle of a menu.

@@ -2363,10 +2398,43 @@
  • promptForInput()
  • +

    standardMCIReadyHandler(): This is a standard and commonly used mciReady() implemenation:

    + +
    mciReady(mciData, cb) {
    +  return this.standardMCIReadyHandler(mciData, cb);
    +}
    +
    +

    :information_source: Search the code for the above methods to see how they are used in the base system!

    + +

    Form handler methods specified by @method:someName in your menu.hjson entries map to those found in your module’s menuMethods object. That is, this.menuMethods and have the following signature (formData, extraArgs, cb). For example, consider the following menu.hjson fragment:

    + +
    actionKeys: [
    +  {
    +    keys: [ "a", "shift + a" ]
    +    action: @method:toggleAvailable
    +  }
    +]
    +
    + +

    We can handle this in our module as such:

    +
    exports.getModule = class MyFancyModule extends MenuModule {
    +  constructor(options) {
    +    super(options);
    +
    +    this.menuMethods = {
    +      toggleAvailable: (formData, extraArgs, cb) => {
    +        // ...do something fancy...
    +        return cb(null);
    +      }
    +    };
    +  }
    +}
    +
    +