Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs into 216-waiting-for-caller
This commit is contained in:
commit
89ecbdddb0
|
@ -1,16 +0,0 @@
|
|||
For :bug: bug reports, please fill out the information below plus any additional relevant information. If this is a feature request, feel free to clear the form.
|
||||
|
||||
**Short problem description**
|
||||
|
||||
**Environment**
|
||||
- [ ] I am using Node.js v12.x LTS or higher
|
||||
- [ ] `npm install` or `yarn` reports success
|
||||
- Actual Node.js version (`node --version`):
|
||||
- Operating system (`uname -a` on *nix systems):
|
||||
- Revision (`git rev-parse --short HEAD`):
|
||||
|
||||
**Expected behavior**
|
||||
|
||||
**Actual behavior**
|
||||
|
||||
**Steps to reproduce**
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Help improve ENiGMA½!
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the Bug**
|
||||
A clear and concise description of what the :bug: bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Any relevant steps to reproduce the behavior:
|
||||
|
||||
**Expected Behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Actual Behavior**
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Environment**
|
||||
* [ ] I am using Node.js v12.x LTS or higher
|
||||
* [ ] `npm install` or `yarn` reports success
|
||||
* Actual Node.js version (`node --version`):
|
||||
* Operating system (`uname -a` on *nix systems):
|
||||
* Revision (`git rev-parse --short HEAD`):
|
||||
* Any additional relevant information about your setup
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here. Links to relevant specs such as FTN or documentation are appreciated if relevant.
|
30
README.md
30
README.md
|
@ -4,7 +4,6 @@
|
|||
|
||||
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"!)
|
||||
|
@ -26,16 +25,23 @@ ENiGMA½ is a modern BBS software with a nostalgic flair!
|
|||
* ANSI support in the Full Screen Editor (FSE), file descriptions, etc.
|
||||
* A built in achievement system. BBSing gamified!
|
||||
|
||||
...and much much more. Please check out [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) and feel free to request features (or contribute!) features!
|
||||
|
||||
## Documentation
|
||||
[Browse the docs online](https://nuskooler.github.io/enigma-bbs/). Be sure to checkout the [/docs/](/docs/) folder as well for the latest and greatest documentation.
|
||||
|
||||
## In the Works
|
||||
Many more features are in the pipeline. Checkout the [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) and feel free to request features (or contribute!) features.
|
||||
## Installation
|
||||
On most *nix systems simply run the following from your terminal:
|
||||
```
|
||||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
|
||||
```
|
||||
|
||||
## Known Issues
|
||||
As of now this is considered **beta** code! Please **expect bugs** :bug: -- and when you find them, log issues and/or submit pull requests. With that said, the code is actually quite stable and is used by a number of boards.
|
||||
Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/installation/installation-methods.html) for Windows, Docker, and so on...
|
||||
|
||||
See [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues) for more information.
|
||||
## Donating
|
||||
If you feel the urge to donate, [you can do so here](https://liberapay.com/NuSkooler/donate)<br/>
|
||||
|
||||
<a href="https://liberapay.com/NuSkooler/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a>
|
||||
|
||||
## Support
|
||||
* Use [the issue tracker](https://github.com/NuSkooler/enigma-bbs/issues)
|
||||
|
@ -60,14 +66,6 @@ ENiGMA has been tested with many terminals. However, the following are suggested
|
|||
* [PlaneT Afr0](https://planetafr0.org/): (**ssh://planetafr0.org:8889**)
|
||||
* [Goblin Studio](https://goblin.strangled.net): (**ssh://goblin.strangled.net:8889**)
|
||||
|
||||
## Installation
|
||||
On *nix type systems:
|
||||
```
|
||||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
|
||||
```
|
||||
|
||||
Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/installation/installation-methods.html) for Windows, Docker, and so on...
|
||||
|
||||
## Special Thanks
|
||||
* [Dave Stephens aka RiPuk](https://github.com/davestephens) for the awesome [ENiGMA website](https://enigma-bbs.github.io/) and [KICK ASS documentation](https://nuskooler.github.io/enigma-bbs/), code contributions, etc.
|
||||
* [Daniel Mecklenburg Jr.](https://github.com/codewar65) for the awesome VTX terminal and general coding talk
|
||||
|
@ -83,6 +81,10 @@ Please see [Installation Methods](https://nuskooler.github.io/enigma-bbs/install
|
|||
* [nail/blocktronics](http://blocktronics.org/tag/nail/) for the [sickmade Xibalba logo](http://pc.textmod.es/pack/blocktronics-420/n-xbalba.ans)!
|
||||
* [Whazzit/blocktronics](http://blocktronics.org/tag/whazzit/) for the amazing Mayan ANSI pieces scattered about Xibalba BBS!
|
||||
* [Smooth](https://16colo.rs/tags/artist/smooth)/[fUEL](https://fuel.wtf/) for lots of dope art. Why not [snag a T-Shirt](https://www.redbubble.com/people/araknet/works/39126831-enigma-1-2-software-logo-design-by-smooth-of-fuel?p=t-shirt)?
|
||||
* Al's Geek Lab for the [installation video](https://youtu.be/WnN-ucVi3ZU)!
|
||||
* Alpha for the [FTN-style configuration guide](https://medium.com/@alpha_11845/setting-up-ftn-style-message-networks-with-enigma%C2%BD-bbs-709b22a1ae0d)!
|
||||
|
||||
...and so many others! This project would be nothing without the BBS and artscene communities!
|
||||
|
||||
## License
|
||||
Released under the [BSD 2-clause](https://opensource.org/licenses/BSD-2-Clause) license:
|
||||
|
|
Binary file not shown.
|
@ -375,14 +375,8 @@ function getCharacterSetIdentifierByEncoding(encodingName) {
|
|||
return value ? `${value[0]} ${value[1]}` : encodingName.toUpperCase();
|
||||
}
|
||||
|
||||
// http://ftsc.org/docs/fts-5003.001
|
||||
// http://www.unicode.org/L2/L1999/99325-N.htm
|
||||
function getEncodingFromCharacterSetIdentifier(chrs) {
|
||||
const ident = chrs.split(' ')[0].toUpperCase();
|
||||
|
||||
// :TODO: fill in the rest!!!
|
||||
return {
|
||||
// level 1
|
||||
const CHRSToEncodingTable = {
|
||||
Level1 : {
|
||||
'ASCII' : 'ascii', // ISO-646-1
|
||||
'DUTCH' : 'ascii', // ISO-646
|
||||
'FINNISH' : 'ascii', // ISO-646-10
|
||||
|
@ -397,8 +391,8 @@ function getEncodingFromCharacterSetIdentifier(chrs) {
|
|||
'SWISS' : 'ascii', // ISO-646
|
||||
'UK' : 'ascii', // ISO-646
|
||||
'ISO-10' : 'ascii', // ISO-646-10
|
||||
|
||||
// level 2
|
||||
},
|
||||
Level2 : {
|
||||
'CP437' : 'cp437',
|
||||
'CP850' : 'cp850',
|
||||
'CP852' : 'cp852',
|
||||
|
@ -412,15 +406,52 @@ function getEncodingFromCharacterSetIdentifier(chrs) {
|
|||
'LATIN-2' : 'iso-8859-2',
|
||||
'LATIN-5' : 'iso-8859-9',
|
||||
'LATIN-9' : 'iso-8859-15',
|
||||
},
|
||||
|
||||
// level 4
|
||||
Level4 : {
|
||||
'UTF-8' : 'utf8',
|
||||
},
|
||||
|
||||
// deprecated stuff
|
||||
DeprecatedMisc : {
|
||||
'IBMPC' : 'cp1250', // :TODO: validate
|
||||
'+7_FIDO' : 'cp866',
|
||||
'+7' : 'cp866',
|
||||
'MAC' : 'macroman', // :TODO: validate
|
||||
|
||||
}[ident];
|
||||
}
|
||||
};
|
||||
|
||||
// Given 1:N CHRS kludge IDs, try to pick the best encoding we can
|
||||
// http://ftsc.org/docs/fts-5003.001
|
||||
// http://www.unicode.org/L2/L1999/99325-N.htm
|
||||
function getEncodingFromCharacterSetIdentifier(chrs) {
|
||||
if (!Array.isArray(chrs)) {
|
||||
chrs = [ chrs ];
|
||||
}
|
||||
|
||||
const encLevel = (ident, table, level) => {
|
||||
const enc = table[ident];
|
||||
if (enc) {
|
||||
return { enc, level };
|
||||
}
|
||||
};
|
||||
|
||||
const mapping = [];
|
||||
chrs.forEach(c => {
|
||||
const ident = c.split(' ')[0].toUpperCase();
|
||||
const mapped =
|
||||
encLevel(ident, CHRSToEncodingTable.Level1, 2) ||
|
||||
encLevel(ident, CHRSToEncodingTable.Level2, 1) ||
|
||||
encLevel(ident, CHRSToEncodingTable.Level4, 0) ||
|
||||
encLevel(ident, CHRSToEncodingTable.DeprecatedMisc, 3);
|
||||
|
||||
if (mapped) {
|
||||
mapping.push(mapped);
|
||||
}
|
||||
});
|
||||
|
||||
mapping.sort( (l, r) => {
|
||||
return l.level - r.level;
|
||||
});
|
||||
|
||||
return mapping[0] && mapping[0].enc;
|
||||
}
|
|
@ -224,9 +224,13 @@ const copyFileSyncSilent = (to, from, flags) => {
|
|||
|
||||
function buildNewConfig() {
|
||||
askNewConfigQuestions( (err, configPath, config) => {
|
||||
if(err) { return;
|
||||
if(err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
// ensure 'menus' exists
|
||||
mkdirsSync(paths.join(__dirname, '../../config/menus'));
|
||||
|
||||
const boardName = sanatizeFilename(config.general.boardName)
|
||||
.replace(/[^a-z0-9_-]/ig, '_')
|
||||
.replace(/_+/g, '_')
|
||||
|
|
|
@ -1089,7 +1089,7 @@ class QWKPacketWriter extends EventEmitter {
|
|||
// indicator such as FTN-style CHRS, try to use that.
|
||||
encoding = _.get(message.meta, 'FtnKludge.CHRS');
|
||||
if (encoding) {
|
||||
// convert from CHRS to something standard
|
||||
// Convert from CHRS to something standard
|
||||
encoding = getEncodingFromCharacterSetIdentifier(encoding);
|
||||
if (encoding) {
|
||||
return encoding;
|
||||
|
|
|
@ -10,18 +10,21 @@ 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](modding/)
|
||||
* [MCI support](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
|
||||
* [SQLite](http://sqlite.org/) storage of users, message areas, and so on
|
||||
* Strong [PBKDF2](https://en.wikipedia.org/wiki/PBKDF2) backed password encryption
|
||||
* [Door support](modding/local-doors.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](messageareas/message_networks.md) with FidoNet Type Network (FTN) + BinkleyTerm Style Outbound (BSO) message import/export
|
||||
* [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](servers/web-server.md). Legacy X/Y/Z modem also supported!
|
||||
* [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](/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!
|
||||
* [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!
|
||||
* 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, and so on
|
||||
* ANSI support in the Full Screen Editor (FSE), file descriptions, etc.
|
||||
* A built in achievement system. BBSing gamified!
|
||||
|
||||
|
|
|
@ -6,16 +6,17 @@ title: Docker
|
|||
for every operating system on the [Docker website](https://docs.docker.com/engine/installation/).**
|
||||
|
||||
## Quick Start
|
||||
|
||||
Download and run the ENiGMA½ BBS image:
|
||||
|
||||
docker run -d \
|
||||
-p 8888:8888 \
|
||||
davestephens/enigma-bbs:latest
|
||||
|
||||
As no config has been supplied the container will use a basic one so that it starts successfully. Note that as no persistence
|
||||
directory has been supplied, once the container stops any changes made will be lost!
|
||||
:information_source: This is a **very basic** example! As no config has been supplied the container will use a basic one so that it starts successfully. Note that as no persistence directory has been supplied, once the container stops any changes made will be lost!
|
||||
|
||||
## Customised Docker Setup
|
||||
:information_source: [Volumes](https://docs.docker.com/storage/volumes/) may be used for things such as your configuration and database path.
|
||||
|
||||
## Customized Docker Setup
|
||||
TBC using Docker Compose
|
||||
|
||||
:pencil: This area is looking for contributors!
|
||||
|
|
|
@ -9,10 +9,10 @@ Under most Linux/UNIX like environments (Linux, BSD, OS X, ...) new users can s
|
|||
curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
|
||||
```
|
||||
|
||||
You may review the [installation script](https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh)
|
||||
on GitHub before running it.
|
||||
:information_source: You may wish to review the [installation script](https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh)
|
||||
on GitHub before running it!
|
||||
|
||||
The script will install nvm, Node.js 6 and grab the latest ENiGMA BBS from GitHub. It will also guide you through creating a basic configuration file, and recommend some packages to install.
|
||||
The script will install `nvm`, Node.js and grab the latest ENiGMA BBS from GitHub. It will also guide you through creating a basic configuration file, and recommend some packages to install.
|
||||
|
||||
After installing, see [Updating](/docs/admin/updating.md).
|
||||
|
||||
|
|
|
@ -3,14 +3,16 @@ layout: page
|
|||
title: Installation Methods
|
||||
---
|
||||
## Installation Methods
|
||||
There are multiple ways of installing ENiGMA BBS, depending on your level of experience and desire to do
|
||||
things manually versus have it automated for you.
|
||||
There are multiple ways of installing ENiGMA BBS, depending on your level of experience and desire to do things manually versus have it automated for you.
|
||||
|
||||
| Method | Operating System Compatibility | Notes |
|
||||
|--------|--------------------------------|-------|
|
||||
| [Installation Script](install-script.md) | Linux, BSD, OSX | Quick and easy installation under most Linux/UNIX like environments (Linux, BSD, OS X, ...) |
|
||||
| [Docker Images](docker.md) | Linux, BSD, OSX, Windows | Easy upgrades, compatible with all operating systems, no dependencies to install |
|
||||
| [Manual](manual.md) | Linux, Windows (probably others but untested! | If you like doing things manually, or are running Windows |
|
||||
| [Manual](manual.md) | Linux, Windows, BSD (And others; YMMV!) | If you like doing things manually, or are running Windows |
|
||||
|
||||
## Community HOWTO's
|
||||
:scroll: Check out [this awesome video on installation and basic configuration](https://youtu.be/WnN-ucVi3ZU) from Al's Geek Lab!
|
||||
|
||||
## Keeping Up To Date
|
||||
After installing, you'll want to [keep your system updated](/docs/admin/updating.md).
|
|
@ -6,17 +6,16 @@ For Linux environments it's recommended you run the [install script](install-scr
|
|||
do things manually, read on...
|
||||
|
||||
## Prerequisites
|
||||
* [Node.js](https://nodejs.org/) version **v10.x LTS or higher** (Note that 8.x LTS *probably* works but is unsupported).
|
||||
* :information_source: It is **highly** recommended to use [nvm](https://github.com/creationix/nvm) to manage your
|
||||
Node.js installation if you're on a Linux/Unix environment.
|
||||
* [Node.js](https://nodejs.org/) version **v12.x LTS or higher** (Other versions may work but are not supported).
|
||||
* :information_source: It is **highly** recommended to use [Node Version Manager (NVM)](https://github.com/creationix/nvm) to manage your Node.js installation if you're on a Linux/Unix environment.
|
||||
|
||||
* [Python](https://www.python.org/downloads/) 2.7.x for compiling Node.js packages with native extensions.
|
||||
* [Python](https://www.python.org/downloads/) for compiling Node.js packages with native extensions via `node-gyp`.
|
||||
|
||||
* A compiler such as Clang or GCC for Linux/UNIX systems or a recent copy of Visual Studio
|
||||
([Visual Studio Express](https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx) editions
|
||||
are OK) for Windows users. Note that you **should only need the Visual C++ component**.
|
||||
|
||||
* [git](https://git-scm.com/downloads) to check out the ENiGMA source code.
|
||||
* [Git](https://git-scm.com/downloads) to check out the ENiGMA source code.
|
||||
|
||||
## Node.js
|
||||
### With NVM
|
||||
|
@ -29,9 +28,9 @@ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh |
|
|||
|
||||
Next, install Node.js with NVM:
|
||||
```bash
|
||||
nvm install 10
|
||||
nvm use 10
|
||||
nvm alias default 10
|
||||
nvm install 12
|
||||
nvm use 12
|
||||
nvm alias default 12
|
||||
```
|
||||
|
||||
If the above steps completed without errors, you should now have `nvm`, `node`, and `npm` installed and in your environment.
|
||||
|
@ -64,6 +63,8 @@ ENiGMA BBS makes use of a few packages for archive and legacy protocol support.
|
|||
| exiftool | [ExifTool](https://www.sno.phy.queensu.ca/~phil/exiftool/) | libimage-exiftool-perl | perl-Image-ExifTool | Unknown
|
||||
| xdms | Unpack/view Amiga DMS | [xdms](http://manpages.ubuntu.com/manpages/trusty/man1/xdms.1.html) | xdms | Unknown
|
||||
|
||||
:information_source: Please see also [Archivers](/docs/configuration/archivers.md) and [File Transfer Protocols](/docs/configuration/file-transfer-protocols.md) for additional recommended binaries and configuration.
|
||||
|
||||
## 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 (compiliant JSON is also OK). See [Configuration](../configuration/) for more information.
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@ Message Areas are topic specific containers for messages that live within a part
|
|||
| `default` | :-1: | Specify `true` to make this the default area (e.g. assigned to new users) |
|
||||
| `acs` | :-1: | A standard [ACS](/docs/configuration/acs.md) block. See **ACS** below. |
|
||||
| `autoSignatures` | :-1: | Set to `false` to disable auto-signatures in this area. |
|
||||
| `realNames` | :-1: | Set to `true` to use real names in this area. |
|
||||
|
||||
### ACS
|
||||
An optional standard [ACS](/docs/configuration/acs.md) block can be supplied with the following rules:
|
||||
|
|
|
@ -6,6 +6,8 @@ title: FidoNet-Style Networks (FTN)
|
|||
## FidoNet-Style Networks (FTN)
|
||||
[FidoNet](https://en.wikipedia.org/wiki/FidoNet) proper and other FidoNet-Style networks are supported by ENiGMA½. A bit of configuration and you'll be up and running in no time!
|
||||
|
||||
:scroll: Before proceeding you may wish to check [Setting up FTN-style message networks with ENiGMA½ BBS](https://medium.com/@alpha_11845/setting-up-ftn-style-message-networks-with-enigma%C2%BD-bbs-709b22a1ae0d) by Alpha. An excellent guide detailing some of the setup described here!
|
||||
|
||||
### Configuration
|
||||
Getting a fully running FTN enabled system requires a few configuration points:
|
||||
|
||||
|
|
|
@ -21,14 +21,24 @@ _____________________ _____ ____________________ __________\\_ /
|
|||
/__ _\\
|
||||
<*> ENiGMA½ // https://github.com/NuSkooler/enigma-bbs <*> /__/
|
||||
|
||||
ENiGMA½ will be installed to ${ENIGMA_INSTALL_DIR}, from source ${ENIGMA_SOURCE}, branch ${ENIGMA_BRANCH}.
|
||||
|
||||
ENiGMA½ requires Node.js. Version ${ENIGMA_NODE_VERSION}.x current will be installed via nvm. If you already have nvm installed, this install script will update it to the latest version.
|
||||
Installing ENiGMA½:
|
||||
Source : ${ENIGMA_SOURCE} (${ENIGMA_BRANCH} branch)
|
||||
Destination: ${ENIGMA_INSTALL_DIR}
|
||||
Node.js : ${ENIGMA_NODE_VERSION}.x via NVM (If you have NVM it will be updated to the latest version)
|
||||
|
||||
If this isn't what you were expecting, hit CTRL-C now. Installation will continue in ${WAIT_BEFORE_INSTALL} seconds...
|
||||
>> If this isn't what you were expecting, hit CTRL-C now!
|
||||
>> Installation will continue in ${WAIT_BEFORE_INSTALL} seconds...
|
||||
|
||||
EndOfMessage
|
||||
sleep ${WAIT_BEFORE_INSTALL}
|
||||
|
||||
SECS=10
|
||||
while [ $SECS -gt 0 ]; do
|
||||
echo -ne "${SECS}... "
|
||||
sleep 1
|
||||
((SECS --))
|
||||
done
|
||||
echo ""
|
||||
}
|
||||
|
||||
fatal_error() {
|
||||
|
@ -36,9 +46,32 @@ fatal_error() {
|
|||
exit 1
|
||||
}
|
||||
|
||||
check_exists() {
|
||||
command -v $1 >/dev/null 2>&1 ;
|
||||
}
|
||||
|
||||
enigma_install_needs_ex() {
|
||||
echo -ne "Checking for '$1'..."
|
||||
if check_exists $1 ; then
|
||||
echo " Found!"
|
||||
else
|
||||
echo ""
|
||||
fatal_error "ENiGMA½ requires '$1' but it was not found. Please install it and/or make sure it is in your path then restart the installer.\n\n$2"
|
||||
fi
|
||||
}
|
||||
|
||||
enigma_install_needs_python() {
|
||||
echo -ne "Checking for a suitable Python installation..."
|
||||
if check_exists "python" || check_exists "python7" || check_exists "python3" ; then
|
||||
echo " Found!"
|
||||
else
|
||||
echo ""
|
||||
fatal_error "ENiGMA½ requires Python for node-gyp to build binaries. Please see https://www.npmjs.com/package/node-gyp for details."
|
||||
fi
|
||||
}
|
||||
|
||||
enigma_install_needs() {
|
||||
echo "Checking $1 installation"
|
||||
command -v $1 >/dev/null 2>&1 || fatal_error "ENiGMA½ requires $1 but it's not installed. Please install it and restart the installer."
|
||||
enigma_install_needs_ex $1 "Examples:\n sudo apt install $1 # Debian/Ubuntu\n sudo yum install $1 # CentOS"
|
||||
}
|
||||
|
||||
log() {
|
||||
|
@ -48,7 +81,8 @@ log() {
|
|||
enigma_install_init() {
|
||||
enigma_install_needs git
|
||||
enigma_install_needs curl
|
||||
enigma_install_needs python
|
||||
enigma_install_needs_python
|
||||
enigma_install_needs_ex make "Examples:\n sudo apt install build-essential # Debian/Ubuntu\n sudo yum groupinstall 'Development Tools' # CentOS"
|
||||
enigma_install_needs make
|
||||
enigma_install_needs gcc
|
||||
}
|
||||
|
@ -114,14 +148,21 @@ install_node_packages() {
|
|||
|
||||
enigma_footer() {
|
||||
log "ENiGMA½ installation complete!"
|
||||
echo -e "\e[33m"
|
||||
echo -e "\e[1;33m"
|
||||
cat << EndOfMessage
|
||||
If this is the first time you've installed ENiGMA½, you now need to generate a minimal configuration. To do so, run the following commands (note: if you did not already have node.js installed, you may need to log out/back in to refresh your path):
|
||||
|
||||
ADDITIONAL ACTIONS ARE REQUIRED!
|
||||
--------------------------------
|
||||
|
||||
1 - If you did not have Node.js and/or NVM installed previous to this please open a new shell/terminal now!
|
||||
(!) Not doing so will prevent 'nvm' or 'node' commands from functioning!
|
||||
|
||||
2 - If this is the first time you've installed ENiGMA½, you now need to generate a minimal configuration:
|
||||
|
||||
cd ${ENIGMA_INSTALL_DIR}
|
||||
./oputil.js config new
|
||||
|
||||
Additionally, the following support binaires are recommended:
|
||||
3 - Additionally, a minimum of the following support binaires are recommended:
|
||||
7zip: Archive support
|
||||
Debian/Ubuntu : apt-get install p7zip
|
||||
CentOS : yum install p7zip
|
||||
|
@ -136,7 +177,7 @@ Additionally, the following support binaires are recommended:
|
|||
Debian/Ubuntu : apt-get install lrzsz
|
||||
CentOS : yum install lrzsz
|
||||
|
||||
See docs for more information!
|
||||
See docs for more information including other useful binaries!
|
||||
|
||||
EndOfMessage
|
||||
echo -e "\e[39m"
|
||||
|
|
Loading…
Reference in New Issue