diff --git a/UPGRADE.md b/UPGRADE.md index b2635887..23085381 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -33,6 +33,7 @@ npm install # or simply 'yarn' # 0.0.12-beta to 0.0.13-beta * To enable the new Waiting for Caller (WFC) support, please see [WFC](docs/modding/wfc.md). * :exclamation: The SSH server's `ssh2` module has gone through a major upgrade. Existing users will need to comment out two SSH KEX algorithms from their `config.hjson` if present else clients such as NetRunner will not be able to connect over SSH. Comment out `diffie-hellman-group-exchange-sha256` and `diffie-hellman-group-exchange-sha1` +* Gopher configuration change. See [WHATSNEW](WHATSNEW.md) * All features and changes are backwards compatible. There are a few new configuration options in a new `term` section in the configuration. These are all optional, but include the following options in case you use them: ```hjson diff --git a/WHATSNEW.md b/WHATSNEW.md index ed9d959f..7fde3239 100644 --- a/WHATSNEW.md +++ b/WHATSNEW.md @@ -12,6 +12,7 @@ This document attempts to track **major** changes and additions in ENiGMA½. For * SyncTERM style font support detection. * Added a system method to support setting the client encoding from menus, `@systemMethod:setClientEncoding`. * Many additional backward-compatible bug fixes since the first release of 0.0.12-beta. See the [project repository](https://github.com/NuSkooler/enigma-bbs) for more information. +* Deprecated Gopher's `messageConferences` configuration key in favor of a easier to deal with `exposedConfAreas` allowing wildcards and exclusions. See [Gopher](./docs/servers/contentservers/gopher.md). ## 0.0.12-beta * The `master` branch has become mainline. What this means to users is `git pull` will always give you the latest and greatest. Make sure to read [Updating](./docs/admin/updating.md) and keep an eye on `WHATSNEW.md` (this file) and [UPGRADE](UPGRADE.md)! See also [ticket #276](https://github.com/NuSkooler/enigma-bbs/issues/276). diff --git a/docs/_docs/servers/contentservers/gopher.md b/docs/_docs/servers/contentservers/gopher.md index 2bbbcce0..694726ea 100644 --- a/docs/_docs/servers/contentservers/gopher.md +++ b/docs/_docs/servers/contentservers/gopher.md @@ -3,7 +3,7 @@ layout: page title: Gopher Server --- ## The Gopher Content Server -The Gopher *content server* provides access to publicly exposed message conferences and areas over Gopher (gopher://) as well as any other content you wish to serve in your Gopher Hole! +The Gopher *content server* provides access to publicly exposed message conferences and areas over Gopher (`gopher://`) as well as any other content you wish to serve in your Gopher Hole! ## Configuration Gopher configuration is found in `contentServers.gopher` in `config.hjson`. @@ -15,7 +15,7 @@ Gopher configuration is found in `contentServers.gopher` in `config.hjson`. | `port` | :-1: | Override the default port of `8070` | | `publicHostname` | :+1: | Set the **public** hostname/domain that Gopher will serve to the outside world. Example: `myfancybbs.com` | | `publicPort` | :+1: | Set the **public** port that Gopher will serve to the outside world. | -| `messageConferences` | :-1: | An map of *conference tags* to *area tags* that are publicly exposed via Gopher. See example below. | +| `exposedConfAreas` | :-1: | An map of *conference tags* to an object containing `include`'d *area tags*, and exceptions via `exclude`'d *area tags*. Area tags may contain wildcards of '*' and '?'. Any area tags that match will be exposed to Gopher. See **Example Configuration** below. Notes on `publicHostname` and `publicPort`: The Gopher protocol serves content that contains host/domain and port even when referencing it's own documents. Due to this, these members must be set to your publicly addressable Gopher server! @@ -43,8 +43,8 @@ iWelcome to a Gopher server! {publicHostname} {publicPort} . ``` -### Example -Let's suppose you are serving Gopher for your BBS at `myfancybbs.com`. Your ENiGMA½ system is listening on the default Gopher `port` of 8070 but you're behind a firewall and want port 70 exposed to the public. Lastly, you want to expose some fsxNet areas: +### Example Configuration +Let's suppose you are serving Gopher for your BBS at `myfancybbs.com`. Your ENiGMA½ system is listening on the default Gopher `port` of 8070 but you're behind a firewall and want port 70 exposed to the public. Lastly, you want to expose some ArakNet areas: ```hjson contentServers: { @@ -55,9 +55,12 @@ contentServers: { // Expose some public message conferences/areas messageConferences: { - fsxnet: { // fsxNet's conf tag - // Areas of fsxNet we want to expose: - "fsx_gen", "fsx_bbs" + araknet: { // ArakNet's conference tag + // start with all areas exposed + include: [ "*" ] + + // ...except the +op and Phenom private areas + exclude: [ "ark_sysop", "ark_phenom" ] } } } diff --git a/misc/config_template.in.hjson b/misc/config_template.in.hjson index 5b51b43a..b1001bd4 100644 --- a/misc/config_template.in.hjson +++ b/misc/config_template.in.hjson @@ -262,11 +262,19 @@ // // The Gopher Content Server can export message base - // conferences and areas via the "messageConferences" key. + // conferences and areas via the 'exposedConfAreas1 key + // and 'include' and optional 'exclude' directives. // // Example: - // messageConferences: { - // some_conf: [ "area_tag1", "area_tag2" ] + // exposedConfAreas: { + // some_conf: { + // include: [ "*" ] // all + // exclude: [ "not_this_one" ] // except... + // } + // another_conf: { + // include: [ "foo", "bar", "baz" ] + // exclude: [ "bazbang*" ] + // } // } // }