* 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:
David Stephens
2018-01-31 23:35:54 +00:00
parent 06ea2d1600
commit 26849ba4fa
62 changed files with 1974 additions and 810 deletions

25
docs/filebase/acs.md Normal file
View 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]
}
}
}
```

View 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
View 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

View 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
View 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.**

View 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.