* Docs theme to match ENiGMA website
* New docs layout ready for github pages serving * Tonnes of new docs * Update gitignore * Probably other stuff too
This commit is contained in:
25
docs/filebase/acs.md
Normal file
25
docs/filebase/acs.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
layout: page
|
||||
title: ACS
|
||||
---
|
||||
|
||||
If no `acs` block is supplied in a file area definition, the following defaults apply to an area:
|
||||
* `read` (list, download, etc.): `GM[users]`
|
||||
* `write` (upload): `GM[sysops]`
|
||||
|
||||
To override read and/or write ACS, supply a valid `acs` member.
|
||||
|
||||
## Example File Area Config with ACS
|
||||
|
||||
```hjson
|
||||
areas: {
|
||||
retro_pc: {
|
||||
name: Retro PC
|
||||
desc: Oldschool PC/DOS
|
||||
storageTags: [ "retro_pc", "retro_pc_bbs" ]
|
||||
acs: {
|
||||
write: GM[users]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
71
docs/filebase/first-file-area.md
Normal file
71
docs/filebase/first-file-area.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
layout: page
|
||||
title: Configuring a File Base
|
||||
---
|
||||
## ENiGMA½ File Base Key Concepts
|
||||
Like many things in ENiGMA½, configuration of file base(s) is handled via `config.hjson` -- specifically
|
||||
in the `fileBase` section. First, there are a couple of concepts you should understand.
|
||||
|
||||
|
||||
### Storage tags
|
||||
|
||||
**Storage Tags** define paths to a physical (file) storage locations that are 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 (defaults to `<enigma_install_dir/file_base`).
|
||||
Below is an example defining a both a relative and fully qualified path each attached to a storage tag:
|
||||
|
||||
```hjson
|
||||
storageTags: {
|
||||
retro_pc: "retro_pc" // relative
|
||||
retro_pc_bbs: "retro_pc/bbs" // still relative!
|
||||
bbs_stuff: "/path/to/bbs_stuff_storage" // fully qualified
|
||||
}
|
||||
```
|
||||
|
||||
Note that on their own, storage tags don't do anything - they are simply pointers to storage locations on
|
||||
your system.
|
||||
|
||||
### Areas
|
||||
|
||||
File base **Areas** are configured using the `fileBase::areas` configuration block in `config.hjson`.
|
||||
Each entry within `areas` must contain a `name`, `desc`, and `storageTags`. Remember that in ENiGMA½
|
||||
while areas are important, they should generally be used less than in tradditional BBS software. It is
|
||||
recommended to favor the use of more **tags** over more areas.
|
||||
|
||||
Example areas section:
|
||||
|
||||
```hjson
|
||||
areas: {
|
||||
retro_pc: {
|
||||
name: Retro PC
|
||||
desc: Oldschool PC/DOS
|
||||
storageTags: [ "retro_pc", "retro_pc_bbs" ]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Example Configuration
|
||||
|
||||
This combines the two concepts described above. When viewing the file areas from ENiGMA½ a user will
|
||||
only see the "Retro PC" area, but the files in the area are stored in the two locations defined in the
|
||||
`storageTags` section.
|
||||
|
||||
```hjson
|
||||
fileBase: {
|
||||
areaStoragePrefix: /enigma-bbs/file_base
|
||||
|
||||
storageTags: {
|
||||
retro_pc: "retro_pc"
|
||||
retro_pc_bbs: "retro_pc/bbs"
|
||||
}
|
||||
|
||||
areas: {
|
||||
retro_pc: {
|
||||
name: Retro PC
|
||||
desc: Oldschool PC/DOS
|
||||
storageTags: [ "retro_pc", "retro_pc_bbs" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
19
docs/filebase/index.md
Normal file
19
docs/filebase/index.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
layout: page
|
||||
title: About File Areas
|
||||
---
|
||||
## A Different Approach
|
||||
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 (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
|
||||
* Upload processor can extract and use `FILE_ID.DIZ`/`DESC.SDI`, for standard descriptions as well as `README.TXT`, `*.NFO`, and so on for longer descriptions
|
||||
* Upload processor also attempts release year estimation by scanning prementioned description file(s)
|
||||
* Fast indexed Full Text Search (FTS)
|
||||
* Duplicates validated by SHA-256
|
||||
100
docs/filebase/tic-support.md
Normal file
100
docs/filebase/tic-support.md
Normal file
@@ -0,0 +1,100 @@
|
||||
---
|
||||
layout: page
|
||||
title: TIC Support
|
||||
---
|
||||
ENiGMA½ supports TIC files. This is handled by mapping TIC areas to local file areas.
|
||||
|
||||
Under a given node defined in the `ftn_bso` config section in `config.hjson` (see
|
||||
[BSO Import/Export](../messageareas/bso-import-export)), TIC configuration may be supplied:
|
||||
|
||||
```hjson
|
||||
{
|
||||
scannerTossers: {
|
||||
ftn_bso: {
|
||||
nodes: {
|
||||
"46:*": {
|
||||
packetPassword: mypass
|
||||
encoding: cp437
|
||||
archiveType: zip
|
||||
tic: {
|
||||
password: TESTY-TEST
|
||||
uploadBy: Agoranet TIC
|
||||
allowReplace: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You then need to configure the mapping between TIC areas you want to carry, and the file
|
||||
base area and storage tag for them to be tossed to. Optionally you can also add hashtags to the tossed
|
||||
files to assist users in searching for files:
|
||||
|
||||
````hjson
|
||||
ticAreas: {
|
||||
agn_node: {
|
||||
areaTag: msgNetworks
|
||||
storageTag: msg_network
|
||||
hashTags: agoranet,nodelist
|
||||
}
|
||||
}
|
||||
|
||||
````
|
||||
Multiple TIC areas can be mapped to a single file base area.
|
||||
|
||||
## Example Configuration
|
||||
|
||||
An example configuration linking filebase areas, FTN BSO node configuration and TIC area configuration.
|
||||
|
||||
````hjson
|
||||
fileBase: {
|
||||
areaStoragePrefix: /home/bbs/file_areas/
|
||||
|
||||
storageTags: {
|
||||
msg_network: "msg_network"
|
||||
}
|
||||
|
||||
areas: {
|
||||
msgNetworks: {
|
||||
name: Message Networks
|
||||
desc: Message networks news & info
|
||||
storageTags: [
|
||||
"msg_network"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scannerTossers: {
|
||||
ftn_bso: {
|
||||
nodes: {
|
||||
"46:*": {
|
||||
packetPassword: mypass
|
||||
encoding: cp437
|
||||
archiveType: zip
|
||||
tic: {
|
||||
password: TESTY-TEST
|
||||
uploadBy: Agoranet TIC
|
||||
allowReplace: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ticAreas: {
|
||||
agn_node: {
|
||||
areaTag: msgNetworks
|
||||
storageTag: msg_network
|
||||
hashTags: agoranet,nodelist
|
||||
}
|
||||
agn_info: {
|
||||
areaTag: msgNetworks
|
||||
storageTag: msg_network
|
||||
hashTags: agoranet,infopack
|
||||
}
|
||||
}
|
||||
````
|
||||
8
docs/filebase/uploads.md
Normal file
8
docs/filebase/uploads.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
layout: page
|
||||
title: Uploads
|
||||
---
|
||||
|
||||
Note that `storageTags` may contain *1:n* storage tag references.
|
||||
|
||||
**Uploads in a particular area are stored in the first storage tag defined in an area.**
|
||||
11
docs/filebase/web-access.md
Normal file
11
docs/filebase/web-access.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
layout: page
|
||||
title: 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` (default 24 hours). The full URL given to users is built
|
||||
using `contentServers::web::domain` and will default to HTTPS (https://) 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.
|
||||
Reference in New Issue
Block a user