# Configuration Configuration files in ENiGMA½ are simple UTF-8 encoded [HJSON](http://hjson.org/) files. HJSON is just like JSON but simplified and much more resilient to human error. ## System Configuraiton The main system configuration file, `config.hjson` both overrides defaults and provides additional configuration such as message areas. The default path is `~/.config/enigma-bbs/config.hjson` though you can override this with the `--config` parameter when invoking `main.js`. Values found in core/config.js may be overridden by simply providing the object members you wish replace. **Windows note**: **~** resolves to *C:\Users\YOURLOGINNAME\* on modern installations, e.g. *C:\Users\NuSkooler\\.config\enigma-bbs\config.hjson* ### Example: System Name `core/config.js` provides the default system name as follows: ```javascript general : { boardName : 'Another Fine ENiGMA½ System' } ``` To override this for your own board, in `config.hjson`: ```hjson general: { boardName: Super Fancy BBS } ``` ### Specific Areas of Interest #### Archivers External archivers can be configured for various tasks such as EchoMail bundle handling. TODO: Document further inc. Members & defaults **Example**: ```hjson archivers: {' zip: { // byte signature in HEX of ZIP archives sig: "504b0304" // offset of sig offset: 0 compressCmd: "7za" compressArgs: [ "a", "-tzip", "{archivePath}", "{fileList}" ] decompressCmd: "7za" decompressArgs: [ "e", "-o{extractPath}", "{archivePath}" ] } } ``` ### A Sample Configuration Below is a **sample** `config.hjson` illustrating various (but certainly not all!) elements that can be configured / tweaked. **This is for illustration purposes! Do not cut & paste this configuration!** ```hjson { general: { boardName: A Sample BBS } defaults: { theme: super-fancy-theme } preLoginTheme: luciano_blocktronics messageConferences: { local_general: { name: Local desc: Local Discussions default: true areas: { local_enigma_dev: { name: ENiGMA 1/2 Development desc: Discussion related to development and features of ENiGMA 1/2! default: true } } } agoranet: { name: Agoranet desc: This network is for blatant exploitation of the greatest BBS scene art group ever.. ACiD. areas: { agoranet_bbs: { name: BBS Discussion desc: Discussion related to BBSs } } } } messageNetworks: { ftn: { areas: { agoranet_bbs: { /* hey kids, this matches above! */ // oh oh oh, and this one pairs up with a network below network: agoranet tag: AGN_BBS uplinks: "46:1/100" } } networks: { agoranet: { localAddress: "46:3/102" } } } } scannerTossers: { ftn_bso: { schedule: { import: every 1 hours or @watch:/home/enigma/bink/watchfile.txt export: every 1 hours or @immediate } defaultZone: 46 defaultNetwork: agoranet nodes: { "46:*": { archiveType: ZIP encoding: utf8 } } } } } ``` ## Menus TODO: Documentation on menu.hjson, etc.