Initial commit
This commit is contained in:
commit
65e3bfa386
17
docker-compose.yml
Normal file
17
docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
version: "3.7"
|
||||
services:
|
||||
enigma:
|
||||
image: enigmabbs/enigma-bbs:latest
|
||||
ports:
|
||||
- "8888:8888"
|
||||
- "8889:8889"
|
||||
volumes:
|
||||
- ./enigma/config:/enigma-bbs/config
|
||||
- ./enigma/db:/enigma-bbs/db
|
||||
- ./enigma/logs:/enigma-bbs/logs
|
||||
- ./enigma/filebase:/enigma-bbs/filebase
|
||||
- ./enigma/art:/enigma-bbs/art
|
||||
- ./enigma/mods:/enigma-bbs/mods
|
||||
- ./enigma/mail:/mail
|
||||
restart: unless-stopped
|
||||
531
enigma/config/config.hjson
Normal file
531
enigma/config/config.hjson
Normal file
@ -0,0 +1,531 @@
|
||||
{
|
||||
/*
|
||||
./\/\.' ENiGMA½ System Configuration -/--/-------- - -- -
|
||||
|
||||
_____________________ _____ ____________________ __________\_ /
|
||||
\__ ____/\_ ____ \ /____/ / _____ __ \ / ______/ // /___jp!
|
||||
// __|___// | \// |// | \// | | \// \ /___ /_____
|
||||
/____ _____| __________ ___|__| ____| \ / _____ \
|
||||
---- \______\ -- |______\ ------ /______/ ---- |______\ - |______\ /__/ // ___/
|
||||
/__ _\
|
||||
<*> ENiGMA½ // HTTPS://GITHUB.COM/NUSKOOLER/ENIGMA-BBS <*> /__/
|
||||
|
||||
*-----------------------------------------------------------------------------*
|
||||
Generated by ENiGMA½ v0.0.13-beta / hjson v3.2.1
|
||||
*-----------------------------------------------------------------------------*
|
||||
|
||||
|
||||
------------------------------- -- - -
|
||||
General Information
|
||||
------------------------------- - -
|
||||
This configuration is in HJSON (http://hjson.org/) format. Strict to-spec
|
||||
JSON is also perfectly valid. Use 'hjson' from npm to convert to/from JSON.
|
||||
|
||||
See http://hjson.org/ for more information and syntax.
|
||||
|
||||
Various editors and IDEs such as Sublime Text 3, Visual Studio Code, and so
|
||||
on have syntax highlighting for the HJSON format which are highly recommended.
|
||||
|
||||
|
||||
------------------------------- -- - -
|
||||
Configuration
|
||||
------------------------------- - -
|
||||
ENiGMA½ is *highly* configurable, and thus can be overwhelming at first!
|
||||
|
||||
By default, this file contains common configuration elements, examples, etc.
|
||||
To see a more complete view of settings available to the system, don't be
|
||||
afraid to open up core/config.js and look around. Do not make changes there
|
||||
however! All system configuration can be extended and defaults overridden
|
||||
via this file!
|
||||
|
||||
Please see RTFM ...er, uh... see the documentation for more information, and
|
||||
don't be shy to ask for help:
|
||||
|
||||
BBS : Xibalba @ xibalba.l33t.codes
|
||||
FTN : BBS Discussion on fsxNet
|
||||
IRC : #enigma-bbs / FreeNode
|
||||
Email : bryan@l33t.codes
|
||||
*/
|
||||
|
||||
general: {
|
||||
// Your BBS Name!
|
||||
boardName: Flame Net BBS
|
||||
|
||||
// Your BBS name, with pipe codes for styling
|
||||
prettyBoardName: |08XXXXX
|
||||
|
||||
// Telnet hostname and port for your board
|
||||
telnetHostname: xibalba.l33t.codes:44510
|
||||
|
||||
// SSH hostname and port for your board
|
||||
sshHostname: xibalba.l33t.codes:44511
|
||||
|
||||
// Your board's website
|
||||
website: https://enigma-bbs.github.io
|
||||
|
||||
// Short board description
|
||||
description: Yet another awesome ENiGMA½ BBS
|
||||
menuFile: /enigma-bbs/config/menus/flame_net_bbs-main.hjson
|
||||
}
|
||||
term: {
|
||||
// checkUtf8Encoding requires the use of cursor position reports, which are not supported on all terminals.
|
||||
// Using this with a terminal that does not support cursor position reports results in a 2 second delay
|
||||
// during the connect process, but provides better autoconfiguration of utf-8
|
||||
checkUtf8Encoding: true
|
||||
|
||||
// Checking the ANSI home position also requires the use of cursor position reports, which are not
|
||||
// supported on all terminals. Using this with a terminal that does not support cursor position reports
|
||||
// results in a 3 second delay during the connect process, but works around positioning problems with
|
||||
// non-standard terminals.
|
||||
checkAnsiHomePosition: true
|
||||
|
||||
// other options here include cp437TermList and utf8TermList, see config_default.js for more information
|
||||
}
|
||||
paths: {
|
||||
//
|
||||
// Other paths can also be configured as well,
|
||||
// but generally unnecessary
|
||||
//
|
||||
logs: /enigma-bbs/logs/
|
||||
}
|
||||
logging: {
|
||||
//
|
||||
// Each block here represents a Bunyan style config.
|
||||
// See https://github.com/trentm/node-bunyan#streams
|
||||
//
|
||||
// Remember you can pipe logs through Bunyan to pretty-print:
|
||||
// Linux : tail -F ./logs/enigma-bbs.log | bunyan
|
||||
// PowerShell : Get-Content .\enigma-bbs.log -Tail 15 | bunyan.cmd
|
||||
//
|
||||
// (npm install -g bunyan to get the binary)
|
||||
//
|
||||
// We default to a rotating-file stream:
|
||||
// https://github.com/trentm/node-bunyan#stream-type-rotating-file
|
||||
//
|
||||
rotatingFile: {
|
||||
// If you're having trouble, try setting this to "trace"
|
||||
level: info
|
||||
type: rotating-file
|
||||
fileName: enigma-bbs.log
|
||||
period: 1d
|
||||
count: 3
|
||||
}
|
||||
}
|
||||
theme: {
|
||||
// Default theme applied to new users. "*" indicates random.
|
||||
default: luciano_blocktronics
|
||||
// Theme applied before a user has logged in. "*" indicates random.
|
||||
preLogin: luciano_blocktronics
|
||||
|
||||
//
|
||||
// dateFormat, timeFormat, and dateTimeFormat blocks configure
|
||||
// moment.js (https://momentjs.com/docs/#/displaying/) style formats
|
||||
// for dates and times. Short and long versions are available.
|
||||
// Note that themes may override these settings.
|
||||
//
|
||||
passwordChar: *
|
||||
dateFormat: {
|
||||
short: MM/DD/YYYY
|
||||
long: ddd, MMMM Do, YYYY
|
||||
}
|
||||
timeFormat: {
|
||||
short: h:mm a
|
||||
}
|
||||
dateTimeFormat: {
|
||||
short: MM/DD/YYYY h:mm a
|
||||
long: ddd, MMMM Do, YYYY, h:mm a
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Login servers represent available servers (or protocols) in which
|
||||
// users are permitted to access your system.
|
||||
//
|
||||
loginServers: {
|
||||
// Remember kids, Telnet is insecure!
|
||||
telnet: {
|
||||
// It's best to use non-privileged ports and NAT/foward to them
|
||||
port: 8888
|
||||
enabled: true
|
||||
firstMenu: telnetConnected
|
||||
},
|
||||
ssh: {
|
||||
enabled: true
|
||||
port: 8889
|
||||
privateKeyPem: /enigma-bbs/config/ssh_private_key.pem
|
||||
privateKeyPass: ""
|
||||
}
|
||||
|
||||
webSocket: {
|
||||
//
|
||||
// Setting "proxied" to true allows non-secure (ws://) WebSockets
|
||||
// to be considered secure when the X-Fowarded-Proto HTTP header
|
||||
// is set to "https". This is helpful when ENiGMA is running behind
|
||||
// another web server doing SSL/TLS termination.
|
||||
//
|
||||
proxied: false
|
||||
|
||||
// Non-secure WebSockets, or ws://
|
||||
ws: {
|
||||
port: 8810
|
||||
enabled: false
|
||||
}
|
||||
|
||||
// Secure WebSockets, or wss://
|
||||
wss: {
|
||||
port: 8811
|
||||
enabled: false
|
||||
|
||||
//
|
||||
// Certificate and Key in PEM format.
|
||||
// Note that web browsers will not trust self-signed certs. Look
|
||||
// into Let's Encrypt and perhaps running ENiGMA behind another
|
||||
// web server such as Caddy.
|
||||
//
|
||||
certPem: /enigma-bbs/config/https_cert.pem
|
||||
keyPem: /enigma-bbs/config/https_cert_key.pem
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Content Servers expose content from the system
|
||||
//
|
||||
contentServers: {
|
||||
//
|
||||
// The Web Content Server can expose content over HTTP (http://) and
|
||||
// HTTPS (https://) for (but not limited to) the following purposes:
|
||||
// * Static content
|
||||
// * Web downloads from the file base
|
||||
// * Password reset forms (sent to users in PW reset emails; see
|
||||
// "email" block below)
|
||||
//
|
||||
web: {
|
||||
// Set to your public FQDN
|
||||
domain: another-fine-enigma-bbs.org
|
||||
|
||||
// Standard issue "www" folder. Place static content here
|
||||
staticRoot: /enigma-bbs/www
|
||||
|
||||
//
|
||||
// This block configures password reset emails. Template files
|
||||
// support the following variables:
|
||||
// * %BOARDNAME% : Name of BBS
|
||||
// * %USERNAME% : Username of whom to reset password
|
||||
// * %TOKEN% : Reset token
|
||||
// * %RESET_URL% : In case of email, the link to follow
|
||||
// for reset. In case of landing page, URL to POST submit reset form.
|
||||
//
|
||||
resetPassword: {
|
||||
resetPassEmailText: /enigma-bbs/misc/reset_password_email.template.txt
|
||||
resetPassEmailHtml: /enigma-bbs/misc/reset_password_email.template.html
|
||||
resetPageTemplate: /enigma-bbs/www/reset_password.template.html
|
||||
}
|
||||
http: {
|
||||
port: 8080
|
||||
enabled: false
|
||||
}
|
||||
https: {
|
||||
port: 8443
|
||||
enabled: false
|
||||
|
||||
//
|
||||
// Note that web browsers will not trust self-signed certs. Look
|
||||
// into Let's Encrypt and perhaps running ENiGMA behind another
|
||||
// web server such as Caddy.
|
||||
//
|
||||
certPem: /enigma-bbs/config/https_cert.pem
|
||||
keyPem: /enigma-bbs/config/https_cert_key.pem
|
||||
}
|
||||
}
|
||||
|
||||
// Ladies and gentlemen, a Gopher server!
|
||||
gopher: {
|
||||
port: 8070
|
||||
enabled: false
|
||||
|
||||
// The root directory to serve gophermaps and other content
|
||||
staticRoot: /enigma-bbs/gopher
|
||||
|
||||
//
|
||||
// The Gopher Content Server can export message base
|
||||
// conferences and areas via the 'exposedConfAreas1 key
|
||||
// and 'include' and optional 'exclude' directives.
|
||||
//
|
||||
// Example:
|
||||
// exposedConfAreas: {
|
||||
// some_conf: {
|
||||
// include: [ "*" ] // all
|
||||
// exclude: [ "not_this_one" ] // except...
|
||||
// }
|
||||
// another_conf: {
|
||||
// include: [ "foo", "bar", "baz" ]
|
||||
// exclude: [ "bazbang*" ]
|
||||
// }
|
||||
// }
|
||||
//
|
||||
publicHostname: another-fine-enigma-bbs.org
|
||||
publicPort: 8070
|
||||
}
|
||||
|
||||
// You may also wish to enable NNTP services
|
||||
nntp: {
|
||||
//
|
||||
// Set publicMessageConferences{} to configure
|
||||
// publicly exposed conferences & areas.
|
||||
//
|
||||
// Example:
|
||||
// publicMessageConferences: {
|
||||
// some_conf: [ "area_tag1", "area_tag2" ]
|
||||
// }
|
||||
//
|
||||
publicMessageConferences: {
|
||||
}
|
||||
|
||||
// non-secure
|
||||
nntp: {
|
||||
enabled: false
|
||||
port: 8119
|
||||
}
|
||||
|
||||
// secure (TLS)
|
||||
nntps: {
|
||||
enabled: false
|
||||
port: 8563
|
||||
|
||||
//
|
||||
// You will need a SSL/TLS certificate and key
|
||||
//
|
||||
certPem: /enigma-bbs/config/nntps_cert.pem
|
||||
keyPem: /enigma-bbs/config/nntps_key.pem
|
||||
}
|
||||
cache: {
|
||||
maxItems: 200
|
||||
maxAge: 30000
|
||||
}
|
||||
}
|
||||
}
|
||||
chatServers: {
|
||||
// multi relay chat settings. No need to sign up, just enable it.
|
||||
// More info: https://bbswiki.bottomlessabyss.net/index.php?title=MRC_Chat_platform
|
||||
mrc: {
|
||||
enabled: false
|
||||
serverHostname: mrc.bottomlessabyss.net
|
||||
serverPort: 5000
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Currently, ENiGMA½ can use external email to mail
|
||||
// users for password resets. Additional functionality will
|
||||
// be added in the future.
|
||||
//
|
||||
email: {
|
||||
//
|
||||
// Set the following keys to configure:
|
||||
// * "defaultFrom" to the reply address
|
||||
// * "transport" to a configuration block that meets the
|
||||
// requirements of Nodemailer (https://nodemailer.com/)
|
||||
//
|
||||
// Example:
|
||||
// transport: {
|
||||
// service: Zoho
|
||||
// auth: {
|
||||
// user: myuser@myhost.com
|
||||
// pass: supersecretpassword
|
||||
// }
|
||||
// }
|
||||
//
|
||||
}
|
||||
|
||||
// Message conferences and areas are within this block
|
||||
messageConferences: {
|
||||
// An entry here prepresents a conference taka aka confTag
|
||||
another_sample_conf: {
|
||||
name: Another Sample Conference
|
||||
desc: Another conf sample. Change me!
|
||||
areas: {
|
||||
// Similar to confTags, this is a areaTag
|
||||
another_sample_area: {
|
||||
name: Another Sample Area
|
||||
desc: Another area example. Change me!
|
||||
// The 'sort' key can override natural sort order and can live at the conference and area levels
|
||||
sort: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
local: {
|
||||
name: Local
|
||||
desc: Local Areas
|
||||
sort: 1
|
||||
default: true
|
||||
areas: {
|
||||
general: {
|
||||
name: General
|
||||
desc: General chit-chat
|
||||
sort: 1
|
||||
default: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Configuration block for scanner/tosser modules
|
||||
scannerTossers: {
|
||||
// The most popular being FTN/BSO style networks
|
||||
ftn_bso: {
|
||||
//
|
||||
// When you're ready to hook up to FTN networks, please
|
||||
// see the documentation on message networks.
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ENiGMA½ comes with a very powerful File Base, but may be a bit strange
|
||||
// until you get used to it. Please see the documentation!
|
||||
//
|
||||
fileBase: {
|
||||
//
|
||||
// Storage tags with relative paths (that is, paths that do not start
|
||||
// with a "/") are relative to the following path:
|
||||
//
|
||||
areaStoragePrefix: /enigma-bbs/file_base/
|
||||
|
||||
//
|
||||
// Storage tags create a tag -> directory (relative or full path)
|
||||
// that can be used in areas.
|
||||
//
|
||||
storageTags: {
|
||||
//
|
||||
// Example storage tag: "super_l33t_warez":
|
||||
// super_l33t_warez: /path/to/super/l33t/warez
|
||||
//
|
||||
}
|
||||
areas: {
|
||||
//
|
||||
// Example area with the areaTag of "an_example_area":
|
||||
// an_example_area: {
|
||||
// name: Example File Area
|
||||
// desc: It's just an example, yo!
|
||||
// storageTags: [
|
||||
// super_l33t_warez
|
||||
// ]
|
||||
// }
|
||||
//
|
||||
// File Base Areas are read-only (ie: download only) by default.
|
||||
// To make a uploadable area, set ACS as you like. For example,
|
||||
// to allow all users to upload to an area:
|
||||
//
|
||||
// an_example_area: {
|
||||
// // ...
|
||||
// acs: {
|
||||
// write: GM[users]
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
// General user configuration
|
||||
users: {
|
||||
//
|
||||
// ENiGMA½ utilizes user groups similar to Windows and *nix. Built in groups
|
||||
// include "users" (for regular users) and "sysops" for +ops. You can add other
|
||||
// groups to the system as well by adding a 'groups' key in this section:
|
||||
// groups: [
|
||||
// "leet", "lamerz"
|
||||
// ]
|
||||
//
|
||||
//
|
||||
// Set default group(s) new users should automatically be assigned to:
|
||||
// defaultGroups : [
|
||||
// "lamerz"
|
||||
// ]
|
||||
//
|
||||
|
||||
// Should new users require +op activation?
|
||||
requireActivation: false
|
||||
|
||||
// How long pre-authenticated users (have not logged in) can idle
|
||||
preAuthIdleLogoutSeconds: 180
|
||||
|
||||
// How long authenticated users (logged in) can idle
|
||||
idleLogoutSeconds: 360
|
||||
|
||||
// Usernames reserved for applying to your system
|
||||
newUserNames: [
|
||||
new
|
||||
apply
|
||||
]
|
||||
|
||||
// Handling of failed logins
|
||||
failedLogin: {
|
||||
// disconnect after N failed attempts. 0=disabled.
|
||||
disconnect: 3
|
||||
|
||||
// Lock the user out after N failed attempts. 0=disabled.
|
||||
lockAccount: 9
|
||||
|
||||
//
|
||||
// If locked out, how long until the user can login again?
|
||||
// Set to 0 to disable auto-unlock
|
||||
//
|
||||
autoUnlockMinutes: 360
|
||||
}
|
||||
|
||||
// Allow email driven password resets to unlock accounts?
|
||||
unlockAtEmailPwReset: true
|
||||
}
|
||||
|
||||
// Archive files and related
|
||||
archives: {
|
||||
archivers: {
|
||||
//
|
||||
// Each key in the "archivers" configuration block represents a specific
|
||||
// external archive utility. ENiGMA½ has sane configuration by default
|
||||
// for many archivers, but the tools themselves are likely not yet installed
|
||||
// on your system!
|
||||
//
|
||||
// You'll want to have archivers configured for the many old-school archive
|
||||
// formats that a BBS may encounter! Please consult the documentation on
|
||||
// information as to where to find and install these utilities!
|
||||
//
|
||||
}
|
||||
}
|
||||
fileTransferProtocols: {
|
||||
//
|
||||
// Each key in the "fileTransferProtocols" configuration block defines
|
||||
// an external file transfer utility for legacy protocols such as
|
||||
// X, Y, and Z-Modem.
|
||||
//
|
||||
// You will want to ensure your system has these external utilities
|
||||
// installed and/or define new or additional protocols. Please
|
||||
// see the documentation for more information!
|
||||
//
|
||||
}
|
||||
|
||||
//
|
||||
// Use the Event Scheduler to set up arbitrary scheduled events
|
||||
// using Later style syntax and/or @watch files.
|
||||
// See docs/event-scheduler.md for more information.
|
||||
//
|
||||
eventScheduler: {
|
||||
events: {
|
||||
// Example:
|
||||
//
|
||||
// sampleEvent: {
|
||||
// schedule: every 2 hours
|
||||
// action: @execute:/path/to/some/script.sh
|
||||
// args: [
|
||||
// "--foo", "--bar"
|
||||
// ]
|
||||
// }
|
||||
}
|
||||
}
|
||||
statLog: {
|
||||
systemEvents: {
|
||||
// Max login history event records kept. -1 = unlimited
|
||||
loginHistoryMax: -1
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user