Update documentation around Gopher config

This commit is contained in:
Bryan Ashby 2022-08-21 13:43:03 -06:00
parent c8df7f3d6b
commit 92ca571e40
No known key found for this signature in database
GPG Key ID: C2C1B501E4EFD994
4 changed files with 23 additions and 10 deletions

View File

@ -33,6 +33,7 @@ npm install # or simply 'yarn'
# 0.0.12-beta to 0.0.13-beta # 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). * 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` * :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: * 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 ```hjson

View File

@ -12,6 +12,7 @@ This document attempts to track **major** changes and additions in ENiGMA½. For
* SyncTERM style font support detection. * SyncTERM style font support detection.
* Added a system method to support setting the client encoding from menus, `@systemMethod:setClientEncoding`. * 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. * 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 ## 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). * 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).

View File

@ -3,7 +3,7 @@ layout: page
title: Gopher Server title: Gopher Server
--- ---
## The Gopher Content 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 ## Configuration
Gopher configuration is found in `contentServers.gopher` in `config.hjson`. 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` | | `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` | | `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. | | `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`: 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! 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 ### 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 fsxNet areas: 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 ```hjson
contentServers: { contentServers: {
@ -55,9 +55,12 @@ contentServers: {
// Expose some public message conferences/areas // Expose some public message conferences/areas
messageConferences: { messageConferences: {
fsxnet: { // fsxNet's conf tag araknet: { // ArakNet's conference tag
// Areas of fsxNet we want to expose: // start with all areas exposed
"fsx_gen", "fsx_bbs" include: [ "*" ]
// ...except the +op and Phenom private areas
exclude: [ "ark_sysop", "ark_phenom" ]
} }
} }
} }

View File

@ -262,11 +262,19 @@
// //
// The Gopher Content Server can export message base // 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: // Example:
// messageConferences: { // exposedConfAreas: {
// some_conf: [ "area_tag1", "area_tag2" ] // some_conf: {
// include: [ "*" ] // all
// exclude: [ "not_this_one" ] // except...
// }
// another_conf: {
// include: [ "foo", "bar", "baz" ]
// exclude: [ "bazbang*" ]
// }
// } // }
// //
} }