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
* 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

View File

@ -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).

View File

@ -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" ]
}
}
}

View File

@ -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*" ]
// }
// }
//
}