Merge branch 'master' of github.com:NuSkooler/enigma-bbs
This commit is contained in:
commit
9caf1a7428
|
@ -1,16 +0,0 @@
|
||||||
For :bug: bug reports, please fill out the information below plus any additional relevant information. If this is a feature request, feel free to clear the form.
|
|
||||||
|
|
||||||
**Short problem description**
|
|
||||||
|
|
||||||
**Environment**
|
|
||||||
- [ ] I am using Node.js v12.x LTS or higher
|
|
||||||
- [ ] `npm install` or `yarn` reports success
|
|
||||||
- Actual Node.js version (`node --version`):
|
|
||||||
- Operating system (`uname -a` on *nix systems):
|
|
||||||
- Revision (`git rev-parse --short HEAD`):
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
|
|
||||||
**Actual behavior**
|
|
||||||
|
|
||||||
**Steps to reproduce**
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Help improve ENiGMA½!
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the Bug**
|
||||||
|
A clear and concise description of what the :bug: bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Any relevant steps to reproduce the behavior:
|
||||||
|
|
||||||
|
**Expected Behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Actual Behavior**
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Environment**
|
||||||
|
* [ ] I am using Node.js v12.x LTS or higher
|
||||||
|
* [ ] `npm install` or `yarn` reports success
|
||||||
|
* Actual Node.js version (`node --version`):
|
||||||
|
* Operating system (`uname -a` on *nix systems):
|
||||||
|
* Revision (`git rev-parse --short HEAD`):
|
||||||
|
* Any additional relevant information about your setup
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here. Links to relevant specs such as FTN or documentation are appreciated if relevant.
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
ENiGMA½ is a modern BBS software with a nostalgic flair!
|
||||||
|
|
||||||
|
|
||||||
## Features Available Now
|
## Features Available Now
|
||||||
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
||||||
* Unlimited multi node support (for all those BBS "callers"!)
|
* Unlimited multi node support (for all those BBS "callers"!)
|
||||||
|
@ -39,10 +38,10 @@ curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/inst
|
||||||
|
|
||||||
Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/installation/installation-methods.html) for Windows, Docker, and so on...
|
Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/installation/installation-methods.html) for Windows, Docker, and so on...
|
||||||
|
|
||||||
## Known Issues
|
## Donating
|
||||||
As of now this is considered **beta** code! Please **expect bugs** :bug: -- and when you find them, log issues and/or submit pull requests. With that said, the code is actually quite stable and is used by a number of boards.
|
If you feel the urge to donate, [you can do so here](https://liberapay.com/NuSkooler/donate)<br/>
|
||||||
|
|
||||||
See [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) for more information.
|
<a href="https://liberapay.com/NuSkooler/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
* Use [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
* Use [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
passwordChar: *
|
passwordChar: *
|
||||||
|
|
||||||
dateTimeFormat: {
|
dateTimeFormat: {
|
||||||
short: MMM Do h:mm a
|
short: MMM Do hh:mm a
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
|
|
||||||
fullLoginSequenceOnelinerz: {
|
fullLoginSequenceOnelinerz: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: ddd h:mma
|
dateTimeFormat: ddd hh:mma
|
||||||
}
|
}
|
||||||
0: {
|
0: {
|
||||||
mci: {
|
mci: {
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
|
|
||||||
mainMenuUserAchievementsEarned: {
|
mainMenuUserAchievementsEarned: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: MMM Do h:mma
|
dateTimeFormat: MMM Do hh:mma
|
||||||
achievementsInfoFormat10: "|00|07\"|11{title}|07\""
|
achievementsInfoFormat10: "|00|07\"|11{title}|07\""
|
||||||
achievementsInfoFormat11: "|00|03{text}"
|
achievementsInfoFormat11: "|00|03{text}"
|
||||||
}
|
}
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
|
|
||||||
mainMenuLastCallers: {
|
mainMenuLastCallers: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: MMM Do h:mma
|
dateTimeFormat: MMM Do hh:mma
|
||||||
}
|
}
|
||||||
mci: {
|
mci: {
|
||||||
VM1: {
|
VM1: {
|
||||||
|
@ -183,7 +183,7 @@
|
||||||
|
|
||||||
mainMenuUserList: {
|
mainMenuUserList: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: MMM Do h:mma
|
dateTimeFormat: MMM Do hh:mma
|
||||||
}
|
}
|
||||||
mci: {
|
mci: {
|
||||||
VM1: {
|
VM1: {
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
|
|
||||||
mainMenuOnelinerz: {
|
mainMenuOnelinerz: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: ddd h:mma
|
dateTimeFormat: ddd hh:mma
|
||||||
}
|
}
|
||||||
0: {
|
0: {
|
||||||
mci: {
|
mci: {
|
||||||
|
@ -609,7 +609,7 @@
|
||||||
|
|
||||||
fullLoginSequenceLastCallers: {
|
fullLoginSequenceLastCallers: {
|
||||||
config: {
|
config: {
|
||||||
dateTimeFormat: MMM Do h:mma
|
dateTimeFormat: MMM Do hh:mma
|
||||||
}
|
}
|
||||||
mci: {
|
mci: {
|
||||||
VM1: {
|
VM1: {
|
||||||
|
|
|
@ -2,5 +2,12 @@
|
||||||
layout: page
|
layout: page
|
||||||
title: Network Setup
|
title: Network Setup
|
||||||
---
|
---
|
||||||
:zap: This page is to describe general information on how to set your router to forward traffic to ENiGMA. It
|
## Hosting an ENIGMA instance from your Home Network
|
||||||
needs fleshing out, please submit a PR if you'd like to help!
|
|
||||||
|
If you are hosting your ENGIMA instance from inside your local network, you'll need to open your chosen ports on your router, so people outside your local area network can access the BBS.
|
||||||
|
|
||||||
|
Each router has a different way of doing this, but this [comprehensive resource](https://portforward.com/) explains how to port forward on most common brand routers.
|
||||||
|
|
||||||
|
Secondly, it is likely that your public facing server IP is a [Dynamic Address](https://support.opendns.com/hc/en-us/articles/227987827-What-is-a-Dynamic-IP-Address-) automatically provisoned to you by your ISP. You can contact your ISP and request a static IP, but in some areas this isn't available to consumers, only businesses.
|
||||||
|
|
||||||
|
Using a tool like [Duck DNS](https://www.duckdns.org/) will give you a free subdomain that automatically adjusts its records whenever your IP Address changes.
|
|
@ -5,18 +5,19 @@ title: Web Server
|
||||||
ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](../modding/file-base-web-download-manager.md) registers routes for file downloads, password reset email links are handled via the server, and static files can also be served for your BBS. Other features will likely come in the future or you can easily write your own!
|
ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](../modding/file-base-web-download-manager.md) registers routes for file downloads, password reset email links are handled via the server, and static files can also be served for your BBS. Other features will likely come in the future or you can easily write your own!
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
By default the web server is not enabled. To enable it, you will need to at a minimum configure two keys in the `contentServers.web` section of `config.hjson`:
|
By default the web server is not enabled. To enable it, you will need to at a minimum configure two keys in the `contentServers.web` section of `config.hjson`:
|
||||||
|
|
||||||
```hjson
|
```hjson
|
||||||
contentServers: {
|
contentServers: {
|
||||||
web: {
|
web: {
|
||||||
domain: bbs.yourdomain.com
|
domain: bbs.yourdomain.com
|
||||||
|
|
||||||
http: {
|
http: {
|
||||||
enabled: true
|
enabled: true
|
||||||
port: 8080
|
port: 8080
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -28,6 +29,7 @@ The following is a table of all configuration keys available under `contentServe
|
||||||
| `overrideUrlPrefix` | :-1: | Instructs the system to be explicit when handing out URLs. Useful if your server is behind a transparent proxy. |
|
| `overrideUrlPrefix` | :-1: | Instructs the system to be explicit when handing out URLs. Useful if your server is behind a transparent proxy. |
|
||||||
|
|
||||||
### HTTP Configuration
|
### HTTP Configuration
|
||||||
|
|
||||||
Entries available under `contentServers.web.http`:
|
Entries available under `contentServers.web.http`:
|
||||||
|
|
||||||
| Key | Required | Description |
|
| Key | Required | Description |
|
||||||
|
@ -37,6 +39,7 @@ Entries available under `contentServers.web.http`:
|
||||||
| `address` | :-1: | Sets an explicit bind address. |
|
| `address` | :-1: | Sets an explicit bind address. |
|
||||||
|
|
||||||
### HTTPS Configuration
|
### HTTPS Configuration
|
||||||
|
|
||||||
Entries available under `contentServers.web.https`:
|
Entries available under `contentServers.web.https`:
|
||||||
|
|
||||||
| Key | Required | Description |
|
| Key | Required | Description |
|
||||||
|
@ -48,10 +51,21 @@ Entries available under `contentServers.web.https`:
|
||||||
| `keyPem` | :+1: | Overrides the default certificate key path of `/config/https_cert_key.pem`. Key must be in PEM format. See **Certificates** below. |
|
| `keyPem` | :+1: | Overrides the default certificate key path of `/config/https_cert_key.pem`. Key must be in PEM format. See **Certificates** below. |
|
||||||
|
|
||||||
#### Certificates
|
#### Certificates
|
||||||
|
|
||||||
If you don't have a TLS certificate for your domain, a good source for a certificate can be [LetsEncrypt](https://letsencrypt.org/) who supplies free and trusted TLS certificates.
|
If you don't have a TLS certificate for your domain, a good source for a certificate can be [LetsEncrypt](https://letsencrypt.org/) who supplies free and trusted TLS certificates.
|
||||||
|
|
||||||
|
Keep in mind that the SSL certificate provided by Let's Encrypt's Certbot is by default stored in a privileged location; if your ENIGMA instance is not running as root (which it should not be!), you'll need to copy the SSL certificate somewhere else in order for ENIGMA to use it.
|
||||||
|
|
||||||
## Static Routes
|
## Static Routes
|
||||||
|
|
||||||
Static files live relative to the `contentServers.web.staticRoot` path which defaults to `enigma-bbs/www`.
|
Static files live relative to the `contentServers.web.staticRoot` path which defaults to `enigma-bbs/www`.
|
||||||
|
|
||||||
|
`index.html, favicon.ico`, and any error pages like `404.html` are accessible from the route path. Other static assets hosted by the web server must be referenced from `/static/`, for example:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<a href="/static/about.html"> Example Link
|
||||||
|
```
|
||||||
|
|
||||||
## Custom Error Pages
|
## Custom Error Pages
|
||||||
|
|
||||||
Customized error pages can be created for [HTTP error codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error) by providing a `<error_code>.html` file in the *static routes* area. For example: `404.html`.
|
Customized error pages can be created for [HTTP error codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error) by providing a `<error_code>.html` file in the *static routes* area. For example: `404.html`.
|
||||||
|
|
Loading…
Reference in New Issue