Merge branch 'master' of github.com:NuSkooler/enigma-bbs
This commit is contained in:
commit
32bc235956
|
@ -0,0 +1,75 @@
|
|||
name: Build and deploy jekyll site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# - source
|
||||
# It is highly recommended that you only run this action on push to a
|
||||
# specific branch, eg. master or source (if on *.github.io repo)
|
||||
|
||||
jobs:
|
||||
jekyll:
|
||||
runs-on: ubuntu-latest # can change this to ubuntu-latest if you prefer
|
||||
steps:
|
||||
- name: 📂 setup
|
||||
uses: actions/checkout@v2
|
||||
# include the lines below if you are using jekyll-last-modified-at
|
||||
# or if you would otherwise need to fetch the full commit history
|
||||
# however this may be very slow for large repositories!
|
||||
# with:
|
||||
# fetch-depth: '0'
|
||||
|
||||
- name: 💎 setup ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.7 # can change this to 2.7 or whatever version you prefer
|
||||
|
||||
- name: 🔨 install dependencies & build site
|
||||
uses: limjh16/jekyll-action-ts@v2
|
||||
with:
|
||||
enable_cache: true
|
||||
### Enables caching. Similar to https://github.com/actions/cache.
|
||||
#
|
||||
# format_output: true
|
||||
### Uses prettier https://prettier.io to format jekyll output HTML.
|
||||
#
|
||||
# prettier_opts: '{ "useTabs": true }'
|
||||
### Sets prettier options (in JSON) to format output HTML. For example, output tabs over spaces.
|
||||
### Possible options are outlined in https://prettier.io/docs/en/options.html
|
||||
#
|
||||
# prettier_ignore: 'about/*'
|
||||
### Ignore paths for prettier to not format those html files.
|
||||
### Useful if the file is exceptionally large, so formatting it takes a while.
|
||||
### Also useful if HTML compression is enabled for that file / formatting messes it up.
|
||||
#
|
||||
jekyll_src: docs
|
||||
### If the jekyll website source is not in root, specify the directory. (in this case, sample_site)
|
||||
### By default, this is not required as the action searches for a _config.yml automatically.
|
||||
#
|
||||
gem_src: docs
|
||||
### By default, this is not required as the action searches for a _config.yml automatically.
|
||||
### However, if there are multiple Gemfiles, the action may not be able to determine which to use.
|
||||
### In that case, specify the directory. (in this case, sample_site)
|
||||
###
|
||||
### If jekyll_src is set, the action would automatically choose the Gemfile in jekyll_src.
|
||||
### In that case this input may not be needed as well.
|
||||
#
|
||||
# key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
||||
# restore-keys: ${{ runner.os }}-gems-
|
||||
### In cases where you want to specify the cache key, enable the above 2 inputs
|
||||
### Follows the format here https://github.com/actions/cache
|
||||
#
|
||||
# custom_opts: '--drafts --lsi'
|
||||
### If you need to specify any Jekyll build options, enable the above input
|
||||
### Flags accepted can be found here https://jekyllrb.com/docs/configuration/options/#build-command-options
|
||||
|
||||
- name: 🚀 deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./_site
|
||||
# if the repo you are deploying to is <username>.github.io, uncomment the line below.
|
||||
# if you are including the line below, make sure your source files are NOT in the master branch:
|
||||
# publish_branch: master
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
# Contributing
|
||||
|
||||
## Style
|
||||
Though you'll see a lot of older style callback code, please utilize modern JavaScript. ES6 classes, arrow functions, and builtins.
|
||||
There is almost never a reason to use `var`. Prefer `const` where you can and and `let` otherwise.
|
||||
Save with UNIX line feeds, UTF-8 without BOM, and tabs set to 4 spaces.
|
|
@ -46,7 +46,7 @@ If you feel the urge to donate, [you can do so here](https://liberapay.com/NuSko
|
|||
## Support
|
||||
* See [Discussions](https://github.com/NuSkooler/enigma-bbs/discussions) and [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
||||
* **Discussion on a ENiGMA BBS!** (see Boards below)
|
||||
* IRC: **#enigma-bbs** on **chat.freenode.net** ([webchat](https://webchat.freenode.net/?channels=enigma-bbs))
|
||||
* IRC: **#enigma-bbs** on **irc.libera.chat:6697(TLS)** ([webchat](https://web.libera.chat/gamja/?channels=#enigma-bbs))
|
||||
* FSX_ENG on [fsxNet](http://bbs.geek.nz/#fsxNet) or ARK_ENIG on [ArakNet](https://www.araknet.xyz/) available on many fine boards
|
||||
* Email: bryan -at- l33t.codes
|
||||
* [Facebook ENiGMA½ group](https://www.facebook.com/groups/enigmabbs/)
|
||||
|
|
15
docs/Gemfile
15
docs/Gemfile
|
@ -8,10 +8,10 @@ source "https://rubygems.org"
|
|||
#
|
||||
# This will help ensure the proper Jekyll version is running.
|
||||
# Happy Jekylling!
|
||||
gem "jekyll", "~> 3.7.0"
|
||||
gem "jekyll", "~> 4.2.1"
|
||||
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
gem "hacker"
|
||||
# gem "hacker"
|
||||
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
|
@ -19,11 +19,12 @@ gem "hacker"
|
|||
|
||||
# If you have any plugins, put them here!
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-feed", "~> 0.6"
|
||||
gem 'jekyll-seo-tag'
|
||||
gem 'jekyll-theme-hacker'
|
||||
gem 'jekyll-sitemap'
|
||||
gem 'jemoji'
|
||||
gem 'jekyll-seo-tag', '~> 2.7.1'
|
||||
gem 'jekyll-theme-hacker', '~>0.2.0'
|
||||
gem 'jekyll-sitemap', '~>1.4.0'
|
||||
gem 'jemoji', '~>0.12.0'
|
||||
gem 'jekyll-relative-links', '~>0.6.1'
|
||||
gem 'jekyll-minifier'
|
||||
end
|
||||
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
|
|
|
@ -1,101 +1,116 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (4.2.9)
|
||||
i18n (~> 0.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
addressable (2.5.2)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
activesupport (7.0.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 1.6, < 2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.0.5)
|
||||
em-websocket (0.5.1)
|
||||
concurrent-ruby (1.1.9)
|
||||
cssminify2 (2.0.1)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.5)
|
||||
ffi (1.9.24)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
execjs (2.8.1)
|
||||
ffi (1.15.5)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.0)
|
||||
hacker (0.0.1)
|
||||
html-pipeline (2.7.1)
|
||||
gemoji (3.0.1)
|
||||
html-pipeline (2.14.0)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.8.5)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.1)
|
||||
nokogiri (>= 1.4)
|
||||
htmlcompressor (0.4.0)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.9.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.7.4)
|
||||
jekyll (4.2.1)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 0.7)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 1.14)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.3.3)
|
||||
mercenary (~> 0.4.0)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 1.7, < 4)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-feed (0.9.2)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.5.1)
|
||||
sass (~> 3.4)
|
||||
jekyll-seo-tag (2.4.0)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sitemap (1.1.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-theme-hacker (0.1.0)
|
||||
jekyll (~> 3.5)
|
||||
terminal-table (~> 2.0)
|
||||
jekyll-minifier (0.1.10)
|
||||
cssminify2 (~> 2.0)
|
||||
htmlcompressor (~> 0.4)
|
||||
jekyll (>= 3.5)
|
||||
json-minify (~> 0.0.3)
|
||||
uglifier (~> 4.1)
|
||||
jekyll-relative-links (0.6.1)
|
||||
jekyll (>= 3.3, < 5.0)
|
||||
jekyll-sass-converter (2.1.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-seo-tag (2.7.1)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-theme-hacker (0.2.0)
|
||||
jekyll (> 3.5, < 5.0)
|
||||
jekyll-seo-tag (~> 2.0)
|
||||
jekyll-watch (2.0.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
jemoji (0.8.1)
|
||||
activesupport (~> 4.0, >= 4.2.9)
|
||||
jemoji (0.12.0)
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0)
|
||||
kramdown (1.16.2)
|
||||
liquid (4.0.0)
|
||||
listen (3.1.5)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
ruby_dep (~> 1.2)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.11.1)
|
||||
nokogiri (1.10.8)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
pathutil (0.16.1)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
json (2.6.1)
|
||||
json-minify (0.0.3)
|
||||
json (> 0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
minitest (5.15.0)
|
||||
nokogiri (1.13.1-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (3.0.1)
|
||||
rb-fsevent (0.10.2)
|
||||
rb-inotify (0.9.10)
|
||||
ffi (>= 1.9.24, < 2)
|
||||
rouge (3.1.0)
|
||||
ruby_dep (1.5.0)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.5.5)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
thread_safe (0.3.6)
|
||||
tzinfo (1.2.4)
|
||||
thread_safe (~> 0.1)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.6.0)
|
||||
rb-fsevent (0.11.0)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.28.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (2.0.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
tzinfo (2.0.4)
|
||||
concurrent-ruby (~> 1.0)
|
||||
uglifier (4.2.0)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
unicode-display_width (1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
hacker
|
||||
jekyll (~> 3.7.0)
|
||||
jekyll-feed (~> 0.6)
|
||||
jekyll-seo-tag
|
||||
jekyll-sitemap
|
||||
jekyll-theme-hacker
|
||||
jemoji
|
||||
jekyll (~> 4.2.1)
|
||||
jekyll-minifier
|
||||
jekyll-relative-links (~> 0.6.1)
|
||||
jekyll-seo-tag (~> 2.7.1)
|
||||
jekyll-sitemap (~> 1.4.0)
|
||||
jekyll-theme-hacker (~> 0.2.0)
|
||||
jemoji (~> 0.12.0)
|
||||
tzinfo-data
|
||||
|
||||
BUNDLED WITH
|
||||
1.16.1
|
||||
2.3.5
|
||||
|
|
105
docs/_config.yml
105
docs/_config.yml
|
@ -9,13 +9,17 @@ logo: /assets/images/enigma-logo.png
|
|||
markdown: kramdown
|
||||
theme: jekyll-theme-hacker
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
- jekyll-seo-tag
|
||||
- jekyll-relative-links
|
||||
- jekyll-sitemap
|
||||
- jemoji
|
||||
|
||||
baseurl: /enigma-bbs
|
||||
|
||||
relative_links:
|
||||
enabled: true
|
||||
collections: true
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default. Create a custom list
|
||||
# to override the default setting.
|
||||
|
@ -28,3 +32,102 @@ exclude:
|
|||
- vendor/gems/
|
||||
- vendor/ruby/
|
||||
- .idea
|
||||
|
||||
|
||||
# New documents that are not included below under order will display at the
|
||||
# end of the list. Section names for directories and subdirectories are
|
||||
# setup in _data/sections.yml. Change there in order to update the name of
|
||||
# one of the subdirectories or to add a new one.
|
||||
|
||||
|
||||
collections:
|
||||
docs:
|
||||
output: true
|
||||
permalink: /:path:output_ext
|
||||
order:
|
||||
- installation/installation-methods.md
|
||||
- installation/install-script.md
|
||||
- installation/docker.md
|
||||
- installation/manual.md
|
||||
- installation/hardware/rpi.md
|
||||
- installation/hardware/windows.md
|
||||
- installation/network.md
|
||||
- installation/testing.md
|
||||
- installation/production.md
|
||||
- configuration/creating-config.md
|
||||
- configuration/sysop-setup.md
|
||||
- configuration/config-files.md
|
||||
- configuration/config-hjson.md
|
||||
- configuration/hjson.md
|
||||
- configuration/menu-hjson.md
|
||||
- configuration/directory-structure.md
|
||||
- configuration/external-binaries.md
|
||||
- configuration/archivers.md
|
||||
- configuration/file-transfer-protocols.md
|
||||
- configuration/email.md
|
||||
- configuration/colour-codes.md
|
||||
- configuration/event-scheduler.md
|
||||
- configuration/acs.md
|
||||
- configuration/security.md
|
||||
- misc/user-interrupt.md
|
||||
- filebase/index.md
|
||||
- filebase/first-file-area.md
|
||||
- filebase/acs.md
|
||||
- filebase/uploads.md
|
||||
- filebase/web-access.md
|
||||
- filebase/tic-support.md
|
||||
- filebase/network-mounts-and-symlinks.md
|
||||
- messageareas/configuring-a-message-area.md
|
||||
- messageareas/message-networks.md
|
||||
- messageareas/bso-import-export.md
|
||||
- messageareas/netmail.md
|
||||
- messageareas/qwk.md
|
||||
- messageareas/ftn.md
|
||||
- art/general.md
|
||||
- art/themes.md
|
||||
- art/mci.md
|
||||
- art/views/button_view.md
|
||||
- art/views/edit_text_view.md
|
||||
- art/views/full_menu_view.md
|
||||
- art/views/horizontal_menu_view.md
|
||||
- art/views/mask_edit_text_view.md
|
||||
- art/views/multi_line_edit_text_view.md
|
||||
- art/views/predefined_label_view.md
|
||||
- art/views/spinner_menu_view.md
|
||||
- art/views/text_view.md
|
||||
- art/views/toggle_menu_view.md
|
||||
- art/views/vertical_menu_view.md
|
||||
- servers/loginservers/telnet.md
|
||||
- servers/loginservers/ssh.md
|
||||
- servers/loginservers/websocket.md
|
||||
- servers/contentservers/web-server.md
|
||||
- servers/contentservers/gopher.md
|
||||
- servers/contentservers/nntp.md
|
||||
- modding/local-doors.md
|
||||
- modding/door-servers.md
|
||||
- modding/telnet-bridge.md
|
||||
- modding/existing-mods.md
|
||||
- modding/file-area-list.md
|
||||
- modding/last-callers.md
|
||||
- modding/whos-online.md
|
||||
- modding/user-list.md
|
||||
- modding/msg-conf-list.md
|
||||
- modding/msg-area-list.md
|
||||
- modding/bbs-list.md
|
||||
- modding/rumorz.md
|
||||
- modding/file-transfer-protocol-select.md
|
||||
- modding/onelinerz.md
|
||||
- modding/show-art.md
|
||||
- modding/file-base-download-manager.md
|
||||
- modding/file-base-web-download-manager.md
|
||||
- modding/set-newscan-date.md
|
||||
- modding/node-msg.md
|
||||
- modding/top-x.md
|
||||
- modding/user-2fa-otp-config.md
|
||||
- modding/autosig-edit.md
|
||||
- modding/menu-modules.md
|
||||
- admin/administration.md
|
||||
- admin/oputil.md
|
||||
- admin/updating.md
|
||||
- troubleshooting/monitoring-logs.md
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
installation:
|
||||
title: Installation
|
||||
configuration:
|
||||
title: Configuration
|
||||
filebase:
|
||||
title: File Base
|
||||
messageareas:
|
||||
title: Message Areas
|
||||
art:
|
||||
title: Art
|
||||
servers:
|
||||
title: Servers
|
||||
modding:
|
||||
title: Modding
|
||||
admin:
|
||||
title: Administration
|
||||
troubleshooting:
|
||||
title: Troubleshooting
|
||||
misc:
|
||||
title: Miscellaneous
|
||||
views:
|
||||
title: Views
|
||||
hardware:
|
||||
title: OS / Hardware Specific
|
||||
loginservers:
|
||||
title: Login Servers
|
||||
contentservers:
|
||||
title: Content Servers
|
|
@ -40,4 +40,4 @@ SQLite database files become less performant over time and waste space. It is re
|
|||
Example:
|
||||
```bash
|
||||
sqlite3 ./db/message.sqlite3 "vacuum;"
|
||||
```
|
||||
```
|
|
@ -6,17 +6,17 @@ All paths mentioned here are relative to the ENiGMA½ checkout directory.
|
|||
|
||||
| Directory | Description |
|
||||
|---------------------|-----------------------------------------------------------------------------------------------------------|
|
||||
| `/art/general` | Non-theme art - welcome ANSI, logoff ANSI, etc. See [General Art]({{ site.baseurl }}{% link art/general.md %}).
|
||||
| `/art/themes` | Theme art. Themes should be in their own subdirectory and contain a theme.hjson. See [Themes]({{ site.baseurl }}{% link art/themes.md %}).
|
||||
| `/art/general` | Non-theme art - welcome ANSI, logoff ANSI, etc. See [General Art](../art/general.md).
|
||||
| `/art/themes` | Theme art. Themes should be in their own subdirectory and contain a theme.hjson. See [Themes](../art/themes.md).
|
||||
| `/config` | [config.hjson](config-hjson.md) system configuration.
|
||||
| `/config/menus` | [menu.hjson](menu-hjson.md) storage.
|
||||
| `/config/security` | SSL certificates and public/private keys.
|
||||
| `/db` | All ENiGMA½ databases in SQLite3 format.
|
||||
| `/docs` | These docs ;-)
|
||||
| `/dropfiles` | Dropfiles created for [local doors]({{ site.baseurl }}{% link modding/local-doors.md %})
|
||||
| `/logs` | Logs. See [Monitoring Logs]({{ site.baseurl }}{% link troubleshooting/monitoring-logs.md %})
|
||||
| `/dropfiles` | Dropfiles created for [local doors](../modding/local-doors.md)
|
||||
| `/logs` | Logs. See [Monitoring Logs](../troubleshooting/monitoring-logs.md)
|
||||
| `/misc` | Stuff with no other home; reset password templates, common password lists, other random bits
|
||||
| `/mods` | User mods. See [Modding]({{ site.baseurl }}{% link modding/existing-mods.md %})
|
||||
| `/mods` | User mods. See [Modding](../modding/existing-mods.md)
|
||||
| `/node_modules` | External libraries required by ENiGMA½, installed when you run `npm install`
|
||||
| `/util` | Various tools used in running/debugging ENiGMA½
|
||||
| `/www` | ENiGMA½'s built in webserver root directory
|
||||
| `/www` | ENiGMA½'s built in webserver root directory
|
|
@ -3,7 +3,7 @@ layout: page
|
|||
title: Email
|
||||
---
|
||||
## Email Support
|
||||
ENiGMA½ uses email to send password reset information to users. For it to work, you need to provide valid [Nodemailer](https://nodemailer.com/about/) compatible `email` block in your [config.hjson]({{ site.baseurl }}{% link configuration/config-hjson.md %}). Nodemailer supports SMTP in addition to many pre-defined services for ease of use. The `transport` block within `email` must be Nodemailer compatible.
|
||||
ENiGMA½ uses email to send password reset information to users. For it to work, you need to provide valid [Nodemailer](https://nodemailer.com/about/) compatible `email` block in your [config.hjson](config-hjson.md). Nodemailer supports SMTP in addition to many pre-defined services for ease of use. The `transport` block within `email` must be Nodemailer compatible.
|
||||
|
||||
Additional email support will come in the near future.
|
||||
|
|
@ -11,7 +11,7 @@ prepare a folder where you are going to save your bbs files.
|
|||
you can perform this step from anywhere - but make sure to consistently run it from the same place to retain your config inside the docker guest
|
||||
```
|
||||
docker run -it -p 8888:8888 \
|
||||
--name " ENiGMABBS" \
|
||||
--name "ENiGMABBS" \
|
||||
-v "$(pwd)/config:/enigma-bbs/config" \
|
||||
-v "$(pwd)/db:/enigma-bbs/db" \
|
||||
-v "$(pwd)/logs:/enigma-bbs/logs" \
|
||||
|
@ -19,7 +19,7 @@ docker run -it -p 8888:8888 \
|
|||
-v "$(pwd)/art:/enigma-bbs/art" \
|
||||
-v "$(pwd)/mods:/enigma-bbs/mods" \
|
||||
-v "$(pwd)/mail:/mail" \
|
||||
enigmabbs/enigmabbs:latest
|
||||
enigmabbs/enigma-bbs:latest
|
||||
```
|
||||
- Run it: \
|
||||
you can use the same command as above, just daemonize and drop interactiveness (we needed it for config but most of the time docker will run in the background)
|
||||
|
@ -33,7 +33,7 @@ docker run -d -p 8888:8888 \
|
|||
-v "$(pwd)/art:/enigma-bbs/art" \
|
||||
-v "$(pwd)/mods:/enigma-bbs/mods" \
|
||||
-v "$(pwd)/mail:/mail" \
|
||||
enigmabbs/enigmabbs:latest
|
||||
enigmabbs/enigma-bbs:latest
|
||||
````
|
||||
- Restarting and Making changes\
|
||||
if you make any changes to your host config folder they will persist, and you can just restart ENiGMABBS container to load any changes you've made.
|
|
@ -57,7 +57,7 @@ ENiGMA BBS makes use of a few packages for archive and legacy protocol support.
|
|||
:information_source: Additional information in [Archivers](../configuration/archivers.md) and [File Transfer Protocols](../configuration/file-transfer-protocols.md)
|
||||
|
||||
## Config Files
|
||||
You'll need a basic configuration to get started. The main system configuration is handled via `config/config.hjson`. This is an [HJSON](http://hjson.org/) file (compliant JSON is also OK). See [Configuration](../configuration/) for more information.
|
||||
You'll need a basic configuration to get started. The main system configuration is handled via `config/config.hjson`. This is an [HJSON](http://hjson.org/) file (compliant JSON is also OK). See [Configuration](../configuration/hjson.md) for more information.
|
||||
|
||||
Use `oputil.js` to generate your **initial** configuration:
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: Local Doors
|
||||
title: Menu Modules
|
||||
---
|
||||
## Menu Modules
|
||||
Menu entries found within `menu.hjson` are backed by *menu modules*.
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: TopX
|
||||
title: 2FA/OTP Config
|
||||
---
|
||||
## The 2FA/OTP Config Module
|
||||
The `user_2fa_otp_config` module provides opt-in, configuration, and viewing of Two-Factor Authentication via One-Time-Password (2FA/OTP) settings. In order to allow users access to 2FA/OTP, the system must be properly configured. See [Security](../configuration/security.md) for more information.
|
|
@ -0,0 +1,70 @@
|
|||
<ul>
|
||||
{% for doc in site.docs %}
|
||||
{% assign pathparts = doc.path | split: '/' %}
|
||||
{% assign dir = pathparts[1] %}
|
||||
|
||||
{% if pathparts.size > 3 %}
|
||||
{% assign subdir = pathparts[2] %}
|
||||
{% unless site.data.sections[subdir] %}
|
||||
{% assign subsection = subdir %}
|
||||
{% else %}
|
||||
{% assign subsection = site.data.sections[subdir].title %}
|
||||
{% endunless %}
|
||||
{% else %}
|
||||
{% assign subdir = "NONE" %}
|
||||
{% endif %}
|
||||
|
||||
{% assign section = site.data.sections[dir].title %}
|
||||
{% unless section %}
|
||||
{% assign section = dir %}
|
||||
{% endunless %}
|
||||
|
||||
{% if doc.previous %}
|
||||
{% assign prevpathparts = doc.previous.path | split: '/' %}
|
||||
{% assign prevdir = prevpathparts[1] %}
|
||||
|
||||
{% if prevpathparts.size > 3 %}
|
||||
{% assign prevsubdir = prevpathparts[2] %}
|
||||
{% else %}
|
||||
{% assign prevsubdir = "NONE" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% assign prevdir = "NONE" %}
|
||||
{% assign prevsubdir = "NONE" %}
|
||||
{% endif %}
|
||||
|
||||
{% if subdir != prevsubdir and prevsubdir != "NONE" %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% if dir != prevdir %}
|
||||
{% if prevdir != "NONE" %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<li>{{section}}</li>
|
||||
<ul>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if subdir != "NONE" and subdir != prevsubdir %}
|
||||
<li>{{subsection}}</li>
|
||||
<ul>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if doc.url != page.url %}
|
||||
<li><a href="{{site.baseurl}}{{doc.url}}">{{doc.title}}</a></li>
|
||||
{% else %}
|
||||
<li class="active-nav">{{doc.title}}</li>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
{% unless doc.next %}
|
||||
</ul>
|
||||
{% if prevsubdir != "NONE" %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
{% endfor %}
|
||||
</ul>
|
|
@ -1,109 +0,0 @@
|
|||
- Installation
|
||||
- [Installation Methods]({{ site.baseurl }}{% link installation/installation-methods.md %})
|
||||
- [Install script]({{ site.baseurl }}{% link installation/install-script.md %})
|
||||
- [Docker]({{ site.baseurl }}{% link installation/docker.md %})
|
||||
- [Manual installation]({{ site.baseurl }}{% link installation/manual.md %})
|
||||
- [OS / Hardware Specific]({{ site.baseurl }}{% link installation/os-hardware.md %})
|
||||
- [Raspberry Pi]({{ site.baseurl }}{% link installation/rpi.md %})
|
||||
- [Windows]({{ site.baseurl }}{% link installation/windows.md %})
|
||||
- [Your Network Setup]({{ site.baseurl }}{% link installation/network.md %})
|
||||
- [Testing Your Installation]({{ site.baseurl }}{% link installation/testing.md %})
|
||||
- [Production Installation]({{ site.baseurl }}{% link installation/production.md %})
|
||||
|
||||
- Configuration
|
||||
- [Creating Config Files]({{ site.baseurl }}{% link configuration/creating-config.md %})
|
||||
- [SysOp Setup]({{ site.baseurl }}{% link configuration/sysop-setup.md %})
|
||||
- [Configuration Files]({{ site.baseurl }}{% link configuration/config-files.md %})
|
||||
- [System Configuration]({{ site.baseurl }}{% link configuration/config-hjson.md %})
|
||||
- [HJSON Config Files]({{ site.baseurl }}{% link configuration/hjson.md %})
|
||||
- [Menus]({{ site.baseurl }}{% link configuration/menu-hjson.md %})
|
||||
- [Directory Structure]({{ site.baseurl }}{% link configuration/directory-structure.md %})
|
||||
- [External Binaries]({{ site.baseurl }}{% link configuration/external-binaries.md %})
|
||||
- [Archivers]({{ site.baseurl }}{% link configuration/archivers.md %})
|
||||
- [File Transfer Protocols]({{ site.baseurl }}{% link configuration/file-transfer-protocols.md %})
|
||||
- [Email]({{ site.baseurl }}{% link configuration/email.md %})
|
||||
- [Colour Codes]({{ site.baseurl }}{% link configuration/colour-codes.md %})
|
||||
- [Access Condition System (ACS)]({{ site.baseurl }}{% link configuration/acs.md %})
|
||||
- [Event Scheduler]({{ site.baseurl }}{% link configuration/event-scheduler.md %})
|
||||
- [Security]({{ site.baseurl }}{% link configuration/security.md %})
|
||||
|
||||
- File Base
|
||||
- [About]({{ site.baseurl }}{% link filebase/index.md %})
|
||||
- [Configuring a File Area]({{ site.baseurl }}{% link filebase/first-file-area.md %})
|
||||
- [ACS model]({{ site.baseurl }}{% link filebase/acs.md %})
|
||||
- [Uploads]({{ site.baseurl }}{% link filebase/uploads.md %})
|
||||
- [Web Access]({{ site.baseurl }}{% link filebase/web-access.md %})
|
||||
- [TIC Support]({{ site.baseurl }}{% link filebase/tic-support.md %}) (Importing from FTN networks)
|
||||
- Tips and tricks
|
||||
- [Network mounts and symlinks]({{ site.baseurl }}{% link filebase/network-mounts-and-symlinks.md %})
|
||||
|
||||
- Message Areas
|
||||
- [Configuring a Message Area]({{ site.baseurl }}{% link messageareas/configuring-a-message-area.md %})
|
||||
- [Message networks]({{ site.baseurl }}{% link messageareas/message-networks.md %})
|
||||
- [BSO Import & Export]({{ site.baseurl }}{% link messageareas/bso-import-export.md %})
|
||||
- [Netmail]({{ site.baseurl }}{% link messageareas/netmail.md %})
|
||||
- [QWK]({{ site.baseurl }}{% link messageareas/qwk.md %})
|
||||
- [FTN]({{ site.baseurl }}{% link messageareas/ftn.md %})
|
||||
|
||||
- Art
|
||||
- [General]({{ site.baseurl }}{% link art/general.md %})
|
||||
- [Themes]({{ site.baseurl }}{% link art/themes.md %})
|
||||
- [MCI Codes]({{ site.baseurl }}{% link art/mci.md %})
|
||||
- Views
|
||||
- [Button]({{ site.baseurl }}{% link art/views/button_view.md %})
|
||||
- [Edit Text]({{ site.baseurl }}{% link art/views/edit_text_view.md %})
|
||||
- [Full Menu]({{ site.baseurl }}{% link art/views/full_menu_view.md %})
|
||||
- [Horizontal Menu]({{ site.baseurl }}{% link art/views/horizontal_menu_view.md %})
|
||||
- [Mask Edit Text]({{ site.baseurl }}{% link art/views/mask_edit_text_view.md %})
|
||||
- [Predefined Label]({{ site.baseurl }}{% link art/views/predefined_label_view.md %})
|
||||
- [Spinner Menu]({{ site.baseurl }}{% link art/views/spinner_menu_view.md %})
|
||||
- [Text]({{ site.baseurl }}{% link art/views/text_view.md %})
|
||||
- [Toggle Menu]({{ site.baseurl }}{% link art/views/toggle_menu_view.md %})
|
||||
- [Vertical Menu]({{ site.baseurl }}{% link art/views/vertical_menu_view.md %})
|
||||
|
||||
- Servers
|
||||
- Login Servers
|
||||
- [Telnet]({{ site.baseurl }}{% link servers/telnet.md %})
|
||||
- [SSH]({{ site.baseurl }}{% link servers/ssh.md %})
|
||||
- [WebSocket]({{ site.baseurl }}{% link servers/websocket.md %})
|
||||
- Build your own
|
||||
- Content Servers
|
||||
- [Web]({{ site.baseurl }}{% link servers/web-server.md %})
|
||||
- [Gopher]({{ site.baseurl }}{% link servers/gopher.md %})
|
||||
- [NNTP]({{ site.baseurl }}{% link servers/nntp.md %})
|
||||
|
||||
- Modding
|
||||
- [Local Doors]({{ site.baseurl }}{% link modding/local-doors.md %})
|
||||
- [Door Servers]({{ site.baseurl }}{% link modding/door-servers.md %})
|
||||
- DoorParty
|
||||
- BBSLink
|
||||
- Combatnet
|
||||
- Exodus
|
||||
- [Telnet Bridge]({{ site.baseurl }}{% link modding/telnet-bridge.md %})
|
||||
- [Existing Mods]({{ site.baseurl }}{% link modding/existing-mods.md %})
|
||||
- [File Area List]({{ site.baseurl }}{% link modding/file-area-list.md %})
|
||||
- [Last Callers]({{ site.baseurl }}{% link modding/last-callers.md %})
|
||||
- [Who's Online]({{ site.baseurl }}{% link modding/whos-online.md %})
|
||||
- [User List]({{ site.baseurl }}{% link modding/user-list.md %})
|
||||
- [Message Conference List]({{ site.baseurl }}{% link modding/msg-conf-list.md %})
|
||||
- [Message Area List]({{ site.baseurl }}{% link modding/msg-area-list.md %})
|
||||
- [BBS List]({{ site.baseurl }}{% link modding/bbs-list.md %})
|
||||
- [Rumorz]({{ site.baseurl }}{% link modding/rumorz.md %})
|
||||
- [File Transfer Protocol Select]({{ site.baseurl }}{% link modding/file-transfer-protocol-select.md %})
|
||||
- [Onelinerz]({{ site.baseurl }}{% link modding/onelinerz.md %})
|
||||
- [Show Art]({{ site.baseurl }}{% link modding/show-art.md %})
|
||||
- [Download Manager]({{ site.baseurl }}{% link modding/file-base-download-manager.md %})
|
||||
- [Web Download Manager]({{ site.baseurl }}{% link modding/file-base-web-download-manager.md %})
|
||||
- [Set Newscan Date]({{ site.baseurl }}{% link modding/set-newscan-date.md %})
|
||||
- [Node to Node Messaging]({{ site.baseurl }}{% link modding/node-msg.md %})
|
||||
- [Top X]({{ site.baseurl }}{% link modding/top-x.md %})
|
||||
- [2FA/OTP Config]({{ site.baseurl }}{% link modding/user-2fa-otp-config.md %})
|
||||
- [Auto Signature Editor]({{ site.baseurl }}{% link modding/autosig-edit.md %})
|
||||
|
||||
- Administration
|
||||
- [Administration]({{ site.baseurl }}{% link admin/administration.md %})
|
||||
- [oputil]({{ site.baseurl }}{% link admin/oputil.md %})
|
||||
- [Updating]({{ site.baseurl }}{% link admin/updating.md %})
|
||||
|
||||
- Troubleshooting
|
||||
- [Monitoring Logs]({{ site.baseurl }}{% link troubleshooting/monitoring-logs.md %})
|
|
@ -4,26 +4,55 @@
|
|||
<meta charset='utf-8'>
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ '/assets/images/favicon-16x16.png' | relative_url }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/images/favicon-32x32.png' | relative_url }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/images/favicon-32x32.png' | relative_url }}">
|
||||
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
|
||||
{% seo %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<a href="https://github.com/NuSkooler/enigma-bbs"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/e7bbb0521b397edbd5fe43e7f760759336b5e05f/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677265656e5f3030373230302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_green_007200.png"></a>
|
||||
{% if page.include-banner %}
|
||||
<a href="https://github.com/NuSkooler/enigma-bbs/"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/e7bbb0521b397edbd5fe43e7f760759336b5e05f/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677265656e5f3030373230302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_green_007200.png"></a>
|
||||
{% endif %}
|
||||
<div id="container">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<hr class="mobile-divide" />
|
||||
<div class="container">
|
||||
<a href="{{ site.baseurl }}"><img src="{{ '/assets/images/enigma-logo.png' | relative_url }}" class="logo" /></a>
|
||||
<a href="{% link index.md %}"><img src="{{ '/assets/images/enigma-logo.png' | relative_url }}" class="logo" alt="Enigma logo" /></a>
|
||||
</div>
|
||||
{% capture nav_include %}{% include nav.md %}{% endcapture %}
|
||||
{% capture nav_include %}{% include nav.html %}{% endcapture %}
|
||||
{{ nav_include | markdownify }}
|
||||
</div>
|
||||
<div class="main_area">
|
||||
<div class="container">
|
||||
<div class="main_area">
|
||||
<div class="container">
|
||||
<section id="main_content">
|
||||
<div class="PageNavigation">
|
||||
{% if page.previous %}
|
||||
<a class="btn" style="float:left;margin-right: 20px;" href="{{page.previous.url | relative_url }}">« {{page.previous.title}}</a>
|
||||
{% endif %}
|
||||
<a href="#sidebar" class="btn menu_button">MENU</a>
|
||||
{% if page.next %}
|
||||
<a class="btn" style="float: right;margin-left: 20px" href="{{page.next.url | relative_url }}">{{page.next.title}} »</a>
|
||||
{% endif %}
|
||||
<br clear="both" />
|
||||
</div>
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="PageNavigation">
|
||||
{% if page.previous %}
|
||||
<a class="btn" style="float:left;margin-right: 20px;" href="{{page.previous.url | relative_url }}">« {{page.previous.title}}</a>
|
||||
{% endif %}
|
||||
{% if page.next %}
|
||||
<a class="btn" style="float: right;margin-left: 20px" href="{{page.next.url | relative_url }}">{{page.next.title}} »</a>
|
||||
{% endif %}
|
||||
<br clear="both" />
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if site.google_analytics %}
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -2,3 +2,45 @@
|
|||
---
|
||||
|
||||
@import 'jekyll-theme-hacker';
|
||||
|
||||
.active-nav {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
.mobile-divide {
|
||||
border-top: 1px dashed #b5e853;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
order: 2;
|
||||
float: none;
|
||||
width: 100%;
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
.main_area {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
#container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
display:flex;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.menu_button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mobile-divide {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 885 B |
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
layout: default
|
||||
title: Home
|
||||
include-banner: true
|
||||
---
|
||||
![ENiGMA½ BBS](assets/images/enigma-bbs.png "ENiGMA½ BBS")
|
||||
|
||||
|
@ -10,20 +11,20 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
|
|||
## Features Available Now
|
||||
* Multi platform: Anywhere [Node.js](https://nodejs.org/) runs likely works (known to work under Linux, FreeBSD, OpenBSD, OS X and Windows)
|
||||
* Unlimited multi node support (for all those BBS "callers"!)
|
||||
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based [mods](docs/modding/existing-mods.md)
|
||||
* [MCI support](docs/art/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
||||
* **Highly** customizable via [HJSON](http://hjson.org/) based configuration, menus, and themes in addition to JavaScript based [mods](_docs/modding/existing-mods.md)
|
||||
* [MCI support](_docs/art/mci.md) for lightbars, toggles, input areas, and so on plus many other other bells and whistles
|
||||
* Telnet, **SSH**, and both secure and non-secure [WebSocket](https://en.wikipedia.org/wiki/WebSocket) access built in! Additional servers are easy to implement
|
||||
* [CP437](http://www.ascii-codes.com/) and UTF-8 output
|
||||
* [SyncTERM](http://syncterm.bbsdev.net/) style font and baud emulation support. Display PC/DOS and Amiga style artwork as it's intended! In general, ANSI-BBS / [cterm.txt](http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt?content-type=text%2Fplain&revision=HEAD) / [bansi.txt](http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/bansi.txt) are followed for expected BBS behavior.
|
||||
* Full [SAUCE](http://www.acid.org/info/sauce/sauce.htm) support.
|
||||
* Renegade style [pipe color codes](./configuration/colour-codes.md).
|
||||
* Renegade style [pipe color codes](_docs/configuration/colour-codes.md).
|
||||
* [SQLite](http://sqlite.org/) storage of users, message areas, etc.
|
||||
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption.
|
||||
* Support for 2-Factor Authentication with One-Time-Passwords
|
||||
* [Door support](docs/modding/door-servers.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), [Exodus](https://oddnetwork.org/exodus/) and [CombatNet](http://combatnet.us/) support!
|
||||
* [Door support](_docs/modding/door-servers.md) including common dropfile formats for legacy DOS doors. Built in [BBSLink](http://bbslink.net/), [DoorParty](http://forums.throwbackbbs.com/), [Exodus](https://oddnetwork.org/exodus/) and [CombatNet](http://combatnet.us/) support!
|
||||
* [Bunyan](https://github.com/trentm/node-bunyan) logging!
|
||||
* [Message networks](docs/messageareas/message-networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export. Messages Bases can also be exposed via [Gopher](docs/servers/gopher.md), or [NNTP](docs/servers/nntp.md)!
|
||||
* [Gazelle](https://github.com/WhatCD/Gazelle) inspired File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](docs/servers/web-server.md). Legacy X/Y/Z modem also supported!
|
||||
* [Message networks](_docs/messageareas/message-networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export. Messages Bases can also be exposed via [Gopher](_docs/servers/contentservers/gopher.md), or [NNTP](_docs/servers/contentservers/nntp.md)!
|
||||
* [Gazelle](https://github.com/WhatCD/Gazelle) inspired File Bases including fast fully indexed full text search (FTS), #tags, and HTTP(S) temporary download URLs using a built in [web server](_docs/servers/contentservers/web-server.md). Legacy X/Y/Z modem also supported!
|
||||
* Upload processor supporting [FILE_ID.DIZ](https://en.wikipedia.org/wiki/FILE_ID.DIZ) and [NFO](https://en.wikipedia.org/wiki/.nfo) extraction, year estimation, and more!
|
||||
* ANSI support in the Full Screen Editor (FSE), file descriptions, etc.
|
||||
* A built in achievement system. BBSing gamified!
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue