| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| config:ini_files [2019/01/14 23:33] – digital man | config:ini_files [2025/12/21 03:41] (current) – [Enumerated Values] Fix the confusing wording about enum key value word/partial-word matches digital man |
|---|
| ===== Configuration ===== | ===== Configuration ===== |
| |
| Synchronet supports a variety of configuration files of different formats. A growing majority of these configuration files are of the [[wp>INI file]] type. Synchronet's INI configuration files are typically stored in the ''[[dir:ctrl]]'' directory, with a ''.ini'' filename suffix/extension. | Synchronet's INI configuration files are typically stored in the ''[[dir:ctrl]]'' directory, with a ''.ini'' filename suffix/extension. |
| | |
| | ==== Primary Configuration Files ==== |
| | |
| | The primary configuration files managed by the [[util:SCFG]] utility are: |
| | ^ Filename ^ Description ^ |
| | |''[[sbbs.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/sbbs.ini|Synchronet Server Initialization File]] | |
| | | ''main.ini'' | Primary system settings (e.g. BBS name, location, security settings) and command shells | |
| | | ''msgs.ini'' | Message areas, message options, and message networking | |
| | | ''file.ini'' | File areas (for uploads, download), text file areas, and file-related options | |
| | | ''xtrn.ini'' | External program configurations which includes timed events, message editors, hot-key events and doors | |
| | | ''chat.ini'' | Chat Features settings, specifically the Guru, Multi-node chat actions and channels, and external sysop pagers | |
| | | ''node.ini'' | Located in the [[dir:node|node directories]], and configured via the SCFG [[config:nodes]] menu | |
| | |
| | ==== Secondary Configuration Files ==== |
| |
| ^Filename Page ^Default Contents^Description^ | ^Filename Page ^Default Contents^Description^ |
| |''[[cgi_env.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/cgi_env.ini|cgi_env.ini]]|[[server:Web]] Server CGI Settings| | |''[[custom:text.ini]]'' |N/A | Customized ''text.dat'' strings (optional) | |
| |''[[formmail.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/formmail.ini|formmail.ini]]|Configuration for ''[[dir:web]]/formmail.ssjs'', Synchronet's Server-side [[custom:JavaScript]] version of [[http://www.scriptarchive.com/formmail.html|FormMail]]| | |''text.//lang//.ini'' |varies | Alternate language ''text.ini'' files | |
| |''[[ircbot.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/ircbot.ini|ircbot.ini]]|Configuration for IRC robots, optionally works with the Synchronet [[service:IRCd]]| | |''[[cgi_env.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/cgi_env.ini|cgi_env.ini]]|[[server:Web]] Server CGI Settings| |
| |''[[listserver.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/listservier.ini|listserver.ini]]|Configuration for the Synchronet ListServer module (''[[dir:exec]]/[[module:listserver]].js'')| | |''[[formmail.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/formmail.ini|formmail.ini]]|Configuration for ''[[dir:web]]/formmail.ssjs'', Synchronet's Server-side [[custom:JavaScript]] version of [[http://www.scriptarchive.com/formmail.html|FormMail]]| |
| |''[[mailproc.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/mailproc.ini|mailproc.ini]]|Configuration of External Mail Processors for the [[server:Mail]] Server (SMTP)| | |''[[ircbot.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/ircbot.ini|ircbot.ini]]|Configuration for IRC robots, optionally works with the Synchronet [[service:IRCd]]| |
| |''[[mime_types.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/mime_types.ini|mime_types.ini]]|MIME File Types registered in the [[server:Web]] Server| | |''[[ircd.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/ircd.ini|ircd.ini]]|Configuration for IRC server. Replaces old ircd.conf on modern Synchronet [[service:IRCd]]| |
| |''[[modopts.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/modopts.ini|modopts.ini]]|Configuration settings (options) for various [[custom:JavaScript]] modules, stock and/or 3rd party| | |''[[listserver.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/listservier.ini|listserver.ini]]|Configuration for the Synchronet ListServer module (''[[dir:exec]]/[[module:listserver]].js'')| |
| |''[[rss.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/rss.ini|rss.ini]]|Configuration for Synchronet RSS Feed module (''[[dir:web]]/root/rss.ssjs'')| | |''[[mailproc.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/mailproc.ini|mailproc.ini]]|Configuration of External Mail Processors for the [[server:Mail]] Server (SMTP)| |
| |''[[sbbs.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/sbbs.ini|sbbs.ini]]|Synchronet Initialization File| | |''[[mime_types.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/mime_types.ini|mime_types.ini]]|MIME File Types registered in the [[server:Web]] Server| |
| | |''[[modopts.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/modopts.ini|modopts.ini]]|Configuration settings (options) for various [[custom:JavaScript]] modules, stock and/or 3rd party| |
| | |''[[rss.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/rss.ini|rss.ini]]|Configuration for Synchronet RSS Feed module (''[[dir:exec]]/rss.ssjs'')| |
| |''[[sbbsctrl.ini]]'' |N/A|Configuration for Synchronet Control Panel ([[monitor:SBBSCTRL]]) for Windows, exported from Windows Registry| | |''[[sbbsctrl.ini]]'' |N/A|Configuration for Synchronet Control Panel ([[monitor:SBBSCTRL]]) for Windows, exported from Windows Registry| |
| |''[[sbbsexec.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/exec/sbbsexec.ini|sbbsexec.ini]]|Configuration for the Synchronet Virtual FOSSIL / UART Driver for Windows| | |''[[sbbsexec.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/exec/sbbsexec.ini|sbbsexec.ini]]|Configuration for the Synchronet Virtual FOSSIL / UART Driver for Windows| |
| |''[[services.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/services.ini|services.ini]]|Configuration for Synchronet [[service:|Services]]| | |''[[services.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/services.ini|services.ini]]|Configuration for Synchronet [[service:|Services]]| |
| |''[[sexpots.ini]]'' |N/A|Configuration for Synchronet External POTS Support utility ([[util:SEXPOTS]])| | |''[[sexpots.ini]]'' |N/A|Configuration for Synchronet External POTS Support utility ([[util:SEXPOTS]])| |
| |''[[sexyz.ini]]'' |N/A|Configuration for Synchronet External X/Y/ZMODEM protocol driver ([[util:SEXYZ]])| | |''[[sexyz.ini]]'' |N/A|Configuration for Synchronet External X/Y/ZMODEM protocol driver ([[util:SEXYZ]])| |
| |''[[sockopts.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/sockopts.ini|sockopts.ini]]|Configuration of TCP/IP socket options| | |''[[sockopts.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/sockopts.ini|sockopts.ini]]|Configuration of TCP/IP socket options| |
| |''[[web_handler.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/web_handler.ini|web_handler.ini]]|Configuration of special content (file type) handlers for the [[server:Web]] Server| | |''[[web_handler.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/web_handler.ini|web_handler.ini]]|Configuration of special content (file type) handlers for the [[server:Web]] Server| |
| |''[[webicons.ini]]'' |[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/ctrl/webicons.ini|webicons.ini]]|Configuration of icon files used to represent specific file types in the [[server:Web]] Server| | |''[[webicons.ini]]'' |[[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/ctrl/webicons.ini|webicons.ini]]|Configuration of icon files used to represent specific file types in the [[server:Web]] Server| |
| |
| ===== Database ===== | ===== Database ===== |
| Note: Since section names may not be reused in a single ''.ini'' file, a single section with more than one name will be the **only** representation of the named sections and any following section with one of the used names will be ignored. | Note: Since section names may not be reused in a single ''.ini'' file, a single section with more than one name will be the **only** representation of the named sections and any following section with one of the used names will be ignored. |
| |
| | ==== String Literals ==== |
| | |
| | By using a colon character ('':'') rather than equals sign (''='') as a key/value separator, string value with embedded control characters and trailing white-space characters may be specified in ''.ini'' files. |
| | |
| | === Quotes === |
| | If the first non-white-space character following the colon key/value separate is a double-quote (''"'') character, then the string will be terminated at the last (right-most) double-quote character. This allows a string value to be specified with trailing white-space without risk that a text editor might remove it: |
| | mystring: "a string with trailing white-space " |
| | |
| | === Escape Sequences === |
| | Character values may be specified using C-style character literal escaping for control characters (e.g. ''\r'' for carriage-return, ''\n'' for line-feed, ''\x01'' for Ctrl-A, etc.) or CP437 characters (e.g. ''\xb3'' for a vertical bar). |
| ==== Directives ==== | ==== Directives ==== |
| |
| <code ini> | <code ini> |
| !include another.ini | !include another.ini |
| | </code> |
| | |
| | In Synchronet v3.18c, the ability to include multiple files was added, e.g. |
| | |
| | <code ini> |
| | !include sub-dir/*.ini |
| </code> | </code> |
| |
| String values are terminated by a new-line sequence or the end of file. | String values are terminated by a new-line sequence or the end of file. |
| |
| Trailing white-space is normally removed from the string value, unless the ''key:value'' syntax is used (instead of ''key=value''). | Trailing white-space is normally removed from string values, unless the ''key:value'' (string literal) syntax is used instead of ''key=value''. |
| |
| ==== Boolean Values ==== | ==== Boolean Values ==== |
| ==== Enumerated Values ==== | ==== Enumerated Values ==== |
| |
| Some keys support values specified either by number (typically from ''0'' through n) or by a symbolic name for each supported value. These are referred to a enumerated values. | Some keys support values specified either by number (typically from ''0'' through n) or by a symbolic name for each supported value. These are referred to as enumerated values. |
| |
| A numeric value higher than the highest supported enumerated value will be treated the same as the highest supported enumerated value. | A numeric value higher than the highest supported enumerated value will be treated the same as the highest supported enumerated value. |
| | |
| | When a word is provided as an enumerated key value, an initial partial word match is all that is required. So for example, a key value of "Debugging" would match the enum value of ''Debug'', and "Informational" would match the enum value of ''Info''. These string matches are also performed case-insensitively so "ERROR" and "error" are equivalents. |
| |
| === Log Levels === | === Log Levels === |
| ''LogLevel'' keys are one example of a key with enumerated values. The ''LogLevel'' value may be specified as a decimal number (from ''0'' to ''7'') or by specifying one of the following enumerated names: | ''LogLevel'' keys are one example of a key with enumerated values. The ''LogLevel'' value may be specified as a decimal number (from ''0'' to ''7'') or by specifying one of the following enumerated names: |
| |
| ^Value ^Name ^ | ^Value ^Name ^ Description ^ |
| |0 |Emergency | | |0 |''Emergency'' | Fatal condition | |
| |1 |Alert | | |1 |''Alert'' | Very Serious condition | |
| |2 |Critical | | |2 |''Critical'' | Serious condition | |
| |3 |Error | | |3 |''Error'' | Unexpected/erroneous condition | |
| |4 |Warning | | |4 |''Warning'' | Suspicious condition | |
| |5 |Notice | | |5 |''Notice'' | Infrequent event | |
| |6 |Informational| | |6 |''Info'' | Common activity (AKA "Informational") | |
| |7 |Debugging | | |7 |''Debug'' | Extra detail sometimes helpful during issue analysis (AKA "Debugging") | |
| |
| Log entries with a log level //higher// than the specified ''LogLevel'' value will not be logged/displayed. | Log entries with a log level //higher// than the specified ''LogLevel'' value will not be logged/displayed. |
| |
| The ''Debugging'' (7) log level enables //all// possible log output. | The ''Debug'' (7) log level enables //all// possible log output. |
| |
| ==== Bit-field Values ==== | ==== Bit-field Values ==== |
| ===== Source Code ===== | ===== Source Code ===== |
| |
| Synchronet's INI file support comes from the XPDEV C library. The main source file is [[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/src/xpdev/ini_file.c]]. | Synchronet's INI file support comes from the XPDEV C library. The main source file is [[https://gitlab.synchro.net/sbbs/sbbs/-/blob/master/src/xpdev/ini_file.c]]. |
| |
| ===== See Also ===== | ===== See Also ===== |
| * [[config:cfg_files|CFG Files]] | * [[config:cfg_files|CFG Files]] |
| * [[config:cnf_files|CNF Files]] | * [[config:cnf_files|CNF Files]] |
| | |
| | |
| |
| | {{tag>configuration file_type ini}} |