Added info about server routing, i.e. /static/ vs /
This commit is contained in:
parent
cffa11906c
commit
2bb7165318
|
@ -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,19 @@ 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.
|
||||||
|
|
||||||
## 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