Additional doc/updates
This commit is contained in:
parent
a257a9ba4b
commit
4ab08287a2
|
@ -4,10 +4,11 @@ Starting with version 0.0.4-alpha, ENiGMA½ has support for File Bases! Document
|
|||
## A Different Appoach
|
||||
ENiGMA½ has strayed away from the old familure setup here and instead takes a more modern approach:
|
||||
* [Gazelle](https://whatcd.github.io/Gazelle/) inspired system for searching & browsing files
|
||||
* No File Conferences
|
||||
* File Areas are still around but should generally be used less. Instead, files can have one or more tags. Think things like `dos.retro`, `pc.warez`, `game`, etc.
|
||||
* No File Conferences (just areas!)
|
||||
* File Areas are still around but should generally be used less. Instead, files can have one or more tags. Think things like `dos.retro`, `pc.warez`, `games`, etc.
|
||||
* Temporary web (http:// or https://) download links in additional to standard X/Y/Z protocol support
|
||||
* Users can star rate files & search/filter by ratings
|
||||
* Concept of user defined filters
|
||||
|
||||
## Other bells and whistles
|
||||
* A given area can span one to many physical storage locations
|
||||
|
@ -17,7 +18,7 @@ ENiGMA½ has strayed away from the old familure setup here and instead takes a m
|
|||
* Duplicates validated by SHA-256
|
||||
|
||||
## Configuration
|
||||
Like many things in ENiGMA½, configuration of file base(s) is handled via `config.hjson` entries in the `fileBase` section.
|
||||
Like many things in ENiGMA½, configuration of file base(s) is handled via `config.hjson` -- specifically in the `fileBase` section.
|
||||
|
||||
```hjson
|
||||
fileBase: {
|
||||
|
@ -33,6 +34,8 @@ fileBase: {
|
|||
}
|
||||
```
|
||||
|
||||
(Take a look at `core/config.js` for additional keys that may be overridden)
|
||||
|
||||
### Storage tags
|
||||
**Storage Tags** define paths to a physical (file) storage location that can later be referenced in a file *Area* entry. Each entry may be either a fully qualified path or a relative path. Relative paths are relative to the value set by the `areaStoragePrefix` key. Below is an example defining a both a relative and fully qualified path each attached to a storage tag:
|
||||
|
||||
|
@ -71,5 +74,16 @@ To override read and/or write ACS, supply a valid `acs` member.
|
|||
#### Uploads
|
||||
Note that `storageTags` may contain *1:n* storage tag references. **Uploads in a particular area are stored in the first storage tag path**.
|
||||
|
||||
## Web Access
|
||||
Temporary web HTTP(S) URLs can be used to download files using the built in web server. Temporary links expire after `fileBase::web::expireMinutes`. The full URL given to users is built using `contentServers::web::domain` and will default to HTTPS (http://) if enabled with a fallback to HTTP. The end result is users are given a temporary web link that may look something like this: `https://xibalba.l33t.codes:44512/f/h7JK`
|
||||
|
||||
See [Web Server](web_server.md) for more information.
|
||||
|
||||
## oputil
|
||||
The `oputil.js` +op utilty `file-base` command has tools for managing file bases. See `oputil.js file-base --help`.
|
||||
The `oputil.js` +op utilty `file-base` command has tools for managing file bases. For example, to import existing files found within **all** storage locations tied to an area:
|
||||
|
||||
```bash
|
||||
oputil.js file-base --scan some_area
|
||||
```
|
||||
|
||||
See `oputil.js file-base --help` for additional information.
|
|
@ -0,0 +1,39 @@
|
|||
# Web Server
|
||||
ENiGMA½ comes with a built in *content server* for supporting both HTTP and HTTPS. Currently the [File Bases](file_base.md) registeres 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`:
|
||||
|
||||
```hjson
|
||||
contentServers: {
|
||||
web: {
|
||||
domain: bbs.yourdomain.com
|
||||
|
||||
http: {
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
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. Once obtained, simply enable the HTTPS server:
|
||||
```hjson
|
||||
contentServers: {
|
||||
web: {
|
||||
domain: bbs.yourdomain.com
|
||||
|
||||
https: {
|
||||
enabled: true
|
||||
port: 8443
|
||||
certPem: /path/to/your/cert.pem
|
||||
keyPem: /path/to/your/cert_private_key.pem
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 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…
Reference in New Issue