enigma-bbs/misc/config_template.in.hjson

281 lines
7.8 KiB
Plaintext
Raw Normal View History

{
/*
./\/\.' ENiGMA½ System Configuration -/--/-------- - -- -
_____________________ _____ ____________________ __________\_ /
\__ ____/\_ ____ \ /____/ / _____ __ \ / ______/ // /___jp!
// __|___// | \// |// | \// | | \// \ /___ /_____
/____ _____| __________ ___|__| ____| \ / _____ \
---- \______\ -- |______\ ------ /______/ ---- |______\ - |______\ /__/ // ___/
/__ _\
<*> ENiGMA½ // HTTPS://GITHUB.COM/NUSKOOLER/ENIGMA-BBS <*> /__/
-------------------------------------------------------------------------------
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 have plugins for the HJSON format which can be
very useful.
Available Configuration
-------------------------------
ENiGMA½ is highly configurable! By default, this file contains common
configuration elements, examples, etc. To see a full list of settings
available to this file, don't be afraid to open up core/config.js and
look around. Do not make changes there however, you may override any
of the configuration from within this file!
See the documentation for more information, and don't be shy to ask
for help!
*/
general: {
// Your BBS Name!
boardName: XXXXX
}
logging: {
2018-11-10 02:02:07 +00:00
//
// By default, the system will rotate logs.
// Remember you can pipe logs through bunyan to pretty-print:
// > tail -F enigma/logs/enigma-bbs.log | enigma/node_modules/bunyan/bin/bunyan
2018-11-10 02:02:07 +00:00
//
rotatingFile: {
// If you're having trouble, try setting this to "trace"
level: XXXXX
}
}
theme: {
// Default theme applied to new users. "*" indicates random.
default: XXXXX
// Theme applied before a user has logged in. "*" indicates random.
preLogin: XXXXX
2018-11-11 03:00:25 +00:00
//
// 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.
//
}
//
// Login servers represent available servers (or protocols) in which
// users are permitted to access your system.
//
loginServers: {
// Remember kids, Telnet is insecure!
telnet: {
2018-11-11 05:04:59 +00:00
// It's best to use non-privileged ports and NAT/foward to them
port: XXXXX
2018-11-11 03:00:25 +00:00
}
// ...but SSH *is* secure!
ssh: {
2018-11-11 05:04:59 +00:00
port: XXXXX
2018-11-11 03:00:25 +00:00
//
// To enable SSH:
// 1) Generate a Private Key (PK):
// > openssl genrsa -des3 -out ./config/ssh_private_key.pem 2048
// 2) Set "privateKeyPass" below
//
enabled: XXXXX
// set this to your PK's password, generated in step #1 above
privateKeyPass: SuperSecretPasswordChangeMe!
//
// It's possible to lock down various algorithms available to
// SSH, but be aware this may limit the clients that can connect!
//
algorithms: {}
}
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://
2018-11-11 05:04:59 +00:00
ws: {
port: XXXXX
}
2018-11-11 03:00:25 +00:00
// Secure WebSockets, or wss://
2018-11-11 05:04:59 +00:00
wss: {
port: XXXXX
enabled: XXXXX
//
// 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: XXXXX
keyPem: XXXXX
}
2018-11-11 03:00:25 +00:00
}
}
//
// 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: XXXXX
}
}
//
// 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
}
}
}
}
2018-11-11 03:26:23 +00:00
//
// 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: XXXXX
//
// 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
2018-11-11 03:00:25 +00:00
users: {
//
2018-11-11 03:00:25 +00:00
// 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" ]
2018-11-10 02:02:07 +00:00
//
2018-11-11 03:00:25 +00:00
// Set default group(s) new users should automatically be assigned to
// defaultGroups : [ "lamerz" ]
// Should new users require +op activation?
requireActivation: false,
}
// 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!
//
2018-11-11 03:00:25 +00:00
// 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!
//
}
}
2018-11-10 02:02:07 +00:00
2018-11-11 03:00:25 +00:00
fileTransferProtocols: {
2018-11-10 02:02:07 +00:00
//
2018-11-11 03:00:25 +00:00
// 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!
2018-11-10 02:02:07 +00:00
//
}
}