diff --git a/docs/_includes/nav.md b/docs/_includes/nav.md index 728e5444..84785dbe 100644 --- a/docs/_includes/nav.md +++ b/docs/_includes/nav.md @@ -82,8 +82,6 @@ - Administration - [oputil]({{ site.baseurl }}{% link admin/oputil.md %}) - - - [Oputil]({{ site.baseurl }}{% link oputil/index.md %}) - Troubleshooting - [Monitoring Logs]({{ site.baseurl }}{% link troubleshooting/monitoring-logs.md %}) diff --git a/docs/admin/oputil.md b/docs/admin/oputil.md index 8fbf0a46..9db1439c 100644 --- a/docs/admin/oputil.md +++ b/docs/admin/oputil.md @@ -27,7 +27,7 @@ Commands break up operations by groups: | Command | Description | |-----------|---------------| | `user` | User management | -| `config` | System configuration and maintentance | +| `config` | System configuration and maintenance | | `fb` | File base configuration and management | | `mb` | Message base configuration and management | @@ -45,11 +45,12 @@ usage: optutil.js user [] actions: pw USERNAME PASSWORD set password to PASSWORD for USERNAME - rm USERNAME permanantely removes USERNAME user from system + rm USERNAME permanently removes USERNAME user from system activate USERNAME sets USERNAME's status to active - deactivate USERNAME sets USERNAME's status to deactive + deactivate USERNAME sets USERNAME's status to inactive disable USERNAME sets USERNAME's status to disabled - group USERNAME [+|-]GROUP adds (+) or removes (-) USERNAME from GROUP + lock USERNAME sets USERNAME's status to locked + group USERNAME [+|-]GROUP adds (+) or removes (-) user from GROUP ``` | Action | Description | Examples | Aliases | @@ -59,6 +60,7 @@ actions: | `activate` | Activates user | `./oputil.js user activate joeuser` | N/A | | `deactivate` | Deactivates user | `./oputil.js user deactivate joeuser` | N/A | | `disable` | Disables user (user will not be able to login) | `./oputil.js user disable joeuser` | N/A | +| `lock` | Locks the user account (prevents logins) | `./oputil.js user lock joeuser` | N/A | | `group` | Modifies users group membership | Add to group: `./oputil.js user group joeuser +derp`
Remove from group: `./oputil.js user group joeuser -derp` | N/A | ## Configuration @@ -82,7 +84,7 @@ import-areas args: | Action | Description | Examples | |-----------|-------------------|---------------------------------------| | `new` | Generates a new/initial configuration | `./oputil.js config new` (follow the prompts) | -| `import-areas` | Imports areas using a Fidonet style *.NA or AREAS.BBS formatted file | `./oputil.js config import-areas /some/path/l33tnet.na` | +| `import-areas` | Imports areas using a FidoNet style *.NA or AREAS.BBS formatted file | `./oputil.js config import-areas /some/path/l33tnet.na` | When using the `import-areas` action, you will be prompted for any missing additional arguments described in "import-areas args". @@ -138,7 +140,7 @@ general information: The `scan` action can (re)scan a file area for new entries as well as update (`--update`) existing entry records (description, etc.). When scanning, a valid area tag must be specified. Optionally, storage tag may also be supplied in order to scan a specific filesystem location using the `@the_storage_tag` syntax. If a [GLOB](http://man7.org/linux/man-pages/man7/glob.7.html) is supplied as the last argument, only file entries with filenames matching will be processed. ##### Examples -Performing a quick scan of a specific area's storage location ("retro_warez", "retro_warez_games) matching only *.zip extentions: +Performing a quick scan of a specific area's storage location ("retro_warez", "retro_warez_games) matching only *.zip extensions: ``` $ ./oputil.js fb scan --quick retro_warez@retro_warez_games *.zip` ``` diff --git a/docs/configuration/config-hjson.md b/docs/configuration/config-hjson.md index 4ebfd030..7aae987f 100644 --- a/docs/configuration/config-hjson.md +++ b/docs/configuration/config-hjson.md @@ -8,7 +8,7 @@ The main system configuration file, `config.hjson` both overrides defaults and p See also [HJSON General Information](hjson.md) for more information on the HJSON format. ### Creating a Configuration -Your initial configuration skeleton can be created using the `oputil.js` command line utility. From your enigma-bbs root directory: +Your initial configuration skeleton should be created using the `oputil.js` command line utility. From your enigma-bbs root directory: ``` ./oputil.js config new ``` @@ -30,10 +30,21 @@ general: { } ``` -(Note the very slightly different syntax. **You can use standard JSON if you wish**) +(Note the very slightly [HJSON](hjson.md) different syntax. **You can use standard JSON if you wish!**) While not everything that is available in your `config.hjson` file can be found defaulted in `core/config.js`, a lot is. [Poke around and see what you can find](https://github.com/NuSkooler/enigma-bbs/blob/master/core/config.js)! +### Configuration Sections +Below is a list of various configuration sections. There are many more, but this should get you started: + +* [ACS](acs.md) +* [Archivers](archivers.md): Set up external archive utilities for handling things like ZIP, ARJ, RAR, and so on. +* [Email](email.md): System email support. +* [Event Scheduler](event-scheduler.md): Set up events as you see fit! +* [File Base](/docs/filebase/index.md) +* [File Transfer Protocols](file-transfer-protocols.md): Oldschool file transfer protocols such as X/Y/Z-Modem! +* [Message Areas](/docs/messageareas/configuring-a-message-area.md), [Networks](/docs/messageareas/message-networks.md), [NetMail](/docs/messageareas/netmail.md), etc. + ### A Sample Configuration Below is a **sample** `config.hjson` illustrating various (but certainly not all!) elements that can be configured / tweaked. diff --git a/docs/configuration/sysop-setup.md b/docs/configuration/sysop-setup.md index b8c4beb6..502f412e 100644 --- a/docs/configuration/sysop-setup.md +++ b/docs/configuration/sysop-setup.md @@ -2,5 +2,4 @@ layout: page title: SysOp Setup --- -SySop privileges will be granted to the first user to log into a fresh ENiGMA½ installation. - +SySop privileges will be granted to the first user to log into a fresh ENiGMA½ installation. +ops belong to the `sysop` user group by default. \ No newline at end of file diff --git a/docs/installation/manual.md b/docs/installation/manual.md index 01c5ca47..a24cd3eb 100644 --- a/docs/installation/manual.md +++ b/docs/installation/manual.md @@ -19,16 +19,21 @@ are OK) for Windows users. Note that you **should only need the Visual C++ compo * [git](https://git-scm.com/downloads) to check out the ENiGMA source code. ## Node.js -If you're new to Node.js and/or do not care about Node itself and just want to get ENiGMA½ running -these steps should get you going on most \*nix type environments: +### With NVM +Node Version Manager (NVM) is an excellent way to install and manage Node.js versions on most UNIX-like environments. [Get the latest version here](https://github.com/creationix/nvm). The install should look something like this: ```bash -curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash -nvm install 6 -nvm use 6 +curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash ``` -If the above completed without errors, you should now have `nvm`, `node`, and `npm` installed and in your environment. +Next, install Node.js with NVM: +```bash +nvm install 10 +nvm use 10 +nvm alias default 10 +``` + +If the above steps completed without errors, you should now have `nvm`, `node`, and `npm` installed and in your environment. For Windows nvm-like systems exist ([nvm-windows](https://github.com/coreybutler/nvm-windows), ...) or [just download the installer](https://nodejs.org/en/download/). @@ -41,31 +46,25 @@ git clone https://github.com/NuSkooler/enigma-bbs.git ## Install Node Packages ```bash cd enigma-bbs -npm install +npm install # yarn also works ``` ## Other Recommended Packages +ENiGMA BBS makes use of a few packages for archive and legacy protocol support. They're not pre-requisites for running ENiGMA, but without them you'll miss certain functionality. Once installed, they should be made available on your system path. -ENiGMA BBS makes use of a few packages for unarchiving and modem support. They're not pre-requisites for -running ENiGMA, but without them you'll miss certain functionality. Once installed, they should be made -available on your system path. - -| Package | Description | Debian/Ubuntu Package (APT/DEP) | Red Hat Package (YUM/RPM) | Windows Package | +| Package | Description | Debian/Ubuntu Package (APT/DEP) | Red Hat Package (YUM/RPM) | Windows Package | |------------|-----------------------------------|--------------------------------------------|---------------------------------------------------|------------------------------------------------------------------| | arj | Unpacking arj archives | `arj` | n/a, binaries [here](http://arj.sourceforge.net/) | [ARJ](http://arj.sourceforge.net/) | | 7zip | Unpacking zip, rar, archives | `p7zip-full` | `p7zip-full` | [7-zip](http://www.7-zip.org/) | | lha | Unpacking lha archives | `lhasa` | n/a, source [here](http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm) | Unknown | | Rar | Unpacking rar archives | `unrar` | n/a, binaries [here](https://www.rarlab.com/download.htm) | Unknown | -| lrzsz | sz/rz: X/Y/Z modem support | `lrzsz` | `lrzsz` | Unknown | -| sexyz | SexyZ modem support | [sexyz](https://l33t.codes/outgoing/sexyz) | [sexyz](https://l33t.codes/outgoing/sexyz) | Available with [Synchronet](http://wiki.synchro.net/install:win) | +| lrzsz | sz/rz: X/Y/Z protocol support | `lrzsz` | `lrzsz` | Unknown | +| sexyz | SexyZ protocol support | [sexyz](https://l33t.codes/outgoing/sexyz) | [sexyz](https://l33t.codes/outgoing/sexyz) | Available with [Synchronet](http://wiki.synchro.net/install:win) | | 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 ## 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. +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. Use `oputil.js` to generate your **initial** configuration: diff --git a/docs/installation/os-hardware.md b/docs/installation/os-hardware.md index a49283b4..6332ee82 100644 --- a/docs/installation/os-hardware.md +++ b/docs/installation/os-hardware.md @@ -2,10 +2,13 @@ layout: page title: OS & Hardware Specific Information --- -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 | Notes | -|----------------------------------------|---------------------------------------------------------------------------------------------| -| [Raspberry Pi](rpi) | All Raspberry Pi models work great with ENiGMA½! | -| [Windows](windows) | Compatible with all Windows Operating Systems | +In general, please see [Installation Methods](installation-methods.md) and [Install Script](install-script.md). + +Below are some special cases: + +| Method | Notes | +|--------|-------| +| [Raspberry Pi](rpi.md) | All Raspberry Pi models work great with ENiGMA½! | +| [Windows](windows.md) | Compatible with all Windows Operating Systems | diff --git a/docs/installation/windows.md b/docs/installation/windows.md index 4eaed906..a68afe97 100644 --- a/docs/installation/windows.md +++ b/docs/installation/windows.md @@ -36,11 +36,13 @@ ENiGMA½ will run on both 32bit and 64bit Windows. If you want to run 16bit door *Add 7zip to your path so `7z` can be called from the console 1. Right click `This PC` and Select `Properties` - 2. Go to the `Advanced` Tab and click on `Enviromental Varibles` - 3. Select `Path` under `System Varibles` and click `Edit` + 2. Go to the `Advanced` Tab and click on `Environment Variables` + 3. Select `Path` under `System Variables` and click `Edit` 4. Click `New` and paste the path to 7zip 5. Close your console window and reopen. You can type `7z` to make sure it's working. +(Please see [Archivers](/docs/archivers.md) for additional archive utilities!) + 3. Install [Git](https://git-scm.com/downloads) and optionally [TortoiseGit](https://tortoisegit.org/download/). 4. Clone ENiGMA½ - browse to the directory you want and run diff --git a/docs/oputil/index.md b/docs/oputil/index.md deleted file mode 100644 index b23a7362..00000000 --- a/docs/oputil/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: page -title: oputil ---- - -oputil is the ENiGMA½ command line utility for maintaining users, file areas and message areas, as well as -generating your initial ENiGMA½ config. - -## File areas -The `oputil.js` +op utilty `fb` command has tools for managing file bases. For example, to import existing -files found within **all** storage locations tied to an area and set tags `tag1` and `tag2` to each import: - -```bash -oputil.js fb scan some_area --tags tag1,tag2 -``` - -See `oputil.js fb --help` for additional information. \ No newline at end of file diff --git a/docs/troubleshooting/monitoring-logs.md b/docs/troubleshooting/monitoring-logs.md index 7c04cb40..dd665f5c 100644 --- a/docs/troubleshooting/monitoring-logs.md +++ b/docs/troubleshooting/monitoring-logs.md @@ -2,14 +2,21 @@ layout: page title: Monitoring Logs --- -ENiGMA½ does not produce much to stdout. Logs are produced by Bunyan which outputs each entry as a -JSON object. +ENiGMA½ does not produce much to stdout. Logs are produced by Bunyan which outputs each entry as a JSON object. Start by installing bunyan and making it available on your path: - npm install bunyan -g +```bash +npm install bunyan -g +``` + +or with Yarn: +```bash +yarn global add bunyan +``` To tail logs in a colorized and pretty format, issue the following command: - - tail -F /path/to/enigma-bbs/logs/enigma-bbs.log | bunyan +```bash +tail -F /path/to/enigma-bbs/logs/enigma-bbs.log | bunyan +```