mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-07-30 22:46:17 +02:00
Doc updates on servers
This commit is contained in:
parent
78b78e8c79
commit
dd0a673061
3 changed files with 40 additions and 36 deletions
|
@ -2,13 +2,10 @@
|
|||
layout: page
|
||||
title: Web Server
|
||||
---
|
||||
ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the
|
||||
[File Bases](file_base.md) registers routes for file downloads, 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](file_base.md) registers routes for file downloads, 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
|
||||
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`:
|
||||
# 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`:
|
||||
|
||||
```hjson
|
||||
contentServers: {
|
||||
|
@ -17,39 +14,44 @@ contentServers: {
|
|||
|
||||
http: {
|
||||
enabled: true
|
||||
port: 8080
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
This will configure HTTP for port 8080 (override with `port`). To additionally enable HTTPS, you will need a
|
||||
PEM encoded SSL certificate and private key. [LetsEncrypt](https://letsencrypt.org/) supply free trusted
|
||||
certificates that work perfectly with ENiGMA½.
|
||||
The following is a table of all configuration keys available under `contentServers.web`:
|
||||
| Key | Required | Description |
|
||||
|------|----------|-------------|
|
||||
| `domain` | :+1: | Sets the domain, e.g. `bbs.yourdomain.com`. |
|
||||
| `http` | :-1: | Sub configuration for HTTP (non-secure) connections. See **HTTP Configuration** below. |
|
||||
| `overrideUrlPrefix` | :-1: | Instructs the system to be explicit when handing out URLs. Useful if your server is behind a transparent proxy. |
|
||||
|
||||
Once obtained, simply enable the HTTPS server:
|
||||
### HTTP Configuration
|
||||
Entries available under `contentServers.web.http`:
|
||||
|
||||
```hjson
|
||||
contentServers: {
|
||||
web: {
|
||||
domain: bbs.yourdomain.com
|
||||
// set 'overrideUrlPrefix' if for example, you use a transparent proxy in front of ENiGMA and need to be explicit about URLs the system hands out
|
||||
overrideUrlPrefix: https://bbs.yourdomain.com
|
||||
https: {
|
||||
enabled: true
|
||||
port: 8443
|
||||
certPem: /path/to/your/cert.pem
|
||||
keyPem: /path/to/your/cert_private_key.pem
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
| Key | Required | Description |
|
||||
|------|----------|-------------|
|
||||
| `enable` | :+1: | Set to `true` to enable this server.
|
||||
| `port` | :-1: | Override the default port of `8080`. |
|
||||
| `address` | :-1: | Sets an explicit bind address. |
|
||||
|
||||
If no certificate paths are supplied, ENiGMA½ will assume the defaults of `/config/https_cert.pem` and
|
||||
`/config/https_cert_key.pem` accordingly.
|
||||
### HTTPS Configuration
|
||||
Entries available under `contentServers.web.htt2`:
|
||||
|
||||
### Static Routes
|
||||
Static files live relative to the `contentServers::web::staticRoot` path which defaults to `enigma-bbs/www`.
|
||||
| Key | Required | Description |
|
||||
|------|----------|-------------|
|
||||
| `enable` | :+1: | Set to `true` to enable this server.
|
||||
| `port` | :-1: | Override the default port of `8080`. |
|
||||
| `address` | :-1: | Sets an explicit bind address. |
|
||||
| `certPem` | :+1: | Overrides the default certificate path of `/config/https_cert.pem`. Certificate 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. |
|
||||
|
||||
### 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`.
|
||||
#### 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.
|
||||
|
||||
## Static Routes
|
||||
Static files live relative to the `contentServers.web.staticRoot` path which defaults to `enigma-bbs/www`.
|
||||
|
||||
## 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`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue